HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Alkalmazás fájljainak frissítése


ApplicationUpdate 3. rész

Példaprogram letöltése

49600 bájt

A harmadik, és egyben befejező részben az előző részben elkészített TApplicationUpdateClient osztályt fejlesztjük tovább úgy, hogy a frissítő fájlokat képes legyen FTP segítségével akár az Internetről is letölteni. Az új osztályhoz új komponens is készül, ami mindent tud, amit az előző verzió, de kiegészül az FTP-hez szükséges property-kkel és eseményekkel. A komponens csak akkor tölti le az Internetről a fájlokat, ha azok az utolsó frissítésnél újabbak.

A mellékelt példaprogram megnyitása előtt az ApplicationUpdateClientFTP.pas-ban lévő komponenst telepítenie kell a Delphi alá. Ehhez válassza a Component - Install Component menüpontot. A telepítéshez szükség van az előző részben elkészített ApplicationUpdateClient komponensre, mivel az új komponenst ebből származtatjuk.
Szükség lesz továbbá FTP eléréshez is, amit Windows 2000 rendszer alatt a saját gépünkön is létrehozhatunk.
Az új osztályt az előző részben elkészített TApplicationUpdateClient osztályból fogjuk származtatni, ezért mindenekelőtt azt kell telepíteni. Az FTP letöltéshez a TNMFTP osztályt használjuk, ezért az osztályban deklarálunk egy FFTP nevű TNMFTP típusú globális változót. Létrehozunk négy új property-t, amelyek a TNMFTP azonos nevű property-jeit fogják reprezentálni:
UserID
Osztály: TApplicationUpdateClientFTP
property UserID: string;
A felhasználó login neve.
Password
Osztály: TApplicationUpdateClientFTP
property Password: string;
A felhasználó jelszava.
TimeOut
Osztály: TApplicationUpdateClientFTP
property TimeOut: integer;
Ha a kapcsolat nem jön létre az ebben a property-ben megadott ideig, akkor hibaüzenetet kapunk. Ha a property értéke 0, akkor nincs időkorlátozás. Az időtartamot ezredmásodpercben kell megadni.
Host
Osztály: TApplicationUpdateClientFTP
property Host: string;
A Host neve vagy IP címe.
A TNMFTP néhány eseményét is kihasználjuk, és létrehozunk egy OnFTPError eseményt is. Ez az esemény akkor jön létre, amikor az FTP kapcsolat létrehozása, vagy a letöltés közben valami hiba történt. A hiba okát egy TFTPErrorCode típusú paraméterből tudhatjuk meg, aminek értékei az alábbiak lehetnek:
  • ftpAuthenticationFailed: a kapcsolat létrehozása nem lehetséges, mert a felhasználó neve és/vagy jelszava nem érvényes;
  • ftpOnFailure: a letöltés közben hiba történt;
  • ftpConnectionFailed: a kapcsolat létrehozása nem sikerült.
Mivel a komponens kétféle lehetőséget is ad a frissítésre, ezért szükség van egy olyan property-re, amelyben beállíthatjuk, hogy a frissítés egy helyi vagy hálózati könyvtárból történik-e, vagy előzőleg a fájlokat le kell tölteni FTP segítségével. Ennek megadására szolgál a DownloadType property, amelynek az alábbi értékei lehetnek:
  • dtLocal: a tömörített fájlok a helyi gépen, vagy valamelyik hálózati meghajtón elérhetők a SourceFolder property-ben megadott útvonalon;
  • dtFTP: a fájlokat a frissítés előtt FTP-vel le kell tölteni. A letöltött fájlok a SourceFolder property-ben megadott könyvtárba kerülnek.
Az új osztályban felülírjuk a Download függvényt. Az ős osztályban ez a függvény ellenőrizte a contents.ini fájl meglétét. Most egy kicsivel több feladata lesz, mivel a fájlt először le kell töltenie az Internetről, persze csak akkor, ha a DowloadType property értéke dtFTP.
A letöltendő fájlok mérete esetenként nagy is lehet, ezért csak akkor töltjük le ezeket, ha valóban szükséges. Ezt úgy döntjük el, hogy a contents.ini fájlban tárolt dátum/idő értéket összehasonlítjuk a PrevContentDate property-ben tárolt időponttal. Ez a property a legutóbbi frissítés dátumát tartalmazza, de a megfelelő érték megadásáról az alkalmazásnak kell gondoskodnia. Ha a property-ben lévő dátum korábbi, mint a contents.ini fájlban tárolt időpont, akkor letöltjük a contents.ini fájlban megadott fájlokat. Ha a fájlokat letöltöttük, meghívjuk az eredeti Download függvényt, mivel ekkor már a komponensnek ugyanúgy kell működnie, mint az előző részben elkészített komponens, hiszen a fájlok már a helyi (vagy hálózati) könyvtárban is megtalálhatók.

Könyv
Ez a cikk megtalálható ebben a könyvben: Delphi Software Offline 2002 évkönyv 243. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |