AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Word-Datei einbinden, bearbeiten, speichern

Word-Datei einbinden, bearbeiten, speichern

Ein Thema von AJ_Oldendorf · begonnen am 23. Jun 2021 · letzter Beitrag vom 28. Jun 2021
 
Delphi.Narium

Registriert seit: 27. Nov 2017
2.559 Beiträge
 
Delphi 7 Professional
 
#6

AW: Word-Datei einbinden, bearbeiten, speichern

  Alt 23. Jun 2021, 14:01
Delphi-Quellcode:
procedure TForm1.FormDestroy(Sender: TObject);
begin
  Try
    WordApp.Quit; // Word beenden.
  Except
    // Fehlermeldung ausgeben oder sonstwas machen oder Fehler ignorieren.
  end;
  Try
    WordApp := Unassigned;
  Except
    // Fehlermeldung ausgeben oder sonstwas machen oder Fehler ignorieren.
  end;
end;
SaveAs speichert das Dokument so, wie es gerade ist. Wenn man was ändert, speichert man die Änderungen natürlich mit. Das Originaldokument sollte aber ohne Änderungen geschlossen werden.

wdDoNotSaveChanges bzw. wdSaveChanges beziehen sich auf das WordApp.ActiveDocument.Close und werden diesem als Parameter übergeben. WordApp.ActiveDocument.SaveAs weiß davon nix.

WordApp.ActiveDocument.Close(wdSaveChanges) speichert Änderungen im aktiven Dokument und schließt es.
WordApp.ActiveDocument.Close(wdDoNotSaveChanges) verwirft Änderungen im aktiven Dokument und schließt es.
WordApp.ActiveDocument.SaveAs('Dokumentenname.docx ') speichert das aktive Dokument, so wie es gerade ist, unter dem angegebenen Namen.
Es wäre mal zu prüfen, ob sich durch SaveAs das aktive Dokument ändert (vermutlich ja).

Mal folgende Annahme:

Button1Click

Dann Änderungen machen

Button2Click

Dann sind die Änderungen im Dokument unter neuem Namen gespeichert.
Das per SaveAs gespeicherte Dokument entspricht damit nicht mehr dem mit Button1Click geöffneten Dokument.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  WordApp.Documents.Open('D:\Test1.docx');
  WordApp.ActiveDocument.SaveAs('D:\Test2.docx');
  // Hier sind die Dokumente Test1.docx und Test2.docx (noch) gleich.
end;

// Jetzt was im Dokument ändern.
procedure TForm1.Button2Click(Sender: TObject);
var
  vParam : OleVariant;
begin
  // Aktuelles Dokument (ohne Änderungen zu speichern) schließen.
  vParam := wdDoNotSaveChanges;
  WordApp.ActiveDocument.Close(vParam);
  // Damit dürften dann die Änderungen in der per SaveAs erstellten Kopie
  // nicht enthalten sein.
end;
  Mit Zitat antworten Zitat
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 10:17 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