summaryrefslogtreecommitdiff
path: root/rtl/objpas/cvarutil.inc
diff options
context:
space:
mode:
Diffstat (limited to 'rtl/objpas/cvarutil.inc')
-rw-r--r--rtl/objpas/cvarutil.inc36
1 files changed, 19 insertions, 17 deletions
diff --git a/rtl/objpas/cvarutil.inc b/rtl/objpas/cvarutil.inc
index acb4df178c..65c3a67f2c 100644
--- a/rtl/objpas/cvarutil.inc
+++ b/rtl/objpas/cvarutil.inc
@@ -833,25 +833,19 @@ var
begin
s := WideString(p);
- if not (TryStrToDateTime(s, Result) or
- TryStrToDate(s, Result) or
- TryStrToTime(s, Result)) then
+ if not TryStrToDateTime(s, Result) then
VariantTypeMismatch(varOleStr, varDate);
end;
Function LStrToDate(p: Pointer) : TDateTime;
begin
- if not (TryStrToDateTime(AnsiString(p), Result) or
- TryStrToDate(AnsiString(p), Result) or
- TryStrToTime(AnsiString(p), Result)) then
+ if not TryStrToDateTime(AnsiString(p), Result) then
VariantTypeMismatch(varString, varDate);
end;
Function UStrToDate(p: Pointer) : TDateTime;
begin
- if not (TryStrToDateTime(UnicodeString(p), Result) or
- TryStrToDate(UnicodeString(p), Result) or
- TryStrToTime(UnicodeString(p), Result)) then
+ if not TryStrToDateTime(UnicodeString(p), Result) then
VariantTypeMismatch(varUString, varDate);
end;
@@ -1287,6 +1281,14 @@ begin
end; {$ENDIF}
end;
+function VarDateToString(DT: TDateTime): AnsiString;
+begin
+ if Trunc(DT) = 0 then
+ Result := TimeToStr(DT)
+ else
+ Result := DateTimeToStr(DT);
+end;
+
{--- WideString ---}
Function VariantToWideString(const VargSrc : TVarData) : WideString;
@@ -1306,7 +1308,7 @@ begin
varSingle : Result := FloatToStr(vSingle);
varDouble : Result := FloatToStr(vDouble);
varCurrency : Result := FloatToStr(vCurrency);
- varDate : Result := FloatToStr(vDate);
+ varDate : Result := VarDateToString(vDate);
{$endif}
varBoolean : Result := BoolToStr(vBoolean, True);
varVariant : Result := VariantToWideString(PVarData(vPointer)^);
@@ -1329,7 +1331,7 @@ begin
varSingle : Result := FloatToStr(PSingle(vPointer)^);
varDouble : Result := FloatToStr(PDouble(vPointer)^);
varCurrency : Result := FloatToStr(PCurrency(vPointer)^);
- varDate : Result := FloatToStr(PDate(vPointer)^);
+ varDate : Result := VarDateToString(PDate(vPointer)^);
{$endif}
varBoolean : Result := BoolToStr(PWordBool(vPointer)^, True);
varVariant : Result := VariantToWideString(PVarData(vPointer)^);
@@ -1373,7 +1375,7 @@ begin
varSingle : Result := FloatToStr(vSingle);
varDouble : Result := FloatToStr(vDouble);
varCurrency : Result := FloatToStr(vCurrency);
- varDate : Result := DateToStr(vDate);
+ varDate : Result := VarDateToString(vDate);
{$endif}
varBoolean : Result := BoolToStr(vBoolean, True);
varVariant : Result := VariantToAnsiString(PVarData(vPointer)^);
@@ -1396,7 +1398,7 @@ begin
varSingle : Result := FloatToStr(PSingle(vPointer)^);
varDouble : Result := FloatToStr(PDouble(vPointer)^);
varCurrency : Result := FloatToStr(PCurrency(vPointer)^);
- varDate : Result := DateToStr(PDate(vPointer)^);
+ varDate : Result := VarDateToString(PDate(vPointer)^);
{$endif}
varBoolean : Result := BoolToStr(PWordBool(vPointer)^, True);
varVariant : Result := VariantToAnsiString(PVarData(vPointer)^);
@@ -1498,7 +1500,7 @@ Var
i: Integer;
begin
- Writeln(F,'---> ', aName, ' at $', IntToHex(Cardinal(@VargSrc), 8), ' <----------------');
+ Writeln(F,'---> ', aName, ' at $', HexStr(@VargSrc), ' <----------------');
with VargSrc do begin
if vType and varByRef = varByRef then
@@ -1526,7 +1528,7 @@ begin
WriteLn;
if vType and varArray = varArray then begin
- Writeln(F,'---< ', aName, ' at $', IntToHex(Cardinal(@VargSrc), 8), ' >----------------');
+ Writeln(F,'---< ', aName, ' at $', HexStr(@VargSrc), ' >----------------');
Writeln(F);
Exit;
end;
@@ -1537,7 +1539,7 @@ begin
if (vType and varByRef = varByRef) or (vType and varTypeMask = varVariant) then
if not Assigned(vPointer) then begin
WriteLn(F, 'nil]');
- Writeln(F,'---< ', aName, ' at $', IntToHex(Cardinal(@VargSrc), 8), ' >----------------');
+ Writeln(F,'---< ', aName, ' at $', HexStr(@VargSrc), ' >----------------');
Writeln(F);
Exit;
end;
@@ -1593,7 +1595,7 @@ begin
end;
end;
- Writeln(F,'---< ', aName, ' at $', IntToHex(Cardinal(@VargSrc), 8), ' >----------------');
+ Writeln(F,'---< ', aName, ' at $', HexStr(@VargSrc), ' >----------------');
Writeln(F);
end;