Browse Source

ToString function of TValue record implementation to be equal of Delphi declaration.

Henrique Gottardi Werlang 1 year ago
parent
commit
87adedc1ba
1 changed files with 8 additions and 2 deletions
  1. 8 2
      packages/rtl/src/rtti.pas

+ 8 - 2
packages/rtl/src/rtti.pas

@@ -78,7 +78,8 @@ type
     function IsObjectInstance: boolean;
     function IsOrdinal: boolean;
     function IsType(ATypeInfo: TTypeInfo): boolean;
-    function ToString: String;
+    function ToString: String; overload;
+    function ToString(const AFormatSettings: TFormatSettings): String; overload;
     function TryCast(ATypeInfo: TTypeInfo; out AResult: TValue; const EmptyAsAnyType: Boolean = True): Boolean;
 
     procedure SetArrayElement(aIndex: SizeInt; const AValue: TValue);
@@ -1129,6 +1130,11 @@ begin
 end;
 
 function TValue.ToString: String;
+begin
+  Result := ToString(FormatSettings);
+end;
+
+function TValue.ToString(const AFormatSettings: TFormatSettings): String;
 begin
   if IsEmpty then
     Exit('(empty)');
@@ -1138,7 +1144,7 @@ begin
     tkClass: Result := AsObject.ClassName;
     tkClassRef: Result := AsClass.ClassName;
     tkEnumeration: Result := GetEnumName(TTypeInfoEnum(TypeInfo), AsOrdinal);
-    tkFloat: Result := FloatToStr(AsExtended);
+    tkFloat: Result := FloatToStr(AsExtended, AFormatSettings);
     tkInteger: Result := IntToStr(AsNativeInt);
     tkString: Result := AsString;
   else