
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.