![]() |
WebBrowser Ladevorgang
Guten Tag,
ich quäle mich jetzt schon etwas länger mit dem allseits bekannten Problem, dass ich ein Formular über den TWebBrowser steuern möchte. Der Ablauf ist etwa so: Seite laden Formular ausfüllen Seite abschicken Ergebnis auswerten Weiter ausfüllen Wieder abschicken usw. Dabei ist es mein Ziel, dass die Aufgaben erst fortgesetzt werden, wenn die Ergebnisseite der vorherigen Abfrage geladen ist. Natürlich habe ich mich schon im Forum umgesehen und ![]() ![]() Hier meine Versuche: Versuch1:
Delphi-Quellcode:
WebBrowser1.OleObject.Document.forms.item(3).elements.item(20).click;
WaitforBrowser(WebBrowser1); WebBrowser1.OleObject.Document.ParentWindow.ScrollTo(0, 500);
Delphi-Quellcode:
Bei meinem Anlauf mit WaitforBrowser ist der Browser bevor das Ergebnis geladen wurde bereits auf die Position gescrollt, auf der das
procedure TForm1.WaitForBrowser(WB: TWebbrowser);
begin while (WB.ReadyState <> READYSTATE_COMPLETE) // Wärend der STatus ungleich 'fertig' and not (Application.Terminated) do // und das Programm nicht abgebrochen wurde begin Application.ProcessMessages; Sleep(0); // Hier habe ich sowohl große, als auch kleine Zahlen eingesetzt end; end; Ergebnis stehen wird und verliert diese Position wieder, nach dem das Ergebnis geladen wurde. Versuch2:
Delphi-Quellcode:
Hierauf springt der Browser niemals an, egal wie viele Ergebnisse geladen werden.
procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant); begin ShowMessage('Fertig geladen'); end; end. Könnt ihr mir weiterhelfen? Ich hoffe die Lösung ist nicht all zu trivial, mein Delphi-Fachwissen hält sich leider noch in Grenzen. :oops: Grüße Tana |
Re: WebBrowser Ladevorgang
Über Ideen oder Anhaltspunkte, oder andere Arten von Rückmeldungen würde ich mich auch schon sehr freuen. :-D
Mit freundlichen Grüßen Tana |
Re: WebBrowser Ladevorgang
Herzlich willkommen in der Delphi-PRAXiS, Tana.
Da die beiden von dir gefundenen Konzepte über jeden Zweifel erhaben sind, bleibt mir nur die Schlussfolgerung, dass du einen Fehler bei deren Anwendung machst. Kannst du bitte ein Minimalprojekt aufsetzen, welches deine Schwierigkeiten verdeutlicht? Freundliche Grüße |
Re: WebBrowser Ladevorgang
So, ich hab's endlich gelöst!
Ich hatte das hier:
Delphi-Quellcode:
per Hand angelegt,anstatt es vom Clienten anlegen zu lassen. Tja, im nachhinein ist man immer schlauer. Ich sollte mich mehr mit dem Rumgeklicke anfreunden. :roll:
procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant); begin ShowMessage('Fertig geladen'); end; end. Auf jeden Fall nochmal danke an alle, die sich die Mühe gemacht haben sich hier reinzudenken. Warum das WaitforBrowser nicht funktioniert hat, hab' ich allerdings nicht mehr rausgefunden. Aber das brauch ich ja jetzt auch nicht mehr. Liebe Grüße Tana :hi: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:45 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