Delphi-Quellcode:
Var Beenden: Boolean;
Procedure ...;
Var Start: TDateTime;
{Z: Byte;}
Begin
Beenden := False;
Start := now;
Repeat
...
Label1.Caption := TimeToStr(Now - StartZeit);
{Inc(Z);}
{If Z mod 32 = 0 Then} Application.ProcessMessages;
Until Beenden or (fertig);
Label1.Caption := 'fertig / abgebrochen';
End;
Procedure Form1.ButtonClick(Sender: TObject);
Begin
Beenden := True;
End;
Achtung: je häufiger
ProcessMessages aufgerufen wird, desto länger baucht dein Programm.
Notfalls einen Zähler einbauen und nur bei jedem X-ten Durchlauf aufrufen.
Im Beispiel bieten sich Potenzen von 2 für X(32) an.