![]() |
Kommunikation Delphi und MS-Word 2003
Hallo allerseits!!!
Ich möchte gerne wissen, ob und wie es möglich ist Nachrichten von MS-Word mit Delphi zu empfangen? Aus Delphi herraus kann ich bereits Word und ein Formular öffnen und auch wieder schliessen. Nun ist es ja auch möglich durch Delphi anzeigen zu lassen, dass ein Word gestartet ist -> OnOpen bzw. geschlossen wurde -> OnClose. Wie ist es nun möglich das Delphi "merkt", dass in Word der Speichervorgang ausgelöst wurde, z. B. drücken der Speicher-Diske. Mir schwebt vor, dass das Dokument beim Auslösen des Speichervorgangs direkt in eine Datenbank gespeichert wird. Das soll durch die Delphianwendung gemacht werden, der Vorgang soll halt durch eine Nachricht von MS-Word angestossen werden. ..... für Codebeispiele wär ich sehr dankbar.... suche mir schon nen Wolf und bin noch immer nicht viel schlauer. DANKE schon mal im Vorraus für JEDEN Tip, mag er auch nur so klein sein!!! |
Re: Kommunikation Delphi und MS-Word 2003
Die Fähigkeiten von Delphi COM/DCOM-Events zu empfangen sind leider sehr begrenzt. :cry: :cry:
(dies gilt für Delphi 5 und ganz besonders für D4 & D3) Delphi kann nur einen Komponenten-Wrapper erzeugen. Zum Glück sind für WinWord diese Komponenten schon standardmässig an Bord (nur Prof-Version oder besser). In der Komponenten-Palette die 1. Komponente auswählen (TWordApplication) und auf ein Formular ziehen. Du hast dann die Delphi-Events OnDocumentChange, OnStartup und OnQuit zur Verfügung. Die Komponentenwrapper wurden (zumindest bei D5) für Word2000 oder Word97 erstellt, deshalb hast du die neuen Events von Word2003 vorerst nicht zur Verfügung. PS: bitte deine Delphi-Version in deinem Profil hinterlegen, da bei COM/DCOM sehr grosse Unterschiede zwischen den Versionen existieren |
Re: Kommunikation Delphi und MS-Word 2003
.... so ich hab mein Profil nun angepasst "Delphi 7 Enterprise" ... ich guck mir dann mal die Wrapper an.
|
Re: Kommunikation Delphi und MS-Word 2003
Ich hab es mit dem Ereignis 'OnDocumentBeforeSave' gelöst!
Delphi-Quellcode:
procedure TForm1.WordAppDocumentBeforeSave(ASender: TObject;
const Doc: _Document; var SaveAsUI, Cancel: WordBool); // Hier wird der MS-Word Speicher-Dialog abgefangen und man kann eine // eigene Routine durchführen. // Durch "Cancel" wird der Word- Speichern-unter-Dialog unterbunden. // Mit "SaveAsUI" kann man wohl einen eigenen Speicher-Dialog erzeugen. var OleStrFileName : OLEVariant; begin if Assigned(WordDoc) then begin OleStrFileName := ''; OleStrFileName := 'c:\test1.doc'; WordDoc.SaveAs(OleStrFileName); ShowMessage ('Das Dokument wurde gespeichert.'); Cancel := true; // bricht den Speicherdialog ab end; // if Assigned(WordDoc) end; |
Re: Kommunikation Delphi und MS-Word 2003
.......könnte mir jemand zu diesem Thema vielleicht ein gutes Buch empfehlen??? .... da scheint es mir nicht so viele zu geben!?
|
Re: Kommunikation Delphi und MS-Word 2003
Du brauchst doppeltes Know-How:
1.) Programmierung von COM/DCOM/ActiveX mit Delphi ![]() (lies vor dem Kauf die Rezensionen durch) 2.) Verstehen des Objekt-Modells von Microsoft WinWord WinWord starten. Extras->Macro->Visual Basic Editor F1 drücken und "Microsoft Word Visual Basic Referenz" studieren Es gibt wahrscheinlich auch Bücher dazu. |
Re: Kommunikation Delphi und MS-Word 2003
.... oh ich hab es fast befürchtet, dass es auf dieses Buch hinausläuft, so toll scheint es ja nicht zu sein .... naja vielleicht besser als gar nichts .... oder ich hol mir nen englisch Sprachiges .... aber aktuell sind die ja alle nicht wirklich ...
![]() ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:41 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz