Živě.cz o počítačích a internetu

Tipy a triky v Delphi, díl 127. – dokončení pravopisu

Jan Šindelář - 25.2.2004

Opět použijeme technologii OLE, ale tentokrát nemusíme importovat žádnou knihovnu. V Delphi 5 Enterprise (a vyšších plných verzích) nalezneme na paletě komponent záložku Servers. Zde najdeme celou řadu komponent pro MS Office, které nám zprostředkují přístup k jednotlivým objektům daných aplikací.

První záludnost, která na nás čeká, souvisí opět s verzí Office, které máte nainstalovány. V Delphi 5 nalezneme komponenty pro Office 97 a celkem logicky s vývojem Office i Delphi pak v novějších verzích Delphi najdeme komponenty i pro Office 2000 a XP. Máme-li kupříkladu Delphi 7, jsou k dispozici komponenty pro všechny verze Office. Nainstalovány jsou sice všechny verze, ovšem "aktivní" (tj. na paletě komponent) může být vždy jen jedna sada. O tom, která to bude, se rozhoduje už při instalaci Delphi, ale samozřejmě není problém změnit aktuální sadu dodatečně za jinou. V menu Component zvolíme položku Install Packages. Zde vidíme seznam nainstalovaných balíčků a v něm bychom měli najít položku Microsoft Office (verze) Sample Automation Wrapper Components. Tlačítkem Remove můžeme aktuálně nastavený balík odstranit a tlačítkem Add zvolit nový. V adresáři {Delphi}\Bin hledejte soubory .bpl , začínající na dcl, které ve svém názvu mají office. Určitě pro vás nebude problém identifikovat od sebe jednotlivé verze. Tímto způsobem si aktivujte tu sadu Office komponent, která odpovídá verzi Office ve vašem systému.

Nyní pojďme k samotnému příkladu. Samotný kód (hlavní cyklus) bude vlastně stejný jako minule. Použijeme i stejné formuláře a tlačítka. Jediný rozdíl bude ve způsobu, jakým se "připojíme" na aplikaci Word. K tomu nám poslouží dvě komponenty - TWordDocument a TWordApplication (první dvě komponenty na záložce Servers). Umístíme je tedy na hlavní formulář. Komponenta WordApplication řídí všechny globální stavy a vlastnosti celé aplikace (proto taky ten název) a u ní nastavíme v Object Inspectoru pouze typ připojení - položka ConnectKind. Na výběr máme více možností, ale pro nás jsou zajímavé pouze RunningInstance nebo NewInstance (případně jejich kombinace), tedy zda použijeme již běžící instanci nebo otevřeme novou. Komponenta WordDocument pak zajišťuje práci se samotným objektem dokumentu. U tohoto objektu je pro nás zajímavá vlastnost Range, která určuje oblast v textu, kde se právě pohybujeme. Na slova, která se nacházejí v oblasti určené parametrem Range, pak můžeme aplikovat i naši kontrolu pravopisu.

Vše ostatní už bude vidět ze zdrojového kódu, který si opět můžete stáhnout. Příklad je vytvořen v Delphi 7 a použity jsou komponenty pro Office XP.