Einzelnen Beitrag anzeigen

Anthauri

Registriert seit: 1. Feb 2004
61 Beiträge
 
Delphi 6 Personal
 
#1

While Schleife beenden, aber von aussen ?!

  Alt 30. Jul 2004, 15:32
Hallo Leute,
ich habe eine kleine Frage:

Angenommen ich habe eine Schleife in der irgendetwas passiert bis die Bedingung zum Beenden erfüllt ist (z.B. wird ein Zähler durchlaufen).

Wie kann ich das Durchlaufen der Schleife währendessen abbrechen? (allerdings von Außerhalb der Schleife)

Ich habe versucht über einen Schalter (onClick-Ereignis) die Bedingung zu erfüllen (Zähler hoch gesetzt), doch das Anklicken des Schalters wird erst nach der Beendigung der Schleife durchlaufen obwohl der Schalter zuvor angeklickt wurde.

Dann habe ich zum Test einen Timer zusammen mit der Schleife gestartet (Intervall 10), der den Zähler so hoch setzt,dass die Schleife verlassen würde, doch auch der Schritt aus dem Timer wird erst nach dem Ende der Schleife durchlaufen:

Beispiel:

Variablen: i , t :integer;

Programmteil der Schleife

i := 0;
t := 500;
While i < t do
begin;
i := i + 1;
sleep(100);
end;


programmschritt des timers oder des "on click" des Buttons:

i:=t;


Im Praxisfall wählt der Anwender Dateien zum kopieren aus, die in einer Listbox stehen. Diese wird dann durchlaufen (Schleife) bis das Ende der Liste erreicht ist. Ich möchte nun vorsehen, dass der Anwender den Vorgang zwischendurch abbrechen kann.

Nur wie????

Kann die Schleife ggf. so gestartet werden, dass mein Prog währendessen "weiterläuft"?
  Mit Zitat antworten Zitat