O
ow
Unregistered / Unconfirmed
GUEST, unregistred user!
我在一个Form中添加了一个按钮,点击该按钮,就执行如下的语句:
var
InWorking: Boolean;
procedure TMyForm.Create
begin
InWorking := False;
end;
procedure TMyForm.btnStartClick
begin
if InWorking then
begin
InWorking := False;
Exit;
end;
repeat
执行某一工作;
Application.ProcessMessages;
until not InWorking;
end;
其中InWorking是一个标志,而按钮的效果就是启动/停止某一工作。
现在我希望在该工作启动后,用户关闭Form时将自动停止该工作,于是
我在FormClose中加了如下语句,
procedure TMyForm.FormClose
begin
InWorking := False;
end;
但是发现启动工作后,点击关闭Form的按钮无效,也根本不执行FormClose过程,
而用按钮手工停止工作后,再按关闭Form的按钮则会正常执行FormClose过程,请问
这是怎么回事?(执行的工作需要的时间较短,但是需要循环运行,所以使用repeat
循环执行)。
var
InWorking: Boolean;
procedure TMyForm.Create
begin
InWorking := False;
end;
procedure TMyForm.btnStartClick
begin
if InWorking then
begin
InWorking := False;
Exit;
end;
repeat
执行某一工作;
Application.ProcessMessages;
until not InWorking;
end;
其中InWorking是一个标志,而按钮的效果就是启动/停止某一工作。
现在我希望在该工作启动后,用户关闭Form时将自动停止该工作,于是
我在FormClose中加了如下语句,
procedure TMyForm.FormClose
begin
InWorking := False;
end;
但是发现启动工作后,点击关闭Form的按钮无效,也根本不执行FormClose过程,
而用按钮手工停止工作后,再按关闭Form的按钮则会正常执行FormClose过程,请问
这是怎么回事?(执行的工作需要的时间较短,但是需要循环运行,所以使用repeat
循环执行)。