der richtige Ansatz wäre beim Beenden-Klick den Timer abzuschalten damit er beim debugge nicht doch nochmal anspringt. Und im OnTimer wäre das abschalten und spätere wieder anschalten auch sinnvoll falls die OnTimerRoutine zu lange benötigt damit sich die Events nicht aneinanderreihen und überhäufen:
Delphi-Quellcode:
procedure TClass.TimerProc(Sender: TObject);
begin
Timer.Enabled := False;
//DoAnything
Timer.Enabled := not(Application.Terminated);
end;