C
carnation
Unregistered / Unconfirmed
GUEST, unregistred user!
我在Timer中写了这么一段代码,大意是自己进行时间的累加
procedure TForm1.timerTimer(Sender: TObject);
begin
If not BeginTest then
begin
BeginTest:=true;
FirstTime:=Time;
end;
label1.Caption:=TimeToStr(Time-FirstTime);
ms:=ms+timer1.interval;
if ms>=1000 then
begin
ms:=0;
s:=s+1;
if s>=60 then
begin
s:=0;
m:=m+1;
end;
end;
edit1.text:=inttostr(m);
edit2.text:=inttostr(s);
edit3.text:=inttostr(ms);
end;
label1中是用Now来显示时间,而edit1,edit2,edit3是我自己累加时间
可当我执行后,如果Interval取100,过一会儿两个时间就不一样了
如果Interval取40,3秒就不一样了。
两个问题:
1.为什么Interval取100,两个时间还会不一样?我知道Timer控件的精度并不高,但
怎么说100ms的精度总该有吧。
2.这个例子我用其他第三方的Timer控件也试过,那些用线程写的控件,说明中能达到
1ms的精度,但实际上Interval取100,过一会儿两个时间仍然不一样。为什么?
procedure TForm1.timerTimer(Sender: TObject);
begin
If not BeginTest then
begin
BeginTest:=true;
FirstTime:=Time;
end;
label1.Caption:=TimeToStr(Time-FirstTime);
ms:=ms+timer1.interval;
if ms>=1000 then
begin
ms:=0;
s:=s+1;
if s>=60 then
begin
s:=0;
m:=m+1;
end;
end;
edit1.text:=inttostr(m);
edit2.text:=inttostr(s);
edit3.text:=inttostr(ms);
end;
label1中是用Now来显示时间,而edit1,edit2,edit3是我自己累加时间
可当我执行后,如果Interval取100,过一会儿两个时间就不一样了
如果Interval取40,3秒就不一样了。
两个问题:
1.为什么Interval取100,两个时间还会不一样?我知道Timer控件的精度并不高,但
怎么说100ms的精度总该有吧。
2.这个例子我用其他第三方的Timer控件也试过,那些用线程写的控件,说明中能达到
1ms的精度,但实际上Interval取100,过一会儿两个时间仍然不一样。为什么?