Zitat von
Christian Seehase:
Moin Cookie Eater,
Du arbeitest das Memo in einer For Schleife ab.
Bevor eine Seite geladen wird, setzt Du ein Flag.
Jetzt wird das Laden der Seite gestartet.
Anschliessend kommt eine While Schleife mit Application.ProcessMessages, die erst verlassen wird, wenn das Flag wieder gelöscht ist, und dies passiert im OnDocumentComplete o.ä.
Jetzt kommt der Rest der For Schleife.
Ggf. solltest Du vielleicht noch einen Abbruch Button vorsehen, der das Flag auch zurücksetzen kann.
Das Flag muss nicht unbedingt ein Boolean sein. Dann kannst Du ggf. unterscheiden, ob denn nun ein Abbruch für das akutelle Dokument angefordert wurde, oder für dieses und alle folgenden Dokumente.
gute idee...habs ganz ähnlich gemacht! habe eine globale variable mit dem namen "loaddone" als int deffiniert die ich zuerst auf 0 setze und im event von OnDocumentComplete auf 1. so sollte document done 1 sein, wenn eine seite geladen wurde..habe dann eine while in einer for schleife gemacht:
Code:
for i := 0 to 2 do begin
webbrowser1.Navigate(memo1.Lines[i]);
while loaddone = 0 do begin
//tue nichts und warte bis seite geladen
end;
loaddone := 0;
end;
problem ist, dass sich das programm aufhängt...habe das dumpfe gefühl, dass der in der while schleife hängen bleibt...aber das kann eigentlich nicht sein, denn irgendwann ist ja loaddone = 1 und damit müsste er diese schleife verlassen...
mache ich es aber so:
Code:
for i := 0 to 2 do begin
webbrowser1.Navigate(memo1.Lines[i]);
while loaddone = 0 do begin
showmessage ('hallo');
end;
loaddone := 0;
end;
geht es
...ist der selbe code nur das ich mir solange die seite nicht geladen wurde eine meldung 'hallo' ausgeben lasse...warum hängt der sich bei ersterem beispiel auf??
das mit der messagebox iss mist. habe kein bock mit jedes mal daneben zu setzen und die message mit ok zu bestätigen...
sieht hier jemand durch???
Grüße