AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi OnClose-Ereignis eines Word-Dokumentes abfangen?
Thema durchsuchen
Ansicht
Themen-Optionen

OnClose-Ereignis eines Word-Dokumentes abfangen?

Ein Thema von mjenke · begonnen am 21. Dez 2006 · letzter Beitrag vom 2. Jan 2007
Antwort Antwort
mjenke

Registriert seit: 28. Mär 2003
Ort: Bonn
131 Beiträge
 
#1

OnClose-Ereignis eines Word-Dokumentes abfangen?

  Alt 21. Dez 2006, 07:19
Guten Morgen, alle miteinander!

Vielleicht kann mir jemand bei folgendem Problem helfen. Ich schreibe derzeit für meine Firma ein Word-AddIn (DLL). Jetzt stehe ich vor einem Problem, bei dem ich noch nicht genau weiß, wie ich es lösen soll:

Wie kann man beim Erzeugen oder Öffnen eines Dokumentes in Word einen MessageHandler auf das OnClose-Ereignis dieses Dokumentes setzen? Folgender Code funktioniert NICHT:

Deklaration des MessageHandlers:

procedure MsgHandle_DocumentClose ( Sender: TObject ); Implementierung im DocumentOpen-Handler, der bereits mit der Word-Application verbunden ist

Delphi-Quellcode:
procedure TXConMag.MsgHandle_DocumentOpen(Sender: TObject;
  var Doc: OleVariant);
begin
  TWordDocument(WordApp.Documents.Item(Doc)).OnClose := MsgHandle_DocumentClose;
end;
Ebensowenig kann ich einfach

Doc.OnClose := MsgHandle_DocumentClose; benutzen, da ich dann die Fehlermeldung bekomme, dass das Automatisierungs-Objekt diese Funktion nicht unterstütze...



Matthias
Matthias Jenke
  Mit Zitat antworten Zitat
mjenke

Registriert seit: 28. Mär 2003
Ort: Bonn
131 Beiträge
 
#2

Re: OnClose-Ereignis eines Word-Dokumentes abfangen?

  Alt 27. Dez 2006, 07:11
Guten Morgen!


Inzwischen habe ich einiges versucht, um im OnWindowDeactivate-Ereignis der Application, in Verbindung mit dem OnDocumentBeforeClose-Ereignis der Application etwas zusammenzustricken. Aber leider bin ich nicht wirklich weiter gekommen.

Wenn also jemand eine Idee hat... Mein Abgabetermin rückt näher, und ich werde langsam ein wenig hektisch...

Matthias
Matthias Jenke
  Mit Zitat antworten Zitat
mjenke

Registriert seit: 28. Mär 2003
Ort: Bonn
131 Beiträge
 
#3

Re: OnClose-Ereignis eines Word-Dokumentes abfangen?

  Alt 2. Jan 2007, 14:06
Hallo, an alle!

Habe das Problem mit dem OnClose-Ereignis gerade gelöst:

Für jedes Dokument, das in Word erzeugt oder geöffnet wird, wird ohnehin von mir eine Umgebung angelegt (Objekt). Innerhalb dieser Umgebung habe ich ein Feld "FWordDok" eingefügt, das vom Typ TWordDocument ist.

Wenn ich im Create meiner Umgebung folgenden Code einfüge:

Delphi-Quellcode:
constructor TEnv.Create(Dok: _Document; Word: PWordApplication; EventButton: TOfficeButtonClickEvent;
                        EventDok: TNotifyEvent);
begin
  FOfficeButtonClass := TSimpleOfficeButton;
  FEvent := EventButton;
  FDok := Dok;
[...]
  // WordDokument vorbereiten
  FWordDok := TWordDocument.Create ( nil );
  FWordDok.ConnectTo (Dok as Word_TLB._Document);
  FWordDok.OnClose := EventDok;
end;
habe ich eine Verbindung zwischen meinem Feld "FWordDok" und dem eigentlichen Dokument hergestellt. In das OnClose des TWordDocument kann ich mein NotifyEvent eintragen, und das Ereignis ist abgefangen!

Matthias Jenke
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:47 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz