Einzelnen Beitrag anzeigen

Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.859 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: WordApplication in Thread ausführen?

  Alt 22. Feb 2008, 22:51
Hallo bwolf,

ich glaube nicht das man das mit einem Thread lösen kann, ich vermute vielmehr das, dass Problem an MSWord liegt. Mit PrintOut wird kein Ausdruck im Hintergrund ausgeführt. Wenn man also drucken will, so muss der Ausdruck im Vordergrund gestartet werden, was bedeutet das Word während dieser Zeit blockiert ist. Normaler Weise wird mit FALSE der Hintergrunddruck verhindert, sodass der Ausdruck auch erfolgt.

Es gibt eine alternative zur PrintOut-Methode und zwar die Execute – Methode des Drucken – Dialogfeldes.

Ich habe mal ein kleiner Code – Schnipsel als Beispiel. Er müsste natürlich noch an Deine Bedürfnisse angepasst werden. Für Serienbriefe habe ich die Exceute – Methode zwar noch nicht verwendet, aber vielleicht funktioniertes.


Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
const
   coDoc= 'c:\Test.dot';

var
  Word: _Application;
  Doc: _Document;
  Para: Paragraph;
  aRange: Range;
  oleParam: OleVariant;
begin
  Word:= CoWordApplication.Create;
  Word.Visible:= TRUE;
  oleParam:= coDoc;
  Word.Documents.OpenOld(oleParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,
                          EmptyParam, EmptyParam, EmptyParam,EmptyParam,
                          EmptyParam);

 Word.Dialogs.Item(wdDialogFilePrint).Execute;
 ShowMessage('Alles Klar');
 oleParam:= FALSE;
 Word.Quit(oleParam,EmptyParam,EmptyParam);
end;
Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat