HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

MS Word esemény kezelése


Példaprogram letöltése

183768 bájt

Az alábbi példában egy olyan kis alkalmazást készítünk, ami a Word-ben történő különböző eseményeket naplózza.
Az események figyeléséhez egy új osztályt kell létrehoznunk, amit a TInterfacedObject, IDispatch és IUnknown osztályokból származtatunk.
  TWordEvents = class(TInterfacedObject, IUnknown, IDispatch)
A QueryInterface függvény az IUnknown osztály deklarációjában szerepel. A QueryInterface egy hozzáférést ad a megadott interfészhez, amennyiben az objektum támogatja azt. Ennek kódja a következő:
  Result := E_NOINTERFACE;
  if GetInterface(IID, Obj) then Result := S_OK;
  if IsEqualGUID(IID, ApplicationEvents2) and GetInterface(IDispatch, Obj) then Result := S_OK;
Az IID paraméter a kérdezett interfész GUID-je. Az új osztály az ApplicationEvents2 interfészt támogatja, amiben a Word eseményei vannak deklarálva. Ehhez szükség van a Word_TLB unit-ra, amit a Word Type Library importálásával készíthetünk el. Ehhez nyissuk meg a Delphi Project menüjének Import Type Library menüpontját. A listából válasszuk ki a Microsoft Word x.0 Object Library-t, és kattintsunk a Create gombra.

Az osztály konstruktorában elindítjuk a Word-öt, majd az InterfaceConnect metódussal csatlakoztatjuk az ApplicationEvents2 interfészt az osztályhoz.
  FWordApp:=CoWordApplication.Create;
  InterfaceConnect(FWordApp, ApplicationEvents2, self, FConnection);
Ezután az Invoke függvény minden esetben lefut, amikor egy esemény bekövetkezik. Ennek DispID paraméteréből megtudhatjuk, hogy melyik esemény futott le. Ezekhez előzőleg konstansokat hoztunk létre, hogy a forráskód átláthatóbb legyen.

Az osztály destruktorában lecsatlakoztatjuk az interfészt, és bezárjuk a Word-öt.
InterfaceDisconnect(FWordApp, ApplicationEvents2, FConnection);
try
FWordApp.Quit;
except;
AddMessage('A Word bezárása közben hiba történt!');
end;
A naplózandó események a következő
    Startup: a Word indításakor következik be. Quit: kilépéskor következik be. DocumentChange: új dokumentum létrehozásakor, meglévő dokumentum megnyitásakor, vagy egy másik dokumentumra történő átváltáskor jön létr
A következő események csak Word 2000-ben létezne
    DocumentBeforeClose: a dokumentum bezárása előtt jön létre. DocumentBeforePrint: a dokumentumkinyomtatása előtt jön létre. DocumentBeforeSave: a dokumentum mentése előtt jön létre. DocumentOpen. dokumentum megnyitása. NewDocument: új dokumentum létrehozása. WindowActivate: ablak aktivizálása. WindowBeforeDoubleClick: az ablakra történő dupla kattintás előtt jön létre. WindowBeforeRightClick: az ablakra jobb egérgombbal történő kattintás előtt jön létre. WindowDeactivate: akkor jön létre, amikor az ablak elveszíti a fókuszt. WindowSelectionChange: a kijelölés megváltozásakor jön létr

Cikksorozat

#IDKategóriaCikk címeSorozat
1063DelphiInterbase 6 alkalmazása Delphi-ben1. rész
1072DelphiInterbase 6 alkalmazása Delphi-ben2. rész
1084DelphiInterbase 6 alkalmazása Delphi-ben3. rész
1092DelphiTIBTable komponens4. rész
1102DelphiTIBTransaction komponens5. rész
1111DelphiTIBQuery komponens6. rész
1120DelphiTIBStoredProc komponens7. rész
1128DelphiTIBDataSet komponens8. rész
1141DelphiTIBSQL komponens9. rész
1150DelphiTIBSQLMonitor komponens10. rész
1159DelphiTIBUpdateSQL komponens11. rész
1167DelphiIBEvents komponens12. rész
1177DelphiIBDatabaseInfo komponens használata13. rész
1183DelphiTIBConfigService komponens14. rész
1192DelphiTIBSecurityService komponens15. rész
1204DelphiTIBServerProperties komponens16. rész
1213DelphiTIBBackupService komponens17. rész
1222DelphiTIBRestoreService komponens18. rész
1231DelphiTIBValidationService komponens19. rész
1240DelphiTIBStatisticalService komponens20. rész
1249DelphiTIBLogService komponens21. rész
1258DelphiTIBUninstall komponens22. rész
1267DelphiInterBase Express komponenscsomag23. rész


Könyv
Ez a cikk megtalálható ebben a könyvben: Delphi Software Offline 2001 évkönyv 476. 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 |