![]() |
Re: Twebbrowser Problem...
Warum eigentlich
Delphi-Quellcode:
???
until Webbrowser1.ReadyState [b]>=[/b] READY_STATE_COMPLETE
Machs doch einfach so: überprüfe im Ereignis OnDocumentComplete, ob die GESAMTE Webseite fertiggeladen wurde (wie das geht siehe diesen Thread: ![]() Und dann führst du die Prozedure ClickLink darin aus. Gruß alias5000 |
Re: Twebbrowser Problem...
ich hab aber den readystate auch shcon ganz weggelassen (auch shconmal gesagt) und da hätte, wenn die ClickLink ausgeführt worden wäre, nen fehler kommen müssen (die seite wär ja dann noch nicht fertiggeladen und der browser hätte schon versucht den link zu klicken, der noch gar nicht da ist...
aber dem war net so... //edit: also ich glaub ich hab den fehler, aber ka, ob ich ihn reparieren kann: die clicklink wird anscheinend doch aufgerufen, ich hab mich da weng verplant... (gibt natürlich keinen fehler, er findet bloß nixx zum draufklicken)
Delphi-Quellcode:
das funktioniert anscheinend nur mit navigate, aber nicht mit nem button-submit...
repeat
Application.ProcessMessages; until WebBrowser1.ReadyState >= READYSTATE_COMPLETE; das heißt er führt die clicklink immer direkt nahc dem submit aus und waretet nicht, bsi die neue seite fertiggladen ist. das mit dem ondocumentcomplete hat auch nicht geklappt... |
Re: Twebbrowser Problem...
weiß denn keiner von euch, was ich da machen soll?
|
Re: Twebbrowser Problem...
Hallo heribert,
das sollte so funktionieren:
Delphi-Quellcode:
Grüße vom marabu
interface
... type TWebForm = class(TForm) ... private DocumentLoaded: boolean; ... end; implementation ... procedure TWebForm.WebBrowserBeforeNavigate2(Sender: TObject; const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData, Headers: OleVariant; var Cancel: WordBool); begin if pDisp = WebBrowser.DefaultInterface then DocumentLoaded := false; end; procedure TDemoForm.WebBrowserDocumentComplete(Sender: TObject; const pDisp: IDispatch; var URL: OleVariant); begin if pDisp = WebBrowser.DefaultInterface then DocumentLoaded := true; end; procedure TForm1.Button1Click(Sender: TObject); begin WebBrowser.Navigate('http://mail.yahoo.de'); repeat Application.ProcessMessages; until DocumentLoaded; WebBrowser.OleObject.document.forms.item(0).elements.item('login').value:='******'; WebBrowser.OleObject.document.forms.item(0).elements.item('passwd').value:='*****'; WebBrowser.OleObject.document.forms.item(0).submit; repeat Application.ProcessMessages; until DocumentLoaded; ClickLink(WebBrowser, 'Posteingang'); end; |
Re: Twebbrowser Problem...
wow, ich weiß net wie ich dir danken soll :D klappt perfekt
|
Re: Twebbrowser Problem...
OH schade, hatte genau das selbe problem!! nur hab ich noch so ein java-werbebanner bei mir mit drauf wo dann ebenfalls der status gesetzt wird :( dann kommt er wieder durcheinander und nix geht...
Aber wenn ich die if-Abfrage auf das pDisp = WebBrowser1.DefaultInterface weglasse funktionierts!!! JUHUU :) wofür ist diese abfrage??? |
Re: Twebbrowser Problem...
|
Re: Twebbrowser Problem...
aber ist schon komisch... vor und nach meinem Formular-submit läuft er nicht in diese abfrage rein:
Delphi-Quellcode:
irgendwas stimmt da nicht...
if pDisp = WebBrowser.DefaultInterface then
|
Re: Twebbrowser Problem...
Wenn du den URL rausrückst, kann ich vielleicht mehr dazu schreiben.
marabu |
Re: Twebbrowser Problem...
An diese seite wirst du wohl nicht ran kommen. aber könnte dir den seitenquelltext zukommen lassen. Ich vermute stark dass es an einem Java-Script liegt das einen Werbebanner lädt. bin mir aber nicht sicher.
Ohne diese If-Abfrage auf das pDisp = WebBrowser.DefaultInterface funktioniert es zumindest zu 80% der Fälle! Kann man das pDisp vielleicht in einer Globalen Variable sichern wenn man den Schalter auf "False" setzt? Dann könnte man ja später wieder abfragen dass nur das selbe pDisp wieder "DocumentLoaded := true;" setzen darf. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:17 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz