Einzelnen Beitrag anzeigen

Benutzerbild von Smiley
Smiley

Registriert seit: 9. Dez 2004
Ort: Gedern
205 Beiträge
 
Delphi 10.4 Sydney
 
#1

Wordapplication mehrfach öffnen und schließen

  Alt 21. Mär 2007, 21:53
Datenbank: Access • Version: 2000 • Zugriff über: ADO
Ich möchte eine Worddatei öffnen etwas hineinschreiben und anzeigen.
Danach soll die Datei entweder weiter geöffnet bleiben um sie später mit anderen Daten zu beschreiben und anzuzeigen
oder sie wird geschlossen und das Programm beendet.

Das geht alles solange gut, bis der Anwender eingreift und das Word selbst schließt.
Dann bekomme ich Probleme wenn ich die Wordapplication1 vom Programm schließen will
und auch, wenn ich sie danach nochmal öffnen will.

Hier mal etwas Code für das öffnen und schließen:

Delphi-Quellcode:
//******************************************************************************
//***************** Word öffnen ************************************************
//******************************************************************************

Procedure ConnectToWord;
Begin
  With Form1 Do
    Begin
      if not Assigned(Wordapplication1) then
        WordApplication1.Create(nil);
      Try
        WordApplication1.Connect;
      Except
        Showmessage('Word konnte nicht gestartet werden');
        exit;
      End;
      WordApplication1.Documents.OpenOld(FileName, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam,
        EmptyParam, EmptyParam, EmptyParam, EmptyParam);

      WordDocument1.ConnectTo(WordApplication1.ActiveDocument);
    End;

End;
//******************************************************************************
//***************** Word Beenden ***********************************************
//******************************************************************************

Procedure WordBeenden;
Begin
  With Form1 Do
    Begin
      WordApplication1.Visible := True;
      WordApplication1.Activate;

      showmessage('Weiter mit OK');

      Try
        Feld := False;
        If Assigned(WordApplication1) Then
          Begin
            WordApplication1.Quit(Feld);
            WordApplication1.Disconnect;
            WordApplication1.Free;
          End;
      Except
      End;
    End;
End;
Die IF Assigned() Abfrage scheint nicht zu funktionieren wenn Word schon geschlossen ist.

wie macht man das richtig ?
  Mit Zitat antworten Zitat