gpt4 book ai didi

delphi - Delphi秒表时间格式

转载 作者:行者123 更新时间:2023-12-03 19:00:07 25 4
gpt4 key购买 nike

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,我希望小时,分钟,秒和毫秒。我已经尝试了很多在网上找到的东西和代码,但是没有一个对我有帮助。

当我启动秒表时,时间像这样的 00:00:00:000,而不是 0:0:0:10:0:0:10,经过一整毫秒后,小数点后一位变为1(001代替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;

关于delphi - Delphi秒表时间格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27892115/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com