Delphi 秒表时间格式
Delphi Stopwatch time format
procedure TForm1.TimerSWTimer(Sender: TObject);
var
Hour, Min, Sec, MSec: word;
begin
ElapsedTime := Time - StartTime + Totaltime ;
DecodeTime(elapsedtime, Hour, Min, Sec, MSec);
LabelSW.Text := IntToStr(Hour) + ':'+ IntToStr(Min) + ':'+ IntToStr(Sec) + ':' + IntToStr(Msec);
end;
这是我试图在我的应用程序中实现的秒表代码,主要问题是标签上显示的时间格式是 0:0:0:0
,我希望它是 [=15] =] 表示小时、分钟、秒和毫秒。我尝试了很多在网上找到的东西和代码,但 none 对我有帮助。
当我启动秒表时,时间是这样的 0:0:0:1
,而不是 0:0:0:10
、0:0:0:100
,并且在整整一秒毫秒后变为小数点后一位(1 而不是 001) .小时、分钟和秒也是一样,它们以小数点后一位显示,直到达到 10(9 而不是 09)..
我试过:
Addleadingzeroes 函数
用法:
AddLeadingZeroes(2005, 10) ;
将产生“0000002005”字符串值。
仅限时间 - 带前导零的数值
ShowMessage('hh:nn:ss.zzz = '+FormatDateTime('hh:nn:ss.zzz', myDate));
如果有哪位好心人能帮到我,我将不胜感激。
干杯。
见http://docwiki.embarcadero.com/Libraries/en/System.SysUtils.Format
labelSW.Text := Format('%2.2u:%2.2u:%2.2u:%3.3u',[Hour,Min,Sec,MSec]);
精度说明符用零进行左填充。
使用 System.Diagnostics 中的 RTL TStopwatch
高级记录,变得更容易一些:
uses
System.SysUtils,
System.Diagnostics;
var
sw: TStopwatch;
...
sw := TStopwatch.StartNew; // Start measuring time
...
procedure TForm1.TimerSWTimer(Sender: TObject);
begin
LabelSW.Text :=
FormatDateTime('hh:nn:ss:zzz',sw.ElapsedMilliseconds/MSecsPerDay);
end;
procedure TForm1.TimerSWTimer(Sender: TObject);
var
Hour, Min, Sec, MSec: word;
begin
ElapsedTime := Time - StartTime + Totaltime ;
DecodeTime(elapsedtime, Hour, Min, Sec, MSec);
LabelSW.Text := IntToStr(Hour) + ':'+ IntToStr(Min) + ':'+ IntToStr(Sec) + ':' + IntToStr(Msec);
end;
这是我试图在我的应用程序中实现的秒表代码,主要问题是标签上显示的时间格式是 0:0:0:0
,我希望它是 [=15] =] 表示小时、分钟、秒和毫秒。我尝试了很多在网上找到的东西和代码,但 none 对我有帮助。
当我启动秒表时,时间是这样的 0:0:0:1
,而不是 0:0:0:10
、0:0:0:100
,并且在整整一秒毫秒后变为小数点后一位(1 而不是 001) .小时、分钟和秒也是一样,它们以小数点后一位显示,直到达到 10(9 而不是 09)..
我试过:
Addleadingzeroes 函数
用法:
AddLeadingZeroes(2005, 10) ;
将产生“0000002005”字符串值。
仅限时间 - 带前导零的数值
ShowMessage('hh:nn:ss.zzz = '+FormatDateTime('hh:nn:ss.zzz', myDate));
如果有哪位好心人能帮到我,我将不胜感激。
干杯。
见http://docwiki.embarcadero.com/Libraries/en/System.SysUtils.Format
labelSW.Text := Format('%2.2u:%2.2u:%2.2u:%3.3u',[Hour,Min,Sec,MSec]);
精度说明符用零进行左填充。
使用 System.Diagnostics 中的 RTL TStopwatch
高级记录,变得更容易一些:
uses
System.SysUtils,
System.Diagnostics;
var
sw: TStopwatch;
...
sw := TStopwatch.StartNew; // Start measuring time
...
procedure TForm1.TimerSWTimer(Sender: TObject);
begin
LabelSW.Text :=
FormatDateTime('hh:nn:ss:zzz',sw.ElapsedMilliseconds/MSecsPerDay);
end;