Hallo liebe Delphianer,
das ist mein erster Post, aber ich bin schon jahrelanger Besucher von Delphi Praxis. Ich hoffe, ich gehe euch nicht zu sehr auf den Keks. Jetzt kommt die Problemstellung. Wenn ich von meinem Programm aus Word starte bleibt Word im Hintergrund. Das ist unschön, weil das der Monatsbericht ist und man erst mit Alt - Tab zu Word wechseln muss.
Ich starte von der Mainform ein Formular mit folgenden Code:
Delphi-Quellcode:
IrgendeinButtonClick((Sender: TObject);
//hier der Aufruf von Form6 aus Form1...
// den Code habe ich aus eurer Rubrik „Tipps und Tricks“ und dem SwizDelphiCenter.
Form6 := TForm6.Create(nil);
try
Form6.ShowModal;
finally
FreeAndNil(Form6);
end;
In Form6 starte ich Word über
COM. In einem Wordtemplate habe ich die Textmarke "titel" eingfügt.
Delphi-Quellcode:
// Wenn das Ereignis ausgelöst wird die hier zugewiesene Information im WordDokument eingetragen. Das ist der Monatsbericht.
// hier der Code...
meinebookmark := 'titel';
if Doc.Bookmarks.Exists(meinebookmark) then
begin
R := Doc.Bookmarks.Item(meinebookmark).Range;
// Add text at our bookmark
// Text bei Textmarke einfügen
r.select;
try
objword.selection.typetext(adodataset1.FieldByName('bezeichnung').AsString);
except
end;
end;
So jetzt kommt es, die OleVariant ist auf folgende Werte eingestellt:
Delphi-Quellcode:
// ob die Reihenfolge so richtig ist? funktionieren tuts ja...
objword.Activate;
objword.WindowState:=wsNormal;
objword.Visible:=true;
Word starttet korrekt, füllt die Textmarken aus bleibt aber im Hintergrund, so ein Mist… seufz
Da wird der Monatsbericht nach Word ausgedruckt und den sollte man sofort sehen und nicht erst mit der „Alt-Tab-Kombination“ zu Word wechseln.
Jetzt probiere ich das aus...
Delphi-Quellcode:
// einzeln und in Kombination
objword.Activate;
objword.WindowState:=wsNormal;
objword.Visible:=true;
//application.hide;
application.ModalFinished;
application.minimize
//bringt aber auch nicht das gewünschte Ergebnis.
Das Problem ist, dass ich Word von der 2. Form aus starte und mir alle Aktionen mit "application" Form1 anzeigen, wo aber alles auf enabled:=false steht, weil Form6 showmodal ist.
Bin über jeden Tipp dankbar.
Liebe Grüße aus Berlin
MichiZi