
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.