Einzelnen Beitrag anzeigen

Nuclear-Ping
(Gast)

n/a Beiträge
 
#1

Warten, bis Registrywert fertig geschrieben wurde?

  Alt 1. Okt 2004, 09:04
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
  Mit Zitat antworten Zitat