Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   TWebBrowser "AfterPageLoaded"? (https://www.delphipraxis.net/197847-twebbrowser-afterpageloaded.html)

zobien123 11. Sep 2018 08:39

TWebBrowser "AfterPageLoaded"?
 
Guten Morgen :wink:,

ich möchte etwas ausführen, nach dem die TwebBrowser Komponente die Seite komplett geladen und dargestellt hat. Leider hat diese kein "AfterPageLoaded" Ereigniss oder etwas ähnliches in die Richtung. Gibt es eine andere Möglichkeit den Zeitpunkt herauszufinden, wann die Komponente komplett fertig ist oder gibt es vllt eine komplett andere (bessere?) Browser Komponente?

LG

Delphi.Narium 11. Sep 2018 09:37

AW: TWebBrowser "AfterPageLoaded"?
 
Gibt es da nicht mehrere Ereignisse die mit Complete enden?

Wie das wären:
Delphi-Quellcode:
OnDocumentComplete
OnDownloadComplete
OnNavigateComplete2
Schlimmstenfalls kann man noch in OnStatusTextChange abfragen, ob da der Text 'Fertig' (oder so ähnlich) erscheint ;-)

Achso: Man kann auch im Quelltext abfragen ob's fertig ist (ungetestet, nur aus 'nem Programmfragment rauskopiert):
Delphi-Quellcode:
begin
  Statusbar1.SimpleText := Format('lade %s ...',[StringMitDerUrl]);
  Refresh;
  WebBrowser1.HandleNeeded;
  WebBrowser1.Navigate(StringMitDerUrl);
  while WebBrowser1.ReadyState <> READYSTATE_COMPLETE do begin
    Sleep(500);
    Refresh;
  end;
  IrgendwasMachenWennFertig;
end;

API 11. Sep 2018 09:43

AW: TWebBrowser "AfterPageLoaded"?
 
Noch not Application.Terminated, sonst lässt sich die Anwendung während des Ladens nicht beenden.

Code:
while (WebBrowser1.ReadyState <> READYSTATE_COMPLETE) and (not Application.Terminated) do
begin
//...
end;

Wobei der Code bei Frames nicht funktionieren wird.

Hier (ganz unten), gibt es eine TBrowserLoadDelay Klasse (ungetestet)
https://groups.google.com/forum/#!to...ng/-31Ijyged0s

zobien123 11. Sep 2018 09:57

AW: TWebBrowser "AfterPageLoaded"?
 
Danke für die Antworten, aber leider funktioniert es trotzdem nicht. Wenn ich das, was ich danach machen möchte, über einen ButtonClick dann später selbst auslöse - funktioniert es.

Ich sollte vllt noch erwähnen, dass der TWebBrowser auf einem Frame ist, welchen ich dann auf einem anderen Formular einfüge. Könnte es vllt daran liegen, dass es nicht funktioniert?


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:06 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz