Hallo,
ich habe einen Quelltext einer Seite und möchte, um einen Screenshot zu machen, diesen in einen TWebBrowser laden. Das geschieht so:
Delphi-Quellcode:
procedure WaitForBrowser(WB: TWebbrowser);
begin
while (WB.ReadyState <> READYSTATE_COMPLETE)
and not (Application.Terminated) do
begin
Application.ProcessMessages;
Sleep(0);
end;
end;
// WB: TWebBrowser;
if WB.Document = nil then
WB.Navigate('about:blank');
OleVariant(WB.Document as IHTMLDocument2).Clear;
OleVariant(WB.Document as IHTMLDocument2).Write(Utf8ToAnsi(Quelltext));
OleVariant(WB.Document as IHTMLDocument2).Close;
if WB.ReadyState = READYSTATE_COMPLETE then // Testweise eingebaut
showmessage('Noch nicht richtig geladen!');//
WaitForBrowser(WB);
DoScreenshot();
Das klappt bei der ersten Seite auch wunderbar: Bilder etc werden nachgeladen und danach der Screenshot gemacht. Aber bei allen nachfolgenden Seiten, die ich auf diese Art und Weise lade, hat WB.ReadyState gleich nach dem Quelltext laden den Status READYSTATE_COMPLETE, das heißt die zu Testzwecken eingebaute Meldung kommt und auf dem Screenshot sieht man die Seite ohne Bilder
Ich vermute, dass WB.ReadyState nicht zurückgesetzt wird, wenn man einen Quelltext wie oben lädt. Stimmt das, und wie kann ich das umgehen?
mfg.Dominik
(WB.OnDocumentComplete wird nicht gefeuert und über eine lokale Datei und dann WB.Navigate(Datei) will ich nicht gehen)