Einzelnen Beitrag anzeigen

Benutzerbild von Piro
Piro

Registriert seit: 14. Jul 2003
Ort: Flintbek
810 Beiträge
 
Delphi XE2 Professional
 
#1

CreateOleObject('Word.Application') - Dotx öffnen aber docx bekommen, wie?

  Alt 27. Nov 2018, 13:01
Moin zusammen,

ich habe ein Datei vorlage.dotx, welche ich öffne und mit Daten fülle.
Diese Vorlage ist schreibgeschützt. Der Schreibschutz wird deaktiviert, beim Füllen der Daten.

Das klappt auch alles super. Hier der Code
Delphi-Quellcode:
const
 wdAllowOnlyFormFields = $00000002; // http://www.delphigroups.info/2/d4/455196.html
..
try
   {Verbindung aufbauen}
   Word:=CreateOleObject('Word.Application');
 except
   {Schlägt sie fehl (Word nicht installiert), gibt es eine Fehlermeldung}
   ShowMessage('Microsoft Word kann nicht starten.');
   Screen.Cursor:=crDefault;
   Exit;
 end;

 word.visible:=true;
 word.Documents.Open(doc); // doc = vorlagen.dotx

try
   word.ActiveDocument.Unprotect;

   if word.ActiveDocument.Bookmarks.Exists('Titel') then
   begin
     r := word.ActiveDocument.Bookmarks.Item('Titel').Range;
     r.InsertAfter(lbl_titel.Caption);
   end;

   if word.ActiveDocument.Bookmarks.Exists('Beschreibung') then
   begin
     r := word.ActiveDocument.Bookmarks.Item('Beschreibung').Range;
     r.InsertAfter(edt_beschreibung.Text);
   end;

   word.ActiveDocument.Protect(wdAllowOnlyFormFields);
 finally
   word:=unassigned;
 end;
Leider wird nicht ein docx Dokument geöffnet sondern, dass dotx Dokument und wenn man nicht aufpasst und speichert, werden die Änderungen übernommen.

Starte ich aber das dotx Dokument, macht Word ein docx Dokument auf.

Welcher Schalter fehlt mir, damit das Öffnen aus Delphi mit meinem Code aus der vorlagen.dotx ein document.docx macht?

Danke im Voraus.
Sven
  Mit Zitat antworten Zitat