So kann man ohne 100% CPU-Auslastung auf das fertigladen eines WebBrowsers warten:
Delphi-Quellcode:
procedure Wait(eWebBrowser: TWebBrowser);
begin
repeat
Sleep(50); // 50ms warten
Application.ProcessMessages; // Andere Events verarbeiten
until (eWebBrowser.ReadyState = READYSTATE_COMPLETE) or (Application.Terminated);
end;
Von
SirThornberry kommt der Hinweis, dass dies auch über das Ereignis
OnDocumentComplete funktioniert. Allerdings wird dies bei jedem einzelnen Frame erneut aufgerufen.
Von
MaBuSE kommt noch der Hinweis auf das Ereignis
OnDownloadComplete, was im Gegensatz zu
OnDocumentComplete nur einmal aufgerufen wird.
Und von
toms kommt noch dieser Vorschlag:
Delphi-Quellcode:
procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;
const pDisp: IDispatch;
var URL: OleVariant);
var
CurWebrowser: IWebBrowser;
TopWebBrowser: IWebBrowser;
Document: OleVariant;
WindowName:
string;
begin
CurWebrowser := pDisp
as IWebBrowser;
TopWebBrowser := (Sender
as TWebBrowser).DefaultInterface;
if CurWebrowser = TopWebBrowser
then
ShowMessage('
Komplettes Dokument geladen')
else
begin
Document := CurWebrowser.Document;
WindowName := Document.ParentWindow.
Name;
ShowMessage(Format('
Frame "%s" geladen', [WindowName]));
end;
end;
[edit=Chakotay1308]Code für die Code-Library vorbereitet. Mfg, Chakotay1308[/edit]
[edit=flomei]Wir "räumen auf", daher Titel geändert... Mfg, flomei[/edit]
[edit=fkerber]Neu abgespeichert wg. Syntax-Highlighting Mfg, fkerber[/edit]