AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Webbrowser warten bis fertig geladen, dann code weiter!
Thema durchsuchen
Ansicht
Themen-Optionen

Webbrowser warten bis fertig geladen, dann code weiter!

Ein Thema von EsLaVaToR · begonnen am 16. Jan 2008 · letzter Beitrag vom 17. Jan 2008
Antwort Antwort
Seite 1 von 2  1 2      
EsLaVaToR

Registriert seit: 11. Dez 2004
Ort: Soest
10 Beiträge
 
#1

Webbrowser warten bis fertig geladen, dann code weiter!

  Alt 16. Jan 2008, 21:35
Hallo zusammen

Bin zur zeit ein wenig am verzweifel. Ich schreib gerade en Prog und komme einfach nicht weiter.

Mein Problem ist es, wenn ich in einer Prozedur eine URl im Webbrowser aufrufe und danach sofort eine Abfrage auf eine Textbox mache kommt immer ein Fehler, weil der Browser die URL noch nicht fertiggeladen hat.


code:
WebBrowser2.Navigate('http://www.temporaryinbox.com/');
New_INBOXEMAIL := WebBrowser1.OleObject.document.forms.item(0).eleme nts.item('inbox').value;


Wie ihr seht, will ich eine neue Email von Temporaryinbox haben.

Wie bekomme ich eine Pause zwischen den beiden Codezeilen, sodass der Browaser vollständig geladen ist und dann erst die Emailadresse geholt wird?

Besten Dank schonmal für all eure Mühen!
MfG

EsLaVaToR
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Webbrowser warten bis fertig geladen, dann code weiter!

  Alt 16. Jan 2008, 21:37
der webbrowser hat ein event das nennt sich "ondocumentcomplete"!! schau dir das mal an, das sollte dir weiter helfen^^
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.622 Beiträge
 
Delphi 12 Athens
 
#3

Re: Webbrowser warten bis fertig geladen, dann code weiter!

  Alt 16. Jan 2008, 21:38
Ich benutze den WebBrowser zwar nicht, aber AFAIK hat er doch ein Ereignis OnDocumentComplete oder so ähnlich

P.S.: Gruß nach Soest vom einem Ex-Neheimer
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
EsLaVaToR

Registriert seit: 11. Dez 2004
Ort: Soest
10 Beiträge
 
#4

Re: Webbrowser warten bis fertig geladen, dann code weiter!

  Alt 16. Jan 2008, 21:41
Das habe ich mir schon angeschaut!
Aber wie soll mir das zwischen den beiden Codezeilen helfen?

Muss ja irgendwie eine Pause, von wegen "DocumentComplete", dann erst die Email auslesen rein.

Auch schöne Grüße aus Soest zurück!
MfG

EsLaVaToR
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.622 Beiträge
 
Delphi 12 Athens
 
#5

Re: Webbrowser warten bis fertig geladen, dann code weiter!

  Alt 16. Jan 2008, 21:42
Im ButtonClick (oder wo es auch steht) das Navigate rein, der Rest ins OnDocumentComplete.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
EsLaVaToR

Registriert seit: 11. Dez 2004
Ort: Soest
10 Beiträge
 
#6

Re: Webbrowser warten bis fertig geladen, dann code weiter!

  Alt 16. Jan 2008, 21:44
Da gebe ich Dir recht.

Wohl noch vergessen zu schreiben, das nachdem er die Emailadresse geholt hat, eine neue Seite aufgerufen wird und dann da Daten eingiebt und so weiter.
MfG

EsLaVaToR
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.622 Beiträge
 
Delphi 12 Athens
 
#7

Re: Webbrowser warten bis fertig geladen, dann code weiter!

  Alt 16. Jan 2008, 21:48
Meinst Du damit, dass er die DocumentComplete-Methode nur einmalig bei der "EMail-Holen-URI" ausführen soll? Das würde ich ganz banal über ein privates Flag lösen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
EsLaVaToR

Registriert seit: 11. Dez 2004
Ort: Soest
10 Beiträge
 
#8

Re: Webbrowser warten bis fertig geladen, dann code weiter!

  Alt 17. Jan 2008, 18:02
Glaube ich verdeutliche nochmal mein Prob!


Als erstes läd er dir URL im browser
WebBrowser2.Navigate('http://www.temporaryinbox.com/');

dann liest er die Textbox im browser aus (hier die neue Emailadresse)
New_INBOXEMAIL := WebBrowser1.OleObject.document.forms.item(0).eleme nts.item('inbox').value;

dann soll er eine neue Seite ansteuern
WebBrowser2.Navigate('http://neueseite.de');

ein paar Eingabe in dieser Seite machen:

WebBrowser1.OleObject.document.forms.item(0).eleme nts.item('Name').value := Name
WebBrowser1.OleObject.document.forms.item(0).eleme nts.item('Kennwort').value := Kennwort
WebBrowser1.OleObject.document.forms.item(0).eleme nts.item('Email').value := New_INBOXEMAIL

das Formular abschicken.

So, mein Problem ist es, wenn ich den Webbrowser mit der URL fütter, ist er noch garnicht fertiggeladen, wenn er schon die nächste Zeile Code ausführen will, indem er ein Eingabefeld ausliest. Er soll theoretisch erst die neue Zeile Code ausführen, wenn die DocumentComplete-Methode durchlaufen wurde (Die Seite fertig geladen ist).

und das dann so weiter, weiter weiter!!!

was nun ein privates Flöag ist, weiß ich leider nicht!

Hofffe jetzt kam es besser rüber.
MfG

EsLaVaToR
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.622 Beiträge
 
Delphi 12 Athens
 
#9

Re: Webbrowser warten bis fertig geladen, dann code weiter!

  Alt 17. Jan 2008, 18:12
Ich hatte das schon so verstanden. Versuch es mal so:
-Du definierst Dir eine Boolean-Variable im private-Abschnitt Deines Formulars (nennen wir sie mal "FirstRun").
-Diese Variable setzt Du auf true, bevor Du die erste Seite im WebBrowser aufrufst.
Delphi-Quellcode:
FirstRun := true;
 WebBrowser2.Navigate('http://www.temporaryinbox.com/');
Im OnDocumentComplete machst Du Folgendes:
Delphi-Quellcode:
if FirstRun then //erste Seite aufgerufen
  begin
    New_INBOXEMAIL := WebBrowser1.OleObject.document.forms.item(0).elements.item('inbox').value;
    WebBrowser2.Navigate('http://neueseite.de');
  end
else //zweite Seite aufgerufen
  begin
    WebBrowser1.OleObject.document.forms.item(0).elements.item('Name').value := Name;
    WebBrowser1.OleObject.document.forms.item(0).elements.item('Kennwort').value := Kennwort;
    WebBrowser1.OleObject.document.forms.item(0).elements.item('Email').value := New_INBOXEMAIL;
  end;
FirstRun := false; //wenn wir hier ankommen, war die erste Seite auf jeden Fall schon einmal geladen
Getippt und nicht getestet.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
EsLaVaToR

Registriert seit: 11. Dez 2004
Ort: Soest
10 Beiträge
 
#10

Re: Webbrowser warten bis fertig geladen, dann code weiter!

  Alt 17. Jan 2008, 18:36
Ich denke so werde ich es mal machen!

werde aber auf einen integer zurückgreifen, da noch mehr aufrufe von unterschiedlichen Seiten erfolgen müssen.

zur Zeit habe ich 4 Timer benutzt, die sich nacheinander freischalten in 5 Sekundentakt. Nicht sauber aber geht.

Trotzdem ist deine ein wenig sauberer
MfG

EsLaVaToR
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 06:45 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