|
|
Word űrlap készítése saját adatbázisból
|
|
Példaprogram letöltése
202882 bájt
|
Mellékelt példában arra keresünk megoldást, hogy miként készíthetünk egy olyan dokumentumot Word-be, melyet saját alkalmazásunk generál, felhasználva saját, egyedi adatainak mindehhez.
A megvalósításhoz most is az OLE-t hívjuk segítségül. Első lépésként kapcsolatot kell teremtenünk a Word alkalmazással. Ha már fut egy példánya, akkor a GetActiveObject és a QueryInterface segítségével kapcsolódunk hozzá, ha még nem, akkor a CreateOleObject-el létrehozunk egy újat.
function GetOrCreateObject(const ClassName: string): IDispatch;
var
unknown: IUnknown;
begin
if Succeeded(GetActiveObject(ProgIDToClassID(ClassName),
nil, unknown)) then begin
OleCheck(unknown.QueryInterface(IDispatch, result));
end else begin
result:=CreateOleObject(ClassName);
end;
end;
Miután a kapcsolat létrejött, megjelenítjük a Word-öt.
FApplication.Visible:=true;
Persze lehetőség van arra is, hogy a Word a felhasználó számára láthatatlan maradjon, ilyenkor nyilván a Visible property-t hamisra kell állítani.
Ezek után létrehozunk a Word-be egy új, üres dokumentumot. Ehhez a Word alkalmazás Documents objektumának Add függvényét kell meghívnunk. Visszatérési értékként megkapjuk az új dokumentum objektumát, melyet tárolunk az FDocument változónkba.
FDocument:=FApplication.Documents.Add;
Ha ez is megvan, akkor lekérdezzük a dokumentum kijelölt tartalom és betűtípus objektumát is.
FSelection:=FDocument.Application.Selection;
FFont:=FSelection.Font;
Ha például az adott bekezdés igazítását szeretnénk előírni, akkor ezt megtehetjük a következőképpen:
FSelection.ParagraphFormat.Alignment:=wdAlignParagraphCenter;
Ekkor az aktuális bekezdés középre lesz igazítva. A további lehetséges értékek a következők:
- wdAlignParagraphLeft: balra igazít
- wdAlignParagraphCenter: középre igazít
- wdAlignParagraphRight: jobbra igazít
- wdAlignParagraphJustify: sorkizárt
Nézzük, miként szúrhatunk be a dokumentumba egy állományban lévő képet:
ws:=ExtractFilePath(Application.ExeName)+'as.bmp';
FShape:=FDocument.InlineShapes.AddPicture(ws, false, true);
Az aktív dokumentum InlineShapes objektumának AddPicture függvényét kell használnunk. Itt első paraméterként a kép állomány elérési útvonalát kell megadnunk WideString típusban. Második paraméterként megadható, hogy a kép állományra csak egy link legyen-e elhelyezve a dokumentumba vagy sem. Harmadik paraméterben pedig azt szabályozhatjuk, hogy a kép legyen-e mentve a dokumentumba.
Az FSelection objektummal mozoghatunk is a dokumentumon belül. Például az EndKey a sorvégére állítja a kurzort, míg a HomeKey segítségével a Home billentyű lenyomását szimulálhatjuk, vagyis a sor elejére ugorhatunk. Ehhez hasonlóan egy Enter "leütését" a TypeParagraph függvény hívásával oldhatjuk meg a dokumentumban. A billentyűzeten található nyíl billentyűket pedig a MoveLeft, MoveRight, MoveUp, MoveDown függvényekkel érhetjük el.
Az adott szöveg betűtípusát az imént lekérdezett FFont objektumon keresztül szabályozhatjuk. Például vastag betűtípushoz a Bold property-t kell igazra állítani, míg a méretet a Size property-n keresztül adhatjuk meg. Ha a betűtípus színét kell változtatnunk, akkor a ColorIndex-nek adhatunk néhány előre definiált konstans értéket, melyek hasonló elnevezésűek, mint a Delphi-ből ismert TColor típusai, csak itt nem cl előtag van, hanem wd, így például a Delphi clGreen zöld színe itt wdGreen lesz. Ha a szöveget szeretnénk aláhúzni, akkor az UnderLine property-t kell használnunk. Ennek az alábbi értékek egyikét adhatjuk:
- wdUnderlineNone
- wdUnderlineSingle
- wdUnderlineWords
- wdUnderlineDouble
- wdUnderlineDotted
- wdUnderlineThick
- wdUnderlineDash
- wdUnderlineDotDash
- wdUnderlineDotDotDash
- wdUnderlineWavy
Ami viszont a legfontosabb egy ilyen dokumentum generálásánál, az nem más, mint a szöveg beírása. Ehhez az FSelection objektum TypeText függvényét használhatjuk. Itt paraméterként kell megadnunk azt a szöveget, melyet az aktuális kurzorpozícióba szeretnénk beszúrni.
|
Könyv
Ez a cikk megtalálható ebben a könyvben:
Delphi Software Offline 2001 évkönyv 39. oldal
Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!
|