Hallo,
ich drucke über eine Schleife unter Verwendung des TWebBrowsers mehrere von meinem Programm erstellte
HTML-Reports hintereinander aus, wobei ich vor jedem neuen Dokument die entsprechenden Registry-Werte für den IE aktualisiere, damit auf dem Ausdruck der Titel des jeweiligen Dokuments erscheint.
Delphi-Quellcode:
for a := 0 to PageSelect.Items.Count - 1 do
begin
ProgressFrm.UpdateProgressBar (a + 1, MaxPages);
// Seite in die IE-Instanz laden (wartet auch bis ReadyState = READYSTATE_COMPLETE)
ViewPage (GetTextFromToken (FPageList[a], 0, '|'));
// Registry-Keys für IE aktualisieren
Prepare_IE_PageSetup (PageSelect.Items[a], '');
// Zwangspause
Application.ProcessMessages;
Sleep (500);
// Dokument drucken lassen
IEinstance.ExecWB (OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER);
end;
Das Problem was sich nun dabei stellt ist, dass er in praktisch jeder Druck-Session mindestens ein oder zwei Titel, trotz der Zwangspause, verhaut und so auf dem Ausdruck eines neuen Dokuments noch der Titel des zuvor gedruckten steht.
Gibt es eine Möglichkeit, zu warten, bis die Registry-Werte auch tatsächlich aktualisiert wurden? Sozusagen ein READYSTATE_COMPLETE für die Registry oder ähnliches?
Oder hat jemand sogar einen besseren Vorschlag, wie man das lösen könnte?
Grüße,
Mario