Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi WebBrowser Ladevorgang (https://www.delphipraxis.net/116879-webbrowser-ladevorgang.html)

TheTana 8. Jul 2008 08:54


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 im Forum suchenOnDocumentComplete und Hier im Forum suchenWaitforBrowser gefunden. Ich habe versucht beides zu verwenden, bin jedoch gescheitert und kann mir nicht erklären warum.

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:
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;
Bei meinem Anlauf mit WaitforBrowser ist der Browser bevor das Ergebnis geladen wurde bereits auf die Position gescrollt, auf der das

Ergebnis stehen wird und verliert diese Position wieder, nach dem das Ergebnis geladen wurde.


Versuch2:

Delphi-Quellcode:
procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;
  const pDisp: IDispatch; var URL: OleVariant);
begin
    ShowMessage('Fertig geladen');
end;

end.
Hierauf springt der Browser niemals an, egal wie viele Ergebnisse geladen werden.

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

TheTana 9. Jul 2008 12:30

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

marabu 9. Jul 2008 12:53

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

TheTana 11. Jul 2008 07:15

Re: WebBrowser Ladevorgang
 
So, ich hab's endlich gelöst!

Ich hatte das hier:
Delphi-Quellcode:
procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;
  const pDisp: IDispatch; var URL: OleVariant);
begin
    ShowMessage('Fertig geladen');
end;

end.
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:

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