
A mellékelt példaprogram megnyitása előtt az ExportProperties.pas-ban lévő komponenst telepítenie kell a Delphi alá. Ehhez válassza a Component - Install Component menüpontot.
A komponens csak szerkesztési időben használható. El kell helyeznünk azon a Form-on, amely komponenseiből táblázatot szeretnénk készíteni. Ha a komponensen az egér jobb gombjával kattintunk, megjelenik egy helyi menü. A menü legelső sorában elhelyezkedő Execute parancsra kattintva a komponens megnyitja a Word-öt és elkészít egy táblázatot a következő oszlopokkal: komponens, tulajdonság, érték, megjegyzés.
A komponenst a TComponent osztályból származtatjuk.
Ahhoz, hogy saját menüpontot tudjunk rendelni a komponenshez, létre kell hoznunk egy saját komponensszerkesztő osztályt, amelyet a TComponentEditor osztályból származtatunk.
A komponensszerkesztőt a RegisterComponentEditor eljárással rendelhetjük hozzá komponensünkhöz.
RegisterComponentEditor(TExportProperties, TExportPropertiesMenu);
A szerkesztő ExecuteVerb metódusában kell leprogramoznunk, hogy mi történjen akkor, ha az Execute menüpontra kattintunk. A Component property-n keresztül elérhetjük komponensünket. A SearchForProperties metódus meghívásával át is adjuk a vezérlést komponensünknek.
procedure SearchForProperties;
A háttérben megnyitjuk a Word-öt. Ezt a szokásos módon, egy OleVariant típusú változó segítségével tesszük. Az OleVariant típus a ComObj unitban van implementálva.
Word táblázatot az alábbi módon hozhatunk létre.
Selection:=FWordApp.Selection;
Table:=FWordApp.ActiveDocument.Tables.Add(Selection.Range,1,4);
A fenti kód egy olyan táblázatot hoz létre, amelynek egyetlen sora és négy oszlopa van.
A táblázat egy cellájába a Cell property-n keresztül írhatunk be valamit.
Table.Cell(1,1).Range.Text:='Komponens';
A Form-on lévő komponenseket a Components tömbön keresztül érhetjük el.
for i:=0 to (FOwner as TForm).ComponentCount-1 do
if (FOwner as TForm).Components[i]<>Self then begin
Az aktuális komponens változtatott tulajdonságait a GetProperties függvény segítségével határozzuk meg.
function GetProperties(Component: TComponent): String;
Bemenő paraméterként egy komponenst kell megadnunk, eredményül a komponens tulajdonságait kapjuk, szöveges formában. Az eredmény formátuma a következő:
object Label1: TLabel
Caption = ’demo’
...
end
A függvény eredményét egy tStringList-ben tároljuk el.
List.SetText(PChar(GetProperties((FOwner as TForm).Components[i])));
Ezzel a módszerrel nem kell foglalkoznunk a sortörésekkel, azt a TStringList automatikusan elvégzi.
Az első sorban találjuk a komponens nevét, az utolsó sorral pedig nem kell foglalkoznunk. A köztes sorokban találjuk a tulajdonságokat.
A Word táblázatba egy új sort a Tables.Add paranccsal szúrhatunk be.