Announcement

Collapse
No announcement yet.

TWordApplication - Events zünden nicht

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • TWordApplication - Events zünden nicht

    Hallo,

    ich befülle über die Komponenten TWordApplication und TWordDocument eine Wordvorlage, was auch wunderbar funktioniert. Das Dokument soll aber nach der Bearbeitung in einer Datenbank gespeichert werden, daher möchte ich auf Events reagieren können, vor allem auf OnBeforeSave.
    Es werden aber alle Events sowohl von der WordApplication als auch vom Dokument ignoriert.
    Kennt jemand die Ursache dafür?

    Ich arbeite mit Word2010 und DelphiXE.
    Vereinfacht sieht mein Code so aus:
    Code:
    var WordApp : TWordApplication;
        WordDocument : TWordDocument;
    
    procedureCreateWordAppAndDoc;
    begin
      WordApp := TWordApplication.Create(Self);
      WordDocument := TWordDocument.Create(Self);
    end;
    
    procedure FillVorlage ();
    begin
      NewTemplate := False;
      Visible := True;  
      WordApp.Connect;
      WordApp.Visible := True;
      WordDocument.ConnectTo(WordApp.Documents.Add('C:\meineVorlage.dot', False, EmptyParam, True));
      WordDocument.Fields.Item('Name').Result.Text := 'Inhalt';
    end;
    
    procedureFreeWordAppAndDoc;
    begin
      WordApp.Disconnect;
      WordDocument.Free;
      WordApp.Free;
    end;
    
    procedure WordAppDocumentBeforeSave(ASender: TObject; const Doc: _Document; var SaveAsUI, Cancel: WordBool);
    begin
      ShowMessage('Event WordAppDocumentBeforeSave ausgelöst.');
    end;
    Vielen Dank für die Hilfe,
    Mechthild Lemke

  • #2
    Du musst den Event auch mappen dann klappt das ganz nice :

    habs mal auf den close event gepackt

    procedure TForm1.FillVorlage ();
    begin
    NewTemplate := False;
    Visible := True;
    WordApp.Connect;
    WordApp.Visible := True;
    WordApp.OnDocumentBeforeClose := WordAppDocumentBeforeSave;
    WordDocument.ConnectTo(WordApp.Documents.Add('C:\C SI_Indexmiete_121212.doc', False, EmptyParam, True));
    end;

    Achja...und das Object zu freen und dann zu erwarten das noch events davon durch kommen da muss man halt dran glauben .
    Zuletzt editiert von Frank M. aus P; 20.05.2020, 12:45.

    Comment


    • #3
      Die Frage ist 8 Jahre alt.....
      Christian

      Comment

      Working...
      X