
A mellékelt példaprogram használatához, az Options.dpk Package állomány tartalmát telepítenie kell.
Delphi 5 feletti verziók használata esetében a Package fordítása hibát fog okozni, hiányzó unit-ok miatt. A fordításhoz szükséges unit-ok megtalálhatóak a delphiX\Source\ToolsAPI könyvtárban.
A Delphi beállítási lehetőségei a háttérben, egy lista formájában vannak eltárolva. A lista egyes elemei név, típus és érték tulajdonságokkal rendelkeznek. Ezek a tulajdonságok lehetnek egyszerűek, mint például Integer vagy String, de összetettek is, mint egy StringList vagy egy osztály.
Az opciókhoz, az IOTAOptions interfészen keresztül férhetünk hozzá. A lista egyaránt tartalmazza a környezeti-, valamint az aktuális project-hez kötődő beállításokat.
Az előző részekhez hasonlóan, most is készítettünk egy függvényt az interfész eléréséhez. Ez a GetOptions.
function GetOptions: IOTAOptions;
A függvény belsejében először hozzáférünk az aktuális modulhoz.
ModuleServices:=BorlandIDEServices as IOTAModuleServices;
Module:=ModuleServices.CurrentModule;
Majd az IOTAModule interfészen keresztül elérjük az IOTAOptions-t.
if Module.OwnerCount>0 then
Result:=(Module.Owners[0] as IOTAProject).ProjectOptions as IOTAOptions;
Az interfész EditOptions metódusának meghívásával megjeleníthetjük ugyanazt az ablakot, amelyet a Project menü Options menüpontjával érhetünk el.

EditOptions
procedure EditOptions;
Megjeleníti a Project menü Options ablakát.
A tulajdonságok listájának elérésére a GetOptionNames függvény szolgál.

GetOptionNames
function GetOptionNames: TOTAOptionNameArray;
A használható tulajdonság (opció) lista lekérdezésére szolgál.
Visszatérési érték
Egy dinamikus tömb, melynek elemei egyesével TOTAOptionName típusúak.
A TOTAOptionName típus egy rekord, melynek szerkezete a következő:
TOTAOptionName = record
Name: string;
Kind: TTypeKind;
end;
A Name tag tartalmazza az opció egyedi nevét. Az opció értékének típusát a Kind tag adja meg, melynek definíciója a következő:
type
TTypeKind = (tkUnknown, tkInteger, tkChar, tkEnumeration, tkFloat, tkString, tkSet, tkClass, tkMethod, tkWChar, tkLString, tkWString, tkVariant, tkArray, tkRecord, tkInterface, tkInt64, tkDynArray);
Ha használni akarjuk TTypeKind típust, akkor a uses listában fel kell sorolnunk a Typinfo unit nevét.
Miután ismerjük a tulajdonságok neveit és azok típusait, a Values property-n keresztül lekérdezhetjük, vagy módosíthatjuk azok értékeit.
property Values[const ValueName: string]: Variant
A property tömbként funkcionál, ahol az opciókat nem indexük, hanem nevük alapján azonosíthatjuk. A property értéke Variant típusú, így a lekérdezés vagy módosítás során nekünk kell gondoskodnunk a megfelelő adattípusok használatáról.
A mellékelt példaprogramban csak a sztring típusú opciókat listáztuk ki, valamint csak azoknak tettük lehetővé a módosítását. Hasonló módon bármelyik opció értéke lekérdezhető, vagy módosítható.