Es gibt mehrere Möglichkeiten die Schleife zu verlassen.
Hier nur ein paar Möglichkeiten...
Abfrage in jeder Schleife:
Delphi-Quellcode:
begin
for LoopX := 1 to 1000 do
begin
for LoopY := 1 to 1000 do
begin
for LoopZ := 1 to 1000 do
begin
Application.ProcessMessages();
if Stop then
Break;
//...
end;
if Stop then
Break;
//...
end;
if Stop then
Break;
//...
end;
//...
end;
Label um alle Schleifen direkt zu verlassen (manche mögen kein 'goto'):
Delphi-Quellcode:
label
LoopEnd;
begin
for LoopX := 1 to 1000 do
begin
for LoopY := 1 to 1000 do
begin
for LoopZ := 1 to 1000 do
begin
Application.ProcessMessages();
if Stop then
goto LoopEnd;
//...
end;
//...
end;
//...
end;
LoopEnd:
//...
end;
Mit Exit die Funktion verlassen (Code nach 'finally' wird nicht ausgeführt):
Delphi-Quellcode:
begin
try
for LoopX := 1 to 1000 do
begin
for LoopY := 1 to 1000 do
begin
for LoopZ := 1 to 1000 do
begin
Application.ProcessMessages();
if Stop then
Exit;
//...
end;
//...
end;
//...
end;
finally
//...
end;
end;
...hat alles seine Vor- und Nachteile.