Browse Source

Delphi 10.2 Tokyo

Allows Delphi 10.2 Tokyo build
PascalCoin 7 years ago
parent
commit
6a17a46062
2 changed files with 26 additions and 15 deletions
  1. 7 3
      src/core/UAccounts.pas
  2. 19 12
      src/libraries/pascalcoin/UJSONFunctions.pas

+ 7 - 3
src/core/UAccounts.pas

@@ -1473,6 +1473,10 @@ begin
   end;
 end;
 
+{$IFNDEF VER210}
+{$DEFINE DELPHIXE}
+{$ENDIF}
+
 class function TAccountComp.TxtToMoney(const moneytxt: AnsiString;
   var money: Int64): Boolean;
 Var s : AnsiString;
@@ -1484,11 +1488,11 @@ begin
     exit;
   end;
   try
-    If pos(DecimalSeparator,moneytxt)<=0 then begin
+    If pos({$IFDEF DELPHIXE}FormatSettings.{$ENDIF}DecimalSeparator,moneytxt)<=0 then begin
       // No decimal separator, consider ThousandSeparator as a decimal separator
-      s := StringReplace(moneytxt,ThousandSeparator,DecimalSeparator,[rfReplaceAll]);
+      s := StringReplace(moneytxt,{$IFDEF DELPHIXE}FormatSettings.{$ENDIF}ThousandSeparator,{$IFDEF DELPHIXE}FormatSettings.{$ENDIF}DecimalSeparator,[rfReplaceAll]);
     end else begin
-      s := StringReplace(moneytxt,ThousandSeparator,'',[rfReplaceAll]);
+      s := StringReplace(moneytxt,{$IFDEF DELPHIXE}FormatSettings.{$ENDIF}ThousandSeparator,'',[rfReplaceAll]);
     end;
     money := Round( StrToFloat(s)*10000 );
     Result := true;

+ 19 - 12
src/libraries/pascalcoin/UJSONFunctions.pas

@@ -20,9 +20,16 @@ unit UJSONFunctions;
 interface
 
 Uses
+{$IFNDEF VER210}
+{$DEFINE DELPHIXE}
+{$ENDIF}
+
   {$IFDEF FPC}
   fpjson, jsonparser,
   {$ELSE}
+  {$IFDEF DELPHIXE}
+  System.JSON,
+  {$ENDIF}
   DBXJSON,
   {$ENDIF}
   SysUtils, DateUtils, Variants, Classes, ULog;
@@ -495,17 +502,17 @@ begin
     d := TJSONNumber(JSONValue).AsDouble;
     if Pos('.',JSONValue.ToString)>0 then i64 := 0
     else i64 := TJSONNumber(JSONValue).AsInt;
-    ds := DecimalSeparator;
-    ts := ThousandSeparator;
-    DecimalSeparator := '.';
-    ThousandSeparator := ',';
+    ds := {$IFDEF DELPHIXE}FormatSettings.{$ENDIF}DecimalSeparator;
+    ts := {$IFDEF DELPHIXE}FormatSettings.{$ENDIF}ThousandSeparator;
+    {$IFDEF DELPHIXE}FormatSettings.{$ENDIF}DecimalSeparator := '.';
+    {$IFDEF DELPHIXE}FormatSettings.{$ENDIF}ThousandSeparator := ',';
     Try
       if FormatFloat('0.###########',d)=inttostr(i64) then
         Value := i64
       else Value := d;
     Finally
-      DecimalSeparator := ds;
-      ThousandSeparator := ts;
+      {$IFDEF DELPHIXE}FormatSettings.{$ENDIF}DecimalSeparator := ds;
+      {$IFDEF DELPHIXE}FormatSettings.{$ENDIF}ThousandSeparator := ts;
     End;
   end else if JSONValue is TJSONTrue then Value := true
   else if JSONValue is TJSONFalse then Value := false
@@ -534,15 +541,15 @@ begin
     varBoolean : if (Value) then Result := 'true' else Result:='false';
     varNull : Result := 'null';
     varDate,varDouble : begin
-      ds := DecimalSeparator;
-      ts := ThousandSeparator;
-      DecimalSeparator := '.';
-      ThousandSeparator := ',';
+      ds := {$IFDEF DELPHIXE}FormatSettings.{$ENDIF}DecimalSeparator;
+      ts := {$IFDEF DELPHIXE}FormatSettings.{$ENDIF}ThousandSeparator;
+      {$IFDEF DELPHIXE}FormatSettings.{$ENDIF}DecimalSeparator := '.';
+      {$IFDEF DELPHIXE}FormatSettings.{$ENDIF}ThousandSeparator := ',';
       try
         Result := FormatFloat('0.###########',Value);
       finally
-        DecimalSeparator := ds;
-        ThousandSeparator := ts;
+        {$IFDEF DELPHIXE}FormatSettings.{$ENDIF}DecimalSeparator := ds;
+        {$IFDEF DELPHIXE}FormatSettings.{$ENDIF}ThousandSeparator := ts;
       end;
     end
   else