如下: IsPush是一个在Private中定义的布尔变量for i:=1 to 100 do begin .............. while IsPush do sleep(1); .............. end;在暂停按钮中写下: IsPush:=true;继续按钮: IsPush:=false;
var Paused: Boolean;//循环体开始 ... //暂停控制 while Paused do Application.ProcessMessages ... //循环体结束
这样你就可以在别的事件中写改变全局变量Paused的语句了,比如: procedure TForm1.Button1Click(Sender: TObject); begin Paused := not Paused; end;不好意思,写了三个帖子,楼主连着看吧
var bPaused: Boolean; //global varprocedure proc(); var i: Integer; begin .. .. for i:= 0 to 500 do begin .. if bPaused then break else continue; .. end; .. .. end;procedure TForm1.Button1Click(Sender: TObject); begin bPaused := not bPaused; end;
提示你:设置全局变量,
循环中应该能接受外部消息。就可以解决了。
另外可能要设置的全局变量可能得2个。一个存放按钮按下的瞬间for循环中的计数,另外加一个boolean变量。具体自己考虑吧
IsPush是一个在Private中定义的布尔变量for i:=1 to 100 do
begin
..............
while IsPush do
sleep(1);
..............
end;在暂停按钮中写下:
IsPush:=true;继续按钮:
IsPush:=false;
Paused: Boolean;//循环体开始
...
//暂停控制
while Paused do
Application.ProcessMessages
...
//循环体结束
在循环中调用Application.ProcessMessages可以使可视控件处理消息
procedure TForm1.Button1Click(Sender: TObject);
begin
Paused := not Paused;
end;不好意思,写了三个帖子,楼主连着看吧
bPaused: Boolean; //global varprocedure proc();
var
i: Integer;
begin
..
..
for i:= 0 to 500 do
begin
..
if bPaused then
break
else
continue;
..
end;
..
..
end;procedure TForm1.Button1Click(Sender: TObject);
begin
bPaused := not bPaused;
end;