var
quitflag: Boolean;
procedure TForm1.Button1Click(Sender: TObject);
const
runon: Boolean=false;
begin
quitflag:=false;
if runon then Exit; // 若已进入本过程则退出
runon := true;
while true do begin
.....//你的代码
Application.ProcessMessages; // 让其他控件能获取消息
if quitFlag then Break;
end;
runon:= false; // 清除已进入本过程标志
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
quitFlag := true;
end;