Hallo,
bin ein Delphi-Noob (habe vorher VB gemacht)
Ich habe hier ein Problem mit einem Addin für Word.
Ich habe ein Addin für Word erstellt, mit dem man über eine Schaltfläche in der Word-Menueleiste einen Dialog startet, wo man bestimmte Kunden aus der DB auswählt und den zu erstellenden Bericht/Fax/ etc.
Dazu gibt es diverse Word-Templates, die je nach Kunde ausgewählt werden.
So weit so gut.
Jetzt ist es aber so, daß jetzt ein neues Word geöffnet wird, was schlecht ist, da das Delphi-Fenster jetzt ja nicht mehr modal ist...
Vermutlich liegt es irgendwie an dem
WordApplication1.Connect;
WordApplication1.Documents.AddOld(NewFile,EmptyParam);
wie kann ich das anders machen, daß in der aktuellen Instanz von Word ein neues Dokument (mit der angegebenen Vorlage) gemacht wird. Das alte Dok schliessen evtl?
mein Code:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26:
| procedure TForm1.Button2Click(Sender: TObject); var NewFile : OleVariant; vWhat, vBookmark:OleVariant; i:integer; f:TField; begin NewFile:='C:\addintest\'+vorlage+'.dot'; WordApplication1.Connect; WordApplication1.Documents.AddOld(NewFile,EmptyParam); WordDocument1.ConnectTo(WordApplication1.ActiveDocument); WordApplication1.Visible:=true;
for i:=0 to Query1.Fields.Count-1 do begin f:= Query1.Fields.Fields[i]; vWhat:=wdGoToBookmark; vBookmark:=f.FieldName; if WordDocument1.Bookmarks.Exists(f.FieldName) then begin WordApplication1.Selection.GoTo_(vWhat,emptyParam,emptyParam,vBookmark); WordApplication1.Selection.TypeText(Query1.fieldByname(f.FieldName).AsString); end; end; WordApplication1.Disconnect;
end; |
Moderiert von
Gausi: Quote- durch Delphi-Tags ersetzt
oh, Danke
Achso, was mir gerade noch eingefallen ist, gibt es eine Methode, den Print-Preview im Delphi-Fenster und nicht den von Word anzuzeigen? Ich hab dazu nix gefunden