我正在Delphi 2009中开发一个计时器。我目前正在使用以下方法来格式化我的计时器显示:
Caption := Format('%.2d', [Hours]) + ':' +
Format('%.2d', [Minutes]) + ':' +
Format('%.2d', [Seconds]);
并按预期显示时间为:
00:04:35
然而,当我进入负面时间时,可以理解地将其显示为:
00:-04:-35
我需要时间显示为:
-00:04:35
任何想法?
答案 0 :(得分:12)
前缀:= ''; if(Hours< 0)或(Minutes< 0)或(Seconds< 0)然后 前缀:= ' - ';
Caption := Prefix+Format('%.2d', [Abs(Hours)]) + ':' +
Format('%.2d', [Abs(Minutes)]) + ':' +
Format('%.2d', [Abs(Seconds)]);
再见。
答案 1 :(得分:0)
嗯,你是分别格式化每个数字,因此毫不奇怪你得到所有这些数字的负号。试试这个:
Caption := Format('%.2d', [Abs(Hours)]) + ':' +
Format('%.2d', [Abs(Minutes)]) + ':' +
Format('%.2d', [Abs(Seconds)]);
if (Hours < 0) or (Minutes < 0) or (Seconds < 0) then begin
Caption := '-' + Caption;
end;