Nicht sehr schön, nein. Aber was ginge wäre folgendes:
Delphi-Quellcode:
while nicht fertig do
begin
if act then
// deine sachen
act := false; //schleife unterbrechen
Delay(0); // aus der Codelib
end;
In einem anderen Button setzt du act auf True und schon läuft die Schleife wieder. Allerdings ist für sowas ein Thread ideal, den man einfach mit .Suspend schlagen legen und mit .Resume wieder wecken kann.