HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

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.

Cikksorozat



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!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |