Delphi és a szó

Megbeszéljük az általános tulajdonságait és WordApplication WordDocument alkatrészek, dolgozni dokumentumok és telepítés „Oldalbeállítás” dokumentum -, hogy meg kell kezdeni dolgozni MS Word.

Forgalomba alakja Comp WordApplication, látjuk a tulajdonságok és módszerek nagyon kevés. Először is meg kell kérdezni ConnectKind tulajdon. Ez lehet:

* CkRunningOrNew Csatlakozás egy már futó szerver Word, ennek hiányában, a szerver elindul.
* CkNewInstance Függelék Mindenképpen futtatni a saját céljaira a szerver példány.
* CkRunningInstance alkalmazás csatlakozik csak egy futó kiszolgáló példányhoz. hiba fordul hiányában.
* CkRemote kapcsolatot a szerver a távoli számítógépen.

Általában Elégedett az alapértelmezett ckRunningOrNew. Ez azt jelenti, hogy az alkalmazás fog működni a már a számítógépen futó Word'a például, és ha ez nem indít. Második kiviteli ckNewInstance azt jelenti, hogy feltétlenül kezdeni egy másik példány Word'a, hogy nyitott vagy nem szó. Ha beállítja ckRunningInstance, mi app csak akkor fog működni a már futó Word, és ha ez nem áll rendelkezésre, kivétel történik EOleSysError. Együttműködik a Word a távoli számítógépen, válassza ckRemote, míg RemoteMachineName ingatlan ne felejtsük el, hogy adja meg a hálózat nevét a kívánt készüléket.

A kapcsolat a Word-kiszolgáló megfelel a Csatlakozás módszer. Csatlakozás típusa mindössze minősített ConnectKind tulajdon. Például a kód, amely alapján a program megpróbál kapcsolódni a szerverhez a Word, és távollétében ad egy üzenetet. kapcsolatot létesíteni típusú ckRunningInstance.

megpróbál
WordApplication1.Connect;
kivéve
Application.MessageBox ( 'bezárásához', 'Csatlakozás sikertelen', 0);
Application.Terminate;
végén;

Ha szükséges, akkor ellenőrizze az esemény a konkrét kivételek (akkor kell csatlakoztatni a kezében comobj modul), de ez aligha jelentős. A legfontosabb, hogy sikeresen a kapcsolatot, vagy sem. Leválasztásához Word'a használni a módszert


Tulajdonságok AutoConnect és AutoQuit, meg igaz, hogy a kapcsolatot a Word és húzza ki automatikusan. Azaz, ha a program fut automatikusan határozza meg: Módszer Connect és a kilépés belőle - Húzza ki, majd a Kilépés lehetőséget. Ahhoz azonban, hogy tartsa a kapcsolatot a Word rendszerint nincs szükség, mert ezek a tulajdonságok False alapértelmezés szerint.

A Word szerver Visible tulajdonság meghatározza, hogy az MS Word látható munkánk során vele. Lehet állítani, hogy igaz vagy hamis - illetve látható és nem. Általában dolgozni iratok lopakodó üzemmódban, majd megjelenik a képernyőn a kész eredményt. De abban a szakaszban a hibakeresés könnyebben láthatja a saját szemével a program mit csinál. Néha azonban politikai okokból, akkor hagyja a szerver látható - ha a Word magától kinyílik, és elindul, hogy tegye közzé a dokumentumot a felvilágosult fejében ez mély benyomást tesz :))

Verzió tulajdonság lehetőséget ad arra, hogy ismerjük a verzió van telepítve a gépre Word'a. Például:

Egy másik fontos tulajdonsága az Ige szerver - gyűjteménye dokumentumok. Ez lehetővé teszi, hogy nyissa meg a dokumentumot, vagy hozzon létre egy újat, amely hozzáférést biztosít a dokumentum már nyitva van. Dokumentum megnyitása (korábban leírni változó fájlnév OleVariant típusa és rendeljen hozzá egy húr a fájl nevét):

WordApplication1.Connect;
WordApplication1.Documents.Open (fájlnév,
EmptyParam, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam,
EmptyParam, EmptyParam);
WordDocument1.ConnectTo (WordApplication1.ActiveDocument);

Új dokumentum létrehozása néz egyszerűbb:

WordApplication1.Connect;
WordApplication1.Documents.Add (EmptyParam, EmptyParam, EmptyParam, EmptyParam);
WordDocument1.ConnectTo (WordApplication1.ActiveDocument);

Azt is hozott egy pár „cumi” több - ugyanazon okokból. Ha azt szeretnénk, hogy hozzon létre egy új dokumentumot alapján a sablon, ahelyett, hogy az első paraméter változó típusú OleVariant, amely előre rendelni egy húr az utat a dot - a fájl. Ha megnyitjuk a dokumentumot néhány előreszaladt, a kapcsolat WordDocument komponens fog beszélni a jövőben újra.

Ha van több dokumentum nyitva van, akkor váltani őket, de nem közvetlenül, hanem az „aktív” ablak Word'a:

var
vid: OleVariant;
kezdődik
vid: = 2;
WordApplication1.Windows.Item (vid) .Activate;
WordDocument1.ConnectTo (WordApplication1.ActiveDocument);

Emlékeztetni kell arra, hogy a vid változó értékeket vehet fel 1-től WordApplication1.Documents.Count. Akkor tudunk dolgozni ezt a dokumentumot. Számozása dokumentumok zajlik sorrendjében felfedezés. Technikailag írhatnánk


De ez nem működik. Általánosságban különböző hibák fog találkozni sok, nem tudom, hogy ki a hibás - Borland vagy a Microsoft.

Szó nem vesztegeti az idejét, akkor hasznos, csak hogy ellenőrzés kikapcsolása helyesírási és nyelvtani:

WordApplication1.Options.CheckSpellingAsYouType: = false;
WordApplication1.Options.CheckGrammarAsYouType: = false;


Ennek megfelelően hozzárendelésével True The, lehet újra bekapcsolni.

Nos, annak érdekében, hogy feltölt Word, hívja a Quit módszer:

Együttműködik szánt dokumentumok WordDocument komponenst. Tulajdonságok és módszerek ő ismét nem sok, a termék tulajdonságai hasonlóak a WordApplication, amelyet már említettünk. Mint általában, a vagyon általában, és ne érintse. A lényeg, hogy még mindig meg kell - a kapcsolatot a kívánt dokumentumot. Erre a célra connectto módszer. Ha csak egy dokumentumot nyithatunk, semmi sem könnyebb - csatlakozzon az „aktív” dokumentum, lásd a fenti példa egy dokumentum megnyitásához .. Ha több dokumentum nyitott, kezdje bonyolultságát. Formálisan, tudjuk írni, például:

var
vid: OleVariant;
kezdődik
vid: = 2;
WordDocument1.ConnectTo (WordApplication1.Documents.Item (vid));

A gyakorlatban ez működik valamilyen okból csak az első alkalommal. Ha sor kerül beillesztésre a dokumentumba. 2, az első hívást ő tette oda. A követés, nem számít, milyen a dokumentum számát nincs megadva, akkor a karakterlánc lesz az első dokumentum. Ezért, ha szükséges, azt használja az átmenet az „ablak szám”, amelyet meghatározott az előző részben, és általában megpróbálja megnyitni csak egy dokumentumot egy időben.

A dokumentum mentéséhez módszerével Save:


Save Method opció lehetővé teszi, hogy mentse a dokumentumot más néven:

var
fájlnév: OleVariant;
kezdődik
fájlnév: = 'd: \ test.doc';
WordDocument1.Save (fájlnév);

Ha azt szeretnénk, hogy írjon egy dokumentumot, nem csak más név alatt, de más formátumban, használja a Mentés két paraméterrel:


ahol Fájlformátum OleVariant típusú változó lehet venni az értékeket:

$ 00000000 - wdFormatDocument - Word Document
$ 00000004 - wdFormatDOSText - Plain Text
$ 00000006 - wdFormatRTF - RTF fájl


Ez a leglényegesebb állandók, és a teljes lista megtalálható a header fájlban írja a keresőmezőbe a „Format”.

Lehetséges, hogy mentse, és a módszer bezárása. Számára ukazavaem hogy a változások mentéséhez, amikor bezárja a dokumentumot:

var
vschange: OleVariant;
kezdődik
vschange: = wdSaveChanges;
WordDocument1.Close (vschange);

Állandó módosítások mentése eltarthat értékek

wdSaveChanges - $ FFFFFFFF
wdDoNotSaveChanges - $ 00000000
wdPromptToSaveChanges - $ FFFFFFFE


Az első érték folyamatosan változik, és a második lehetővé teszi, hogy kilép mentés nélkül. Az utóbbi okozza az állandó teljesítményt standard párbeszéd mentjük a módosításokat.

A következő eljárás hívhatja paraméterek nélkül:


De ha a dokumentum, hogy néhány módosítást, a standard kérelem megőrzésük kerül kiadásra. Ha a Word nem látható, és nem látja a kérést, és ezek a dokumentumok lógnak a háttérben, amíg a számítógép ki van kapcsolva, és amikor megkapjuk az összes kérdést. A legérdekesebb az, hogy a munka során a szokásos Szó komponensek nem jelenik meg a listán az aktív alkalmazások mert annak bezárását és az időben történő megőrzése dokumentumokat kell figyelni.

Gyakran előfordul, hogy mielőtt dolgozni Word'om van szükség, hogy ellenőrizze, hogy a gép nyitott dokumentumokat, kivéve azokat, közel a sérülések elkerülése érdekében:

var
i, doccount: egész;
kezdődik
doccount: = WordApplication1.Documents.Count;
i: = 1 doccount do
kezdődik
WordDocument1.ConnectTo (WordApplication1.ActiveDocument);
WordDocument1.Save;
WordDocument1.Close;
végén;

Ez a kód menti és bezárja az összes dokumentumot a gépen. Írás helyett az utolsó két sor a következő módszer ciklus paramétereket, akkor gyere ki a dokumentum mentése nélkül. Azaz, egy soros kapcsolatot az aktív dokumentum csupán felsorolja azokat. Ami érdekes, hogy oly módon válthatunk dokumentumok nem megy dolgozni.

Itt fogunk összpontosítani beállítások oldalon - margók, oldaltörések és nyomtatott szöveg több oszlopot. Azt is programozottan válthat a „papír méret” - álló vagy fekvő. De az utóbbi óvatosnak kell lennünk, még meg fogják mondani, hogy miért.

Papírméret területen, és

Először is, hogyan lehet meghatározni, vagy módosítsa a beállítást a Word papírméret:


Ez már teljesen megváltozott önkényes magassága és szélessége az oldalt. A szám, amelyet a megfelelő tulajdonságokkal, mint például a Single. Ugyanez lehet olvasni a képeket, és állítsa be az oldal beállításához a Word.

Most a területeken. Változás (olvasás) mezőszélességet az oldal:

WordDocument1.PageSetup.TopMargin: = 100;
WordDocument1.PageSetup.BottomMargin: = 90;
WordDocument1.PageSetup.LeftMargin: = 90;
WordDcoument1.PageSetup.RightMargin: = 50;


A szám, amelyet az mezőszélességet ismét írja egységes.

Ezen felül, akkor használjon egy nagy sor „előre meghatározott” papír formátumban. Alapértelmezésben ez általában „A4”, de tudjuk választani, és valami mást.

Ha azt szeretnénk, hogy a teljes szöveg megjelenítéséhez több oszlop, a következőképpen kell eljárni:

var
a, b, vwidth, vSpace, vesp: OleVariant;
kezdődik
vwidth: = 210;
vSpace: = 10;
vesp: = wdLineSpaceSingle;
WordDocument1.PageSetup.TextColumns.Add (vwidth, vSpace, vesp);

Itt van hozzá egy másik oszlopot. Ha beírjuk a szöveget a dokumentum, akkor gondosan elosztva két oszlopot. Ezáltal annyi oszlopot szükség. Az első paraméter - a oszlop szélessége, a második - a távolság az oszlopok között, a harmadik - távolság a sorok között. Értéket vehet fel:

wdLineSpaceSingle - $ 00000000
wdLineSpace1pt5 - $ 00000001
wdLineSpaceDouble - $ 00000002


Oszlopok beállításait lehet változtatni visszamenőleg. Oszlopok képgyűjteményt TextColumns, számozott indexet 1 és WordDocument1.PageSetup.TextColumns.Count:

var
i: integer;
kezdődik
i: = 1;
WordDocument1.PageSetup.TextColumns.Item (i) .Width: = 100;
WordDocument1.PageSetup.TextColumns.Item (i) .SpaceAfter: = 10;

Kapcsolódó cikkek