Browse Source

Quick.Value changes

Exilon 5 years ago
parent
commit
81b7357d28
2 changed files with 17 additions and 0 deletions
  1. 1 0
      Quick.Value.RTTI.pas
  2. 16 0
      Quick.Value.pas

+ 1 - 0
Quick.Value.RTTI.pas

@@ -62,6 +62,7 @@ begin
     case DataType of
     case DataType of
       dtNull : Result := TValueExtended;
       dtNull : Result := TValueExtended;
       dtBoolean : Result := AsBoolean;
       dtBoolean : Result := AsBoolean;
+      dtString : Result := AsString;
       {$IFDEF MSWINDOWS}
       {$IFDEF MSWINDOWS}
       dtAnsiString : Result := AsAnsiString;
       dtAnsiString : Result := AsAnsiString;
       dtWideString : Result := AsWideString;
       dtWideString : Result := AsWideString;

+ 16 - 0
Quick.Value.pas

@@ -267,6 +267,8 @@ type
     function  IsObject : Boolean; inline;
     function  IsObject : Boolean; inline;
     function  IsPointer : Boolean; inline;
     function  IsPointer : Boolean; inline;
     function  IsVariant : Boolean; inline;
     function  IsVariant : Boolean; inline;
+    function IsRealInteger : Boolean;
+    function IsRealExtended : Boolean;
     procedure Clear; inline;
     procedure Clear; inline;
     procedure _AddRef; inline;
     procedure _AddRef; inline;
     procedure _Release; inline;
     procedure _Release; inline;
@@ -910,6 +912,20 @@ begin
   Result := fDataType = dtPointer;
   Result := fDataType = dtPointer;
 end;
 end;
 
 
+function TFlexValue.IsRealExtended: Boolean;
+var
+  i : Extended;
+begin
+  Result := TryStrToFloat(AsString,i);
+end;
+
+function TFlexValue.IsRealInteger: Boolean;
+var
+  i : Int64;
+begin
+  Result := TryStrToInt64(AsString,i);
+end;
+
 function TFlexValue.IsString: Boolean;
 function TFlexValue.IsString: Boolean;
 begin
 begin
   Result := fDataType in [dtString,dtAnsiString,dtWideString];
   Result := fDataType in [dtString,dtAnsiString,dtWideString];