Delphi 定时器不同 Windows OS
Delphi Timer on different Windows OS
计时器设置为一秒
procedure TForm1.Timer1Timer(Sender: TObject);
begin
caption := Format('%s', [FormatDateTime('hh:nn:ss.zzz', Frac(GetTime))])
end;
在 windows XP 和 win 8 上,我会得到每秒值正好增加一秒。在 windows 7 会更多。为什么?如何让Windows7个常数值只增加一秒?
GUI 计时器不精确,因为它们不会定期触发。他们承诺不会比您指定的时间间隔更频繁地触发。但是,它们的发射频率可能会降低。
简单的解决方案是让您的计时器启动得更快一些。你需要每秒更新一次,所以让定时器每 10Hz 触发一次,比如说。这将具有平滑 GUI 计时器的不精确性的效果。
计时器设置为一秒
procedure TForm1.Timer1Timer(Sender: TObject);
begin
caption := Format('%s', [FormatDateTime('hh:nn:ss.zzz', Frac(GetTime))])
end;
在 windows XP 和 win 8 上,我会得到每秒值正好增加一秒。在 windows 7 会更多。为什么?如何让Windows7个常数值只增加一秒?
GUI 计时器不精确,因为它们不会定期触发。他们承诺不会比您指定的时间间隔更频繁地触发。但是,它们的发射频率可能会降低。
简单的解决方案是让您的计时器启动得更快一些。你需要每秒更新一次,所以让定时器每 10Hz 触发一次,比如说。这将具有平滑 GUI 计时器的不精确性的效果。