如何中断/恢复循环(200分)

  • 主题发起人 主题发起人 ccw77128
  • 开始时间 开始时间
C

ccw77128

Unregistered / Unconfirmed
GUEST, unregistred user!
我在一个form中设置了一个按钮"start", 点击"start"后执行某个循环, 如下:
while condition_true do
begin
some operations;
Application.ProcessMessages; //防止用户界面没有响应
end;
现在我希望在上述form按下鼠标后,该循环能够暂停,而松开鼠标后,循环能够继续执行
,请问应该如何实现。我在运行中发现,点击鼠标右建并键并弹出自定义的Pop up menu
时循环能够暂停并按上述要求自动恢复,但是点击鼠标左键就无法做到这一点。还请各位
执教。我的程序是单线程的。
 
form 增加一个 bRun : Boolean 变量,
form.mousedown bRun := false;
form.mouseup bRun := true;

bRun := true;
while condition_true do
begin
while bRun = false do
begin
end;
some operations;
Application.ProcessMessages; //防止用户界面没有响应
end;
 
bRun := true;
while condition_true do
begin
while bRun = false do
begin
Application.ProcessMessage; //这里还应该加一句
end;
some operations;
Application.ProcessMessages; //防止用户界面没有响应
end;
 
竟然忘了。多谢提醒 :-)
 
我试了一下,发现一般情况下上述代码是可行的,但是在鼠标双击或连续多次点击之后,
即使鼠标按键已经松开,bRun还是等于false。不知何故,我在Form的DblClick, Click事件
中添加了:bRun := true; 后,问题也没能解决,还请指教。
 
多人接受答案了。
 
后退
顶部