HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Saját Form vagy alkalmazás telepítése a Repository-ba a Delphi indítása nélkül


Példaprogram letöltése

10184 bájt

A Repository a Delphi egyik nagyon hasznos szolgáltatása, mivel ide felvehetünk előre elkészített, gyakran használt Form-okat, vagy akár komplett project-eket is. Már telepítés után találhatunk itt szép számmal QuickReport-okat, Form-okat és alkalmazás mintákat egyaránt. Nagy segítség lehet akkor, amikor például a Form-oknál ugyanazokat az alapbeállításokat használjuk (pl. Font, Caption, stb.). Ekkor elég elkészíteni egy alap Form-ot, majd azt felvenni a Repository-ba, és beállítani, hogy ez legyen az alapértelmezett, amikor új Form-ot hozunk létre. Ebben a példában egy olyan komponenst készítünk, amellyel olyan telepítőprogramot is készíthetünk, ami az általunk megadott Form-ot vagy Project-et telepíti a kiválasztott Delphi verzió Repository-jába, a Delphi elindítása nélkül.

A mellékelt példaprogram megnyitása előtt az AddToRepository.pas-ban lévő komponenst telepítenie kell a Delphi alá. Ehhez válassza a Component - Install Component menüpontot.
A komponens működésének megértéséhez csupán annyit kell tudni, hogy a Repository adatai a Delphi Bin könyvtárában található Delphi32.dro fájlban vannak tárolva. A fájl szerkezete leginkább egy INI fájléhoz hasonlít, így a TIniFile osztályon keresztül tudjuk írni és olvasni. Minden szekció egy-egy Form-hoz vagy Project-hez tartozik, a szekció neve a fájl neve elérési útvonallal, de kiterjesztés nélkül. A szekcióban a Form-hoz vagy Project-hez tartozó adatok (pl. szerző, leírás, stb.) találhatók. A fájl ezeken kívül még más adatokat is tartalmaz, de ezekkel most nem foglalkozunk.
Nézzük először a komponens property-jeit:
SourceFile
Osztály: TAddToRepository
property SourceFile: TFileName;
Ebben a property-ben adhatjuk meg a Form vagy a Project forráskódját tartalmazó fájl nevét (*.dfm vagy *.dpr). A SourceType property értékétől függően csak az egyik, vagy a másik fájltípus adható meg. A property-hez készített szerkesztő figyeli, hogy a SourceType property-ben milyen érték lett megadva, és ennek megfelelően állítja be a fájl kiterjesztését.
SourceType
Osztály: TAddToRepository
property SourceType: TRepositorySourceType;
Ebben a property-ben adhatjuk meg, hogy Form-ot, vagy Project-et akarunk-e telepíteni a Repository-ba. A property értékei a következők lehetnek:
  • stFormTemplate
  • stProjectTemplate
SourceName
Osztály: TAddToRepository
property SourceName: string;
Ebben a property-ben nevet adhatunk a mintának. Ez a név jelenik meg a Repository-ban az ikon alatt.
Page
Osztály: TAddToRepository
property Page: string;
Ebben a property-ben adhatjuk meg a Repository azon lapjának a nevét, ahová a minta kerül. Ehhez a property-hez is készítünk egy property szerkesztőt, amelynek segítségével könnyen kiválaszthatjuk a lap nevét, de megadhatunk saját nevet is. Ha a megadott nevű oldal még nem létezett, akkor létrehozza azt. Az oldalak nevét szintén a delphi32.dro fájl tartalmazza a „Repository Pages” szekcióban. Ez a szerkesztő a GetRepositoryPages függvényt használja (lásd lejjebb).
DelphiVersion
Osztály: TAddToRepository
property DelphiVersion: string;
Ebben a property-ben annak a telepített Delphi verziónak a számát kell megadnunk, amelyik Repository-jába a Form-ot vagy Project-et telepíteni szeretnénk. Ha például a Delphi 5 alá telepítünk, akkor az „5.0”-t kell megadni, Delphi 6-nál a „6.0”-t, stb. Ehhez a property-hez is készítünk egy szerkesztőt, amelynek segítségével a telepített Delphi verziók egyikét adhatjuk meg. Ez a szerkesztő a getDelphiVersions függvényt használja (lásd lejjebb).
Icon
Osztály: TAddToRepository
property Icon: string;
A Repository-ban ikont is rendelhetünk a mintához. Az ikon fájl nevét (.ico) ebben a property-ben adhatjuk meg.
Description
Osztály: TAddToRepository
property Description: string;
Egy bővebb leírást fűzhetünk a mintához, amelyet ebben a property-ben adhatunk meg.
Author
Osztály: TAddToRepository
property Author: string;
A minta szerzőjének nevét adhatjuk meg ebben a property-ben.
FormAncestor
Osztály: TAddToRepository
property FormAncestor: string;
Ha a Form nem a TForm osztályból származik, akkor ebben a property-ben megadhatjuk a szülő osztályt tartalmazó fájl nevét.
Defaults
Osztály: TAddToRepository
property Defaults: TRepositoryDefaults;
A Form-ot vagy Project-et alapértelmezetté is tehetjük. Ezt a lehetőséget ebben a property-ben állíthatjuk be, az alábbi értékekkel:
  • rdDefaultMainForm: a Form lesz az alapértelmezett fő-Form az új project-eknél;
  • rpDefaultNewForm: a Form lesz az alapértelmezett Form, amikor új Form-ot hozunk létre;
  • rdDefaultProject: a Project lesz az alapértelmezett új Project létrehozásakor.
Execute
Osztály: TAddToRepository
function Execute: boolean;
Ennek a függvénynek a meghívásával történik a telepítés. A függvény megnyitja a Delphi32.dro fájlt, INI fájlként a TIniFile osztály használatával. Az s változóban eltároljuk a szekció nevét, ami a minta fájl neve lesz elérési útvonallal, kiterjesztés nélkül. Ha már volt ilyen nevű szekció, akkor azt töröljük az EraseSection eljárással. Ezután kiírjuk a minta adatait a fájlba, majd az oldal nevét is a „Repository Pages” szekcióba.
Visszatérési érték
Ha a telepítés sikeres volt, akkor a függvény visszatérési értéke igaz, ellenkező esetben hamis.
Az AddToRepository unit több olyan függvényt és eljárást is tartalmaz, amelyek önállóan is használhatók. Ezek a következők:
GetDelphiVersions
Osztály:
procedure GetDelphiVersions(
List: TStringList
);
Lekérdezi a telepített Delphi-k verziószámát egy TStringList típusú objektumba. A Delphi-k verziószámát a Registry-ből olvassa ki.
Paraméterek
List: TStringList
Ebben az objektumban kapjuk meg a verziószámokat.
GetDelphiFolder
Osztály:
function GetDelphiFolder(
Version: string
): string;
Lekérdezi a megadott verziószámú Delphi elérési útvonalát a Registry-ből.
Paraméterek
Version: string
A telepített Delphi verziószáma (pl. „5.0”, „6.0”, stb.).
Visszatérési érték
A Delphi elérési útvonala, vagy üres sztring, ha a megadott verziószámú Delphi nincs telepítve.
GetRepositoryPages
Osztály:
procedure GetRepositoryPages(
Version: string;
List: TStrings
);
A Repository lapjainak neveit adja vissza egy TStrings típusú objektumba. A lapok neveit a Delphi32.dro fájlból olvassa ki a „Repository Pages” szekció alól. A lapok nevei sajnos a TIniFile osztály ReadSectionValues eljárásával nem olvashatók be, mivel a lapok nevei ugyan érték névként vannak tárolva, de az egyenlőségjel után nincs konkrét érték megadva. Ezért betöltjük az egész fájlt, és töröljük belőle a felesleges sorokat és egyenlőségjeleket.
Paraméterek
Version: string
A telepített Delphi verziószáma.
List: TStrings
Ebben az objektumban kapjuk meg a lapok neveinek listáját.

Cikksorozat

#IDKategóriaCikk címeSorozat
1018DelphiVonalkód készítő komponens1. rész
1028DelphiVonalkód nyomtatása a QuickReport-al2. rész


Könyv
Ez a cikk megtalálható ebben a könyvben: Delphi Software Offline 2002 évkönyv 102. 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 |