在for 循环里怎么样实现暂停和继续

lyyxzq 2003-06-27 01:05:23
我想通过一个按键来控制暂停和继续
比如在for 循环里面,我要怎么样才能达到我的目的
...全文
583 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
walterwl 2003-06-27
  • 打赏
  • 举报
回复
还是用线程好啊...
lyyxzq 2003-06-27
  • 打赏
  • 举报
回复
好的,谢谢各位,我去试一下
tongdings 2003-06-27
  • 打赏
  • 举报
回复
var
bPaused: Boolean; //global var

procedure 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;


ronaldli 2003-06-27
  • 打赏
  • 举报
回复
这样你就可以在别的事件中写改变全局变量Paused的语句了,比如:
procedure TForm1.Button1Click(Sender: TObject);
begin
Paused := not Paused;
end;

不好意思,写了三个帖子,楼主连着看吧
ronaldli 2003-06-27
  • 打赏
  • 举报
回复
不要在主线进程中使用Sleep,这会使窗体停止响应,死循环也会停止响应
在循环中调用Application.ProcessMessages可以使可视控件处理消息
ronaldli 2003-06-27
  • 打赏
  • 举报
回复
var
Paused: Boolean;

//循环体开始
...
//暂停控制
while Paused do
Application.ProcessMessages
...
//循环体结束
haoco 2003-06-27
  • 打赏
  • 举报
回复
如下:
IsPush是一个在Private中定义的布尔变量

for i:=1 to 100 do
begin
..............
while IsPush do
sleep(1);
..............
end;

在暂停按钮中写下:
IsPush:=true;

继续按钮:
IsPush:=false;
linzhisong 2003-06-27
  • 打赏
  • 举报
回复
暂停可以用死循环来实现!
timelyraining 2003-06-27
  • 打赏
  • 举报
回复
不南,自己想办法把
提示你:设置全局变量,
循环中应该能接受外部消息。就可以解决了。
另外可能要设置的全局变量可能得2个。一个存放按钮按下的瞬间for循环中的计数,另外加一个boolean变量。具体自己考虑吧
hammer_shi 2003-06-27
  • 打赏
  • 举报
回复
设立一变量,每次循环时判断变量再用sleep(时间)解决行么?

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧