Einzelnen Beitrag anzeigen

Basic-Master

Registriert seit: 9. Mär 2003
Ort: Brilon
395 Beiträge
 
Delphi 2007 Enterprise
 
#1

Warten bis der WebBrowser fertig geladen hat?

  Alt 17. Jan 2005, 20:38
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 Delphi-Referenz durchsuchenOnDocumentComplete funktioniert. Allerdings wird dies bei jedem einzelnen Frame erneut aufgerufen.
Von MaBuSE kommt noch der Hinweis auf das Ereignis Delphi-Referenz durchsuchenOnDownloadComplete, 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]
Christian
  Mit Zitat antworten Zitat