Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Schleife warten lassen bis fertig geladen wurde (https://www.delphipraxis.net/116432-schleife-warten-lassen-bis-fertig-geladen-wurde.html)

Blumi 29. Jun 2008 11:24


Schleife warten lassen bis fertig geladen wurde
 
Hi

Wie lasse ich eine Schleife warten?

Ich habe es bereits mit
[delphi]
repeat

until
[delphi]
versucht aber dann stürtzt das Programm gleich ab oder ladet nicht weiter.

Vor der repeat Schleife wird eine TWebBrowser Url aufgerufen, erst wenn die fertig geladen wurde, darf die Schleife weiterlaufen.

Wie mache ich das?

Lg
:-D :)

mkinzler 29. Jun 2008 11:27

Re: Schleife warten lassen bis fertig geladen wurde
 
Der Aufruf von WebBrowser.Navigate kehrt sofort zurück, und wartet nicht auf das erfolgreiche Laden der Seite. Dieses wird durch Aufruf des Callbacks von onDocumentComplete quitiert.

Die Muhkuh 29. Jun 2008 11:27

Re: Schleife warten lassen bis fertig geladen wurde
 
Hi,

der WebBrowser bietet ein Event "OnDocumentComplete" (oder sowas, weiß es gerade nicht genau) an, damit kannst Du überprüfen, ob das Dokument geladen wurde.

Poelser 29. Jun 2008 11:30

Re: Schleife warten lassen bis fertig geladen wurde
 
Dann nimmst du eine while-Schleife. Dies ist eine sogenannte abweisende Schleife, Repeat-Until ist eben nicht abweisend - sie wird immer mindestens einmal durchlaufen, weil die Prüfbedingung am Ende steht.

HTH, der Poelser

mkinzler 29. Jun 2008 11:31

Re: Schleife warten lassen bis fertig geladen wurde
 
Zitat:

Zitat von Poelser
Dann nimmst du eine while-Schleife. Dies ist eine sogenannte abweisende Schleife, Repeat-Until ist eben nicht abweisend - sie wird immer mindestens einmal durchlaufen, weil die Prüfbedingung am Ende steht.

HTH, der Poelser

Das löst sein Problem aber nicht

Blumi 29. Jun 2008 11:43

Re: Schleife warten lassen bis fertig geladen wurde
 
Zitat:

Zitat von Poelser
Dann nimmst du eine while-Schleife. Dies ist eine sogenannte abweisende Schleife, Repeat-Until ist eben nicht abweisend - sie wird immer mindestens einmal durchlaufen, weil die Prüfbedingung am Ende steht.

HTH, der Poelser

Hi zusammen

danke fürs mitdenken..

Also das mit der while-Schleife habe ich soeben probiert aber er stockt wieder.
Delphi-Quellcode:
while geladen = 100 do
  begin

  end;
showmessage('Schleife fertig geladen.. weiterer code');

Zitat:

Hi,

der WebBrowser bietet ein Event "OnDocumentComplete" (oder sowas, weiß es gerade nicht genau) an, damit kannst Du überprüfen, ob das Dokument geladen wurde.
Das mit der OnDocumentComplete kenn ich schon, das bringt mir aber in dem Fall nichts. Da die Procedure weiter geht und die Schleife nur ein Teil davon ist.

..

ich habe jetzt zum testen noch eine Progressbar eingebaut, aber es ladet nur ein Feld dann fertig, also irgendwo stockt es?

Lg :cry:

mkinzler 29. Jun 2008 11:45

Re: Schleife warten lassen bis fertig geladen wurde
 
Wie gesagt geht es mit einer Schleife nicht so. Du könntest eine private Variable mit dem Index und der Anzahl der Items nalegen und dann im .onDocumentComplete wenn Anzahl noch nicht erreicht die nächste Url aufrufen.

Luckie 29. Jun 2008 11:59

Re: Schleife warten lassen bis fertig geladen wurde
 
Zitat:

Zitat von Blumi
Also das mit der while-Schleife habe ich soeben probiert aber er stockt wieder.

Warum ignoriest du die Hinweise auf das entsprechende Ereignis?

Blumi 29. Jun 2008 11:59

Re: Schleife warten lassen bis fertig geladen wurde
 
Zitat:

Zitat von mkinzler
Wie gesagt geht es mit einer Schleife nicht so. Du könntest eine private Variable mit dem Index und der Anzahl der Items nalegen und dann im .onDocumentComplete wenn Anzahl noch nicht erreicht die nächste Url aufrufen.

Ok schade..
Ich habe jetzt aber noch was versucht.
Vor der while Schleife einfach:
Zitat:

showmessage('wait');
Wenn ich ok klicke, nachdem das Dokument vollständig geladen wurde, dann meckert er nicht sondern verläuft wie gewünscht weiter.
Ist es jetzt evetuell möglich das showmessage(); automatisch zu schliessen, wenn WebBrowser1DocumentComplete?

Lg

mkinzler 29. Jun 2008 12:01

Re: Schleife warten lassen bis fertig geladen wurde
 
Man könnte auch innerhalb der Schleife mit Delay() o.ä. warten ( Wartezeit größer längste erwartete Ladezeit)


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:13 Uhr.
Seite 1 von 2  1 2      

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