德尔福:简单的hh:mm:ss Timer

时间:2011-06-14 00:58:10

标签: delphi timer

对于hh:mm:ss计时器(Timer1.Interval:= 1000),是否有人使用短而有效的代码?我可以制作一个,但我想要一些有效的东西。

谢谢!

我的代码:

Var MyTime:TTime;

MyTime:=EncodeTime(0,0,0,0);

procedure TForm1.Timer1Timer(Sender: TObject);
begin
MyTime:=incsecond(Mytime,1);
form1.Label1.Caption:='Time: '+TimeToStr(MyTime);
end;

1 个答案:

答案 0 :(得分:9)

添加一个Var来跟踪计时器的启动时间。

  TForm1 = class(TForm)
  private
    timerStart: TDateTime;
  public
    proceure StartTimer;
  end;

程序启动计时器

proceure TForm1.StartTimer;
beign
 timerStart := now();
 timer1.interval = 1000;
 timer1.enabled := true;
end;

在OnTimer活动中

Label1.caption := formatdatetime('hh:nn:ss', timerStart - now()); //nn is for minutes.

这应该显示任何间隔所需的正确时间 每隔5秒显示 5000,所用时间。

注意:如果没有测试,运行计时器超过24小时可能无法显示正确的时差。对于那个我认为,日期时间格式字符串应该像dd hh:nn:ss那样显示过去的日子