SCAR Code:
function MsToTime(MS, TheType: Integer): string;
var
STA: array [0..4] of TVariantArray;
Time: array [0..2] of Integer;
i: Integer;
begin
Result := '';
if (not(InRange(TheType, 0, High(STA)))) then
begin
srl_Warn('MsToTime', 'TheType: ''' + IntToStr(TheType) + ''' is not a valid value. Using Time_Bare.', warn_AllVersions);
TheType := Time_Bare;
end;
STA[0] := [' Hours, ', ' Minutes and ', ' Seconds', False, 0];
STA[1] := ['h ', 'm ', 's', False, 2];
STA[2] := [' hr ', ' min ', ' sec', False, 0];
STA[3] := [':', ':', '', True, 2];
STA[4] := ['.', '.', '', True, 2];
ConvertTime(MS, Time[0], Time[1], Time[2]);
for i := 0 to 2 do
if (Time[i] > 0) or (STA[TheType][3]) or (i = 2) then
Result := Result + PadZ(IntToStr(Time[i]), STA[TheType][4]) + STA[TheType][i];
end;
However, for what it does, MSToTime seems to be over-complicated, I think.