Timer中使用Application.ProcessMessages问题
时间:2011-12-10
来源:互联网
为什么生成的程序,Edit中的数值会一直不停的变化,而不是向循环中所示从0到100000,显示数字完后继续执行
Timer1.Enabled:=False;的代码?如果不加Application.ProcessMessages;的话就没问题,但是Edit无法实时更新数值.
Delphi(Pascal) code
Timer1.Enabled:=False;的代码?如果不加Application.ProcessMessages;的话就没问题,但是Edit无法实时更新数值.
Delphi(Pascal) code
procedure TForm1.Button1Click(Sender: TObject); begin Timer1.Enabled :=True; end; procedure TForm1.Timer1Timer(Sender: TObject); var i:Integer; begin for I := 0 to 100000 do begin Edit1.Text :=IntToStr(i); Application.ProcessMessages; end; Timer1.Enabled :=False; end;
作者: WinSockCF 发布时间: 2011-12-10
长时间占用主线程的应该考虑另外开线程而非定时器。
作者: pathletboy 发布时间: 2011-12-10
因为Application.ProcessMessages或接收到timer的消息,从而又执行到了Timer1Timer这个事件的代码,比如当你第一个timer事件触发,并显示5的时候,去ProcessMessages了一下,正好收到timer消息,于是又执行该事件的代码,又从0开始循环显示。。
作者: truexf 发布时间: 2011-12-10
因为Timer在系统进程中优先级是最低的了,加了ProcessMessages;有其它事件的话会优先执行
可能是Interval太小了,循环可能要3秒才计算完,但Interval是1秒
所以循环还没有结束,第2次Timer已经开始了,就这样不停的执行下去咯
用一个全局变量就看和出来了,把Interval设置1000,2000,3000,4000...试试
var
j:integer;
procedure TForm1.Button1Click(Sender: TObject);
begin
j:=0 ;
Timer1.Enabled :=True;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var
i:Integer;
begin
inc(j);
edit2.Text:=inttostr(j);
for I := 0 to 100000 do begin
Edit1.Text :=IntToStr(i);
Application.ProcessMessages;
end;
Timer1.Enabled :=False;
end;
可能是Interval太小了,循环可能要3秒才计算完,但Interval是1秒
所以循环还没有结束,第2次Timer已经开始了,就这样不停的执行下去咯
用一个全局变量就看和出来了,把Interval设置1000,2000,3000,4000...试试
var
j:integer;
procedure TForm1.Button1Click(Sender: TObject);
begin
j:=0 ;
Timer1.Enabled :=True;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var
i:Integer;
begin
inc(j);
edit2.Text:=inttostr(j);
for I := 0 to 100000 do begin
Edit1.Text :=IntToStr(i);
Application.ProcessMessages;
end;
Timer1.Enabled :=False;
end;
作者: kaikai_kk 发布时间: 2011-12-10
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28