Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Kommunikation Delphi und MS-Word 2003 (https://www.delphipraxis.net/79170-kommunikation-delphi-und-ms-word-2003-a.html)

Dr_Funk 17. Okt 2006 15:20


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!!!

shmia 17. Okt 2006 17:29

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

Dr_Funk 18. Okt 2006 07:17

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.

Dr_Funk 19. Okt 2006 08:49

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;

Dr_Funk 19. Okt 2006 14:09

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!?

shmia 19. Okt 2006 14:46

Re: Kommunikation Delphi und MS-Word 2003
 
Du brauchst doppeltes Know-How:
1.) Programmierung von COM/DCOM/ActiveX mit Delphi
http://www.amazon.de/COM-DCOM-COM%2b...710629?ie=UTF8
(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.

Dr_Funk 20. Okt 2006 08:49

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 ...


Delphi COM Programming

Delphi Programming with Com and ActiveX


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:48 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