ich glaub so läuft es besser
Code:
Procedure TMyForm.MyButtonClick (Sender : TObject);
Begin
[b]UserPressedCancelButton := False;[/b]
Repeat
DoSomething;
Application.ProcessMessages;
Until UserPressedCancelButton;
End;
Wenn
DoSomething unter 100ms (Erfahrungswert) benötigt dann ist das Programm noch "gut" bediehnbar.
Darüber fängt es störend an zu stocken, weßhalb sich da der Aufwand für einen Thread voll rentiert.
Ein Therapeut entspricht 1024 Gigapeut.