delphi 一个按钮实现启动和暂停
用delphi编写一个1+2+3+。。。的累加器,单击按钮开始运行,并同步显示累加结果,再单击按钮式程序暂停,再单击按钮式继续上次向后累加。求各位大神帮忙,如能解决再追加...
用delphi编写一个1+2+3+。。。的累加器,单击按钮开始运行,并同步显示累加结果,再单击按钮式程序暂停,再单击按钮式继续上次向后累加。求各位大神帮忙,如能解决再追加30分!!!
展开
3个回答
展开全部
4步走
1.申明3个全局变量M_Pause: BOOL; [用来控制暂停\继续]
Loop_i, Result_i: integer;
2.Form的OnCreate事件中初始化 M_Pause:=False;
3.Button1的Caption为[启动] Button2的Caption为[暂停]
4.为2个按钮写如下代码[Sleep()控制速度]
procedure TForm1.Button1Click(Sender: TObject);
begin
While Not M_Pause do begin
Result_i:=Result_i+Loop_i+1;
inc(Loop_i);
Text:=inttostr(Result_i);
Application.ProcessMessages;
Sleep(300);
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
M_Pause:=Not M_Pause;
If M_Pause then Button2.Caption:='继续' else Button2.Caption:='暂停';
Application.ProcessMessages;
Button1Click(Sender);
Sleep(300);
end;
D7下测试通过, 当然你也可以使用Timer控件。
1.申明3个全局变量M_Pause: BOOL; [用来控制暂停\继续]
Loop_i, Result_i: integer;
2.Form的OnCreate事件中初始化 M_Pause:=False;
3.Button1的Caption为[启动] Button2的Caption为[暂停]
4.为2个按钮写如下代码[Sleep()控制速度]
procedure TForm1.Button1Click(Sender: TObject);
begin
While Not M_Pause do begin
Result_i:=Result_i+Loop_i+1;
inc(Loop_i);
Text:=inttostr(Result_i);
Application.ProcessMessages;
Sleep(300);
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
M_Pause:=Not M_Pause;
If M_Pause then Button2.Caption:='继续' else Button2.Caption:='暂停';
Application.ProcessMessages;
Button1Click(Sender);
Sleep(300);
end;
D7下测试通过, 当然你也可以使用Timer控件。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在定时器里只计算一次,定时时间设为1,这样每1毫秒就会计算一次;在另个按钮里设置定时器的启动和停止:
Timer1.Enabled:=not Timer1.Enabled;
如果想再快,就不能使用定时器了,要在循环里判断按钮2设置的启停标志是不是改变了,而且每循环一次要执行一次application.ProcessMessages;
Timer1.Enabled:=not Timer1.Enabled;
如果想再快,就不能使用定时器了,要在循环里判断按钮2设置的启停标志是不是改变了,而且每循环一次要执行一次application.ProcessMessages;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
语法不是很清楚,思路应该一样的。
Timer1.Enabled = Not Timer1.Enabled
Timer1.Enabled = Not Timer1.Enabled
更多追问追答
追问
timer是什么?计时器吗?
追答
是的,你不是用定时器累加吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询