Das geht so nicht, weil die Applikation keine Messages empfängt während die Prozedur noch läuft. Der Buttonklick wird also erst später abgearbeitet... Wenn schon so, dann etwas anpassen:
Delphi-Quellcode:
var
weiter : Boolean;
procedure Test;
var
i : LongInt;
begin
while weiter do
begin
//was der halt machen soll
application.processmessages ; // <-- Dies ist eben wichtig
end;
end;
procedure TForm1.Button1Click (Sender : TObject);
begin
Weiter := false ;
end ;
Will mans richtig machen, so kommt man um Threads nicht herum. Dafür mal die Forumsuche benutzen.