Delphi - MS Office alkalmazások használata Delphi-ből

Office 1. rész

forráskód letöltése
Most induló cikksorozatunkban a Microsoft Office alkalmazások programozását mutatjuk be, természetesen Delphi-s szemszögből. A cikksorozatból megtudhatjuk, hogy hogyan lehet a Word, Excel és Outlook alkalmazásokat Delphi-vel fejlesztett programból elérni, azokban a különféle műveleteket végrehajtani.
Elsőként azt nézzük meg, hogy hogyan lehet egy külső alkalmazáshoz csatlakozni, annak függvényeit, objektumait, metódusait elérni. Először is tisztázzuk, hogy mi kell ahhoz, hogy egy külső alkalmazáshoz csatlakozhassunk, ha nem rendelkezünk olyan Delphi verzióval, amelyben megtalálhatók az ehhez szükséges komponensek.
A varázsszó a Type Library. Ez egy olyan pascal unit, amely tartalmaz minden szükséges konstanst, interfészt, osztályt, amely egy adott alkalmazás programozásához szükséges.
Ilyen Type Library-t bárki egyszerűen készíthet, ehhez a Project menü Import Type Library menüpontot kell elindítani. A megjelenő listából ki kell választani a megfelelő alkalmazáshoz tartozó Type Library-t, majd az OK gombra való kattintás után a Delphi elkészíti belőle a pascal nyelvű forráskódot. Az így elkészített unit, a Delphi imports könyvtárába kerül alapértelmezésben.

Ha valaki a Delphi 5 Enterprise verzióját használja, akkor először el kell távolítani a Servers paletta komponenseit, a Type Library importálásához. Bár erre nem is lenne szükségünk, mivel a Delphi 5-höz eleve adják a szükséges forráskódokat a baj ezzel csak az, hogy kötöttek egy adott Office verzióhoz, így ha gépünkön, ügyfeleink gépén más verziójú Office található, akkor már nem sokra megyünk ezekkel.
Az eltávolításhoz válasszuk ki a Components/Install Packages menüpontot, majd a megjelenő ablakban a listában keressük meg a "Borland Sample Automation Server Componens" sort, majd jelölését töröljük.


Most nézzük meg, hogy hogyan kapcsolódhatunk például a Word alkalmazáshoz. A uses kulcsszó után ne felejtsük el megadni az ActiveX és ComObj unitok nevét. A WordApp változót előzőleg a Form1-ben deklaráltuk OleVariant-ként:
WordApp:OleVariant;
Első lépésben kapcsolódunk a Word-höz. A Visible property használatával meghatározhatjuk, hogy az alkalmazás látszódjon-e, vagy maradjon a háttérben. Ez jól jöhet például olyan esetben, amikor egy dokumentumot szeretnénk előállítani és kinyomtatni a Word segítségével úgy, hogy a felhasználó eközben semmit se vegyen észre.
procedure TForm1.Button1Click(Sender: TObject);
begin
  WordApp:=CreateOleObject('Word.Application');
  WordApp.Visible:=TRUE;
end;
Ha már csatlakoztunk a Word-höz, akkor nyissunk meg egy új dokumentumot. Ezt a Documents.Add függvénnyel tehetjük meg.
WordApp.Documents.Add;
Most már van egy új dokumentumunk, írjunk bele valamit. Az Application osztálynak van egy Selection objektuma, ami a kijelölt szövegre, ill. a kurzor helyére vonatkozó információkat és metódusokat tartalmazza. Ahhoz, hogy szöveget tudjunk írni az újonnan megnyitott dokumentumunkba, ezt az osztályt kell használnunk, ezen belül is a TypeText függvényt. A paraméterként megadott szöveg az aktuális kurzorpozíciótól kezdve beíródik a szövegbe ugyanúgy, mintha a billentyűzetről gépeltük volna be.
WordApp.Selection.TypeText('Animare Software');
Ha beírtuk a szöveget, és új bekezdést akarunk kezdeni, akkor a TypeParagraph függvényt kell használni. Ennek a függvénynek nincs paramétere. Hatása ugyanaz, mint amikor a szövegszerkesztőben az Enter billentyűt használjuk.
WordApp.Selection.TypeParagraph;
 
Ha megvagyunk a szöveg bevitelével, akkor lépjünk ki a Word-ből. A kilépéshez az Application osztály Quit metódusát fogjuk használni. Kilépéskor a Word megkérdezi, hogy mentse-e a dokumentumunkat. Ezt csak abban az esetben teszi, ha az utolsó mentés óta volt változtatás a dokumentumban.
WordApp.Quit;

Office cikksorozat