AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Warten bis URL komplett geladen ist
Thema durchsuchen
Ansicht
Themen-Optionen

Warten bis URL komplett geladen ist

Ein Thema von eddy · begonnen am 26. Feb 2004 · letzter Beitrag vom 27. Feb 2004
Antwort Antwort
Benutzerbild von eddy
eddy

Registriert seit: 3. Jan 2003
Ort: Sachsen
573 Beiträge
 
Delphi 5 Professional
 
#1

Warten bis URL komplett geladen ist

  Alt 26. Feb 2004, 17:51
Hallo Leute,

mit welchen Anweisungen kann man feststellen, ob eine in TWebBrowser aufgerufene Seite komplett geladen ist?

So in der Art:

Code:
  ....
  WebBrowser.Navigate('http://www.google.de');
 
  repeat
  untile <WebBrowser ist komplett geladen>;

  // erst dann führe nachfolgende Befehle aus
  ....
mfg
eddy
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#2

Re: Warten bis URL komplett geladen ist

  Alt 26. Feb 2004, 18:18
Hallo,
dafür hat TWebBrowser das Event OnNavigateComplete2
I come from outer space to save the human race
  Mit Zitat antworten Zitat
Benutzerbild von eddy
eddy

Registriert seit: 3. Jan 2003
Ort: Sachsen
573 Beiträge
 
Delphi 5 Professional
 
#3

Re: Warten bis URL komplett geladen ist

  Alt 26. Feb 2004, 19:34
Hallo Jens,

danke für den Knochen, manchmal fehlt eben nur ein solcher:

Code:
// wb : TWebBrowser;
procedure TFTermin.wbNavigateComplete2(Sender: TObject;const pDisp: IDispatch; var URL: OleVariant);
const
  url_google = 'http://www.google.de';
begin
  cbWeb.Text := lower(wb.OleObject.Document.Url);

  if (cbWeb.Text = url_google) or (cbWeb.Text = url_google + '/') then begin
    ShowMessage(cbWeb.Text + ' wurde geladen');
  end;
end;
mfg
eddy
  Mit Zitat antworten Zitat
Benutzerbild von eddy
eddy

Registriert seit: 3. Jan 2003
Ort: Sachsen
573 Beiträge
 
Delphi 5 Professional
 
#4

Re: Warten bis URL komplett geladen ist

  Alt 27. Feb 2004, 09:10
Hallo Leute,

NavigateComplete2 hat sich doch nicht unbedingt als die richtige Variante ergeben, es gab Fehlermeldungen. Daher habe ich es noch mit DocumentComplete probiert, momentan funktioniert die Eingabe damit auch auf anderen Webseiten. Google habe ich hier nur als Beispiel benutzt, weil das wohl jeder nachvollziehen kann.

Code:
const
  url_google = 'http://www.google.de';
var
  Webform : variant;
  webinput : string;

procedure TFTermin.wbDocumentComplete(Sender: TObject; const pDisp: IDispatch; var URL: OleVariant);
begin
  cbWeb.Text := lower(cbWeb.Text);   //wb.OleObject.Document.Url);
  if (webinput <> '') and ((cbWeb.Text = url_google) or (cbWeb.Text = url_google + '/')) then begin
    wb.OleObject.Document.Forms.item('f').Elements.item('q').value := webinput;
    WebForm := wb.OleObject.Document.Forms.item('f');
    WebForm.submit;
    webinput := '';
  end;
end;

//Menüpunkt zum Aufruf der Google-Seite
procedure TFTermin.Google1Click(Sender: TObject);
begin
  webinput := 'Delphipraxis';
  cbWeb.Text := url_google;
  wb.Navigate(cbWeb.Text);
end;
Das Hauptproblem besteht darin zu organisieren, daß nach jeder gewählten Seite erst der komplette Aufbau abgelaufen ist, bevor die nächste Eingabe (Eingabefeld oder Button-Click) erfolgt.

Allgemein (lt. sakura):
Code:
WebBrowser1.OleObject.Document.Frames.item('Name des Frames').
                      Document.Forms.item('Name des Formulars').
                      Elements.item('Name des Feldes').value := 'Irgendetwas'
Außerdem muß man aus dem HTML-Quelltext der Fremdseite, die man vom Programm steuern will, die richtigen Bezeichner für Name des Frames/Formulars/Feldes zu ermitteln und das eigene Programm funktioniert nur solange der Pageinhaber diese Bezeichner beibehält.

Die globale Variable webinput habe ich eingeführt, damit ich nach einem Click auf den Zurück-Button nicht meine vom Programm generierte Suchabfrage erneut ausführe, sondern auf der Startseite stehen bleibe.

Natürlich ist das nicht alles meine Erfindung, sondern aus den beiden obigen Links zusammengebastelt.

mfg
eddy
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:53 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