怎样设置一个计时器(50分)

  • 主题发起人 主题发起人 绯红之王
  • 开始时间 开始时间

绯红之王

Unregistered / Unconfirmed
GUEST, unregistred user!
就是在程序运行时
旁边有一个计时器显示运行时间的
但是有一个问题就是计时器不能准确显示当前运行时间
每次都是当程序运行结束了 才有时间显示
有人就建议用 application.ProcessMessages
但是又出现了一个问题
我的程序运行是在一个循环里面进行数据分析
有时循环一次会需要2-5秒
如果在循环里面只加一行 application.ProcessMessages;
那么每次循环就只会显示增加了1秒
要达到计时器每1秒变化 岂不是我要在程序里面每行都要增加 application.ProcessMessages;

不知道有没有可行的办法
 
加线程吧
 
time:=now-(starttime);//你说的不是很理解,在timer里面显示这个应该可以吧。
 
如果是只是想要显示程序运行时间可以这样啊,不用定时器的.
var
abegin,aend:double;
begin
abegin := GetCurrentTime;
//程序
aend := GetCurrentTime;
ShowMessage(FloatToStr((aend-abegin)/1000));
//上面就是你程序运行的时间了,到秒喔...
end;
 
其实就像刻录光盘时的计时器一样
在不停的显示已经进行了多少时间
 
把工作放入线程内运行,然后主程序用一个timer控件定时显示时间就行了。
等工作线程结束后,停止计时,显示结果
 
1、
试试Timer控件
 
后退
顶部