TimeAMString and TimePMString should be used instead of 'am' and 'pm' respectively to work with different locates.

Additional Information

if (FancyRowHdrAttr.OnlyShow00Minutes and (ExtractMins(RowTime) = 0)) or
(not FancyRowHdrAttr.OnlyShow00Minutes) then
begin
if (not FancyRowHdrAttr.Hr2400) and (Granularity < 60) then
begin
// Get the first row with a 00 hour
FirstHourRow := TopRow;
while (FirstHourRow < BottomRow) and (ExtractMins(RowToTime(FirstHourRow)) <> 0) do
Inc(FirstHourRow);
if RowTime = 0 then
Result := TimeAMString
else
if RowTime = 0.50 then
Result := TimePMString
else
if (RowNum = FirstHourRow) and (ExtractMins(RowTime) = 0) then
begin
if RowTime < 0.50 then
Result := TimeAMString
else
Result := TimePMString;
end
else
Result := FormatDateTime(TimeFmt, RowTime);
end
else
Result := FormatDateTime(TimeFmt, RowTime);
end
else
Result := '';