AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Schleife warten lassen bis fertig geladen wurde
Thema durchsuchen
Ansicht
Themen-Optionen

Schleife warten lassen bis fertig geladen wurde

Ein Thema von Blumi · begonnen am 29. Jun 2008 · letzter Beitrag vom 29. Jun 2008
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Blumi
Blumi

Registriert seit: 11. Jul 2005
Ort: Basel
96 Beiträge
 
Delphi 2005 Personal
 
#1

Schleife warten lassen bis fertig geladen wurde

  Alt 29. Jun 2008, 12:24
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
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Schleife warten lassen bis fertig geladen wurde

  Alt 29. Jun 2008, 12:27
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.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#3

Re: Schleife warten lassen bis fertig geladen wurde

  Alt 29. Jun 2008, 12:27
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.
  Mit Zitat antworten Zitat
Poelser

Registriert seit: 21. Apr 2008
Ort: Europa
145 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Schleife warten lassen bis fertig geladen wurde

  Alt 29. Jun 2008, 12:30
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
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Schleife warten lassen bis fertig geladen wurde

  Alt 29. Jun 2008, 12:31
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
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Blumi
Blumi

Registriert seit: 11. Jul 2005
Ort: Basel
96 Beiträge
 
Delphi 2005 Personal
 
#6

Re: Schleife warten lassen bis fertig geladen wurde

  Alt 29. Jun 2008, 12:43
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
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Schleife warten lassen bis fertig geladen wurde

  Alt 29. Jun 2008, 12:45
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.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Schleife warten lassen bis fertig geladen wurde

  Alt 29. Jun 2008, 12:59
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?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Blumi
Blumi

Registriert seit: 11. Jul 2005
Ort: Basel
96 Beiträge
 
Delphi 2005 Personal
 
#9

Re: Schleife warten lassen bis fertig geladen wurde

  Alt 29. Jun 2008, 12:59
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
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Schleife warten lassen bis fertig geladen wurde

  Alt 29. Jun 2008, 13:01
Man könnte auch innerhalb der Schleife mit Delay() o.ä. warten ( Wartezeit größer längste erwartete Ladezeit)
Markus Kinzler
  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 16:20 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