Explorar o código

Json.Serializer delphi sample updated

Unknown %!s(int64=6) %!d(string=hai) anos
pai
achega
16f828a43e

+ 20 - 12
samples/delphi/QuickConfig/ConfigToFileAndRegistry/Main.dfm

@@ -3,8 +3,8 @@ object MainForm: TMainForm
   Left = 0
   Left = 0
   Top = 0
   Top = 0
   Caption = 'Quick Config Demo'
   Caption = 'Quick Config Demo'
-  ClientHeight = 347
-  ClientWidth = 523
+  ClientHeight = 493
+  ClientWidth = 720
   Color = clBtnFace
   Color = clBtnFace
   Font.Charset = DEFAULT_CHARSET
   Font.Charset = DEFAULT_CHARSET
   Font.Color = clWindowText
   Font.Color = clWindowText
@@ -14,49 +14,57 @@ object MainForm: TMainForm
   OldCreateOrder = False
   OldCreateOrder = False
   OnClose = FormClose
   OnClose = FormClose
   OnCreate = FormCreate
   OnCreate = FormCreate
+  DesignSize = (
+    720
+    493)
   PixelsPerInch = 96
   PixelsPerInch = 96
   TextHeight = 13
   TextHeight = 13
   object meInfo: TMemo
   object meInfo: TMemo
     Left = 8
     Left = 8
     Top = 8
     Top = 8
-    Width = 507
-    Height = 273
+    Width = 704
+    Height = 419
+    Anchors = [akLeft, akTop, akRight, akBottom]
     ReadOnly = True
     ReadOnly = True
     ScrollBars = ssBoth
     ScrollBars = ssBoth
     TabOrder = 0
     TabOrder = 0
   end
   end
   object btnLoadJson: TButton
   object btnLoadJson: TButton
-    Left = 208
-    Top = 287
+    Left = 407
+    Top = 433
     Width = 145
     Width = 145
     Height = 25
     Height = 25
+    Anchors = [akRight, akBottom]
     Caption = 'Load From Json'
     Caption = 'Load From Json'
     TabOrder = 1
     TabOrder = 1
     OnClick = btnLoadJsonClick
     OnClick = btnLoadJsonClick
   end
   end
   object btnSaveJson: TButton
   object btnSaveJson: TButton
-    Left = 359
-    Top = 287
+    Left = 558
+    Top = 433
     Width = 154
     Width = 154
     Height = 25
     Height = 25
+    Anchors = [akRight, akBottom]
     Caption = 'Save To Json'
     Caption = 'Save To Json'
     TabOrder = 2
     TabOrder = 2
     OnClick = btnSaveJsonClick
     OnClick = btnSaveJsonClick
   end
   end
   object btnLoadRegistry: TButton
   object btnLoadRegistry: TButton
-    Left = 208
-    Top = 318
+    Left = 407
+    Top = 464
     Width = 145
     Width = 145
     Height = 25
     Height = 25
+    Anchors = [akRight, akBottom]
     Caption = 'Load From Registry'
     Caption = 'Load From Registry'
     TabOrder = 3
     TabOrder = 3
     OnClick = btnLoadRegistryClick
     OnClick = btnLoadRegistryClick
   end
   end
   object SaveRegistry: TButton
   object SaveRegistry: TButton
-    Left = 359
-    Top = 318
+    Left = 558
+    Top = 464
     Width = 154
     Width = 154
     Height = 25
     Height = 25
+    Anchors = [akRight, akBottom]
     Caption = 'Save To Registry'
     Caption = 'Save To Registry'
     TabOrder = 4
     TabOrder = 4
     OnClick = SaveRegistryClick
     OnClick = SaveRegistryClick

+ 9 - 4
samples/delphi/QuickConfig/ConfigToFileAndRegistry/Main.pas

@@ -35,8 +35,12 @@ type
   end;
   end;
 
 
   TWorker = class
   TWorker = class
-    Name : string;
-    Active : Boolean;
+  private
+    fName : string;
+    fActive : Boolean;
+  published
+    property Name : string read fName write fName;
+    property Active : Boolean read fActive write fActive;
   end;
   end;
 
 
   TMyConfig = class(TAppConfig)
   TMyConfig = class(TAppConfig)
@@ -60,11 +64,11 @@ type
     property ModifyDate : TDateTime read fModifyDate write fModifyDate;
     property ModifyDate : TDateTime read fModifyDate write fModifyDate;
     property Title : string read fTitle write fTitle;
     property Title : string read fTitle write fTitle;
     property SessionName : string read fSessionName write fSessionName;
     property SessionName : string read fSessionName write fSessionName;
-  public
     property WorkList : TObjectList<TWorker> read fWorkList write fWorkList;
     property WorkList : TObjectList<TWorker> read fWorkList write fWorkList;
+  public
     constructor Create; override;
     constructor Create; override;
     destructor Destroy; override;
     destructor Destroy; override;
-    procedure DefaultValues;
+    procedure DefaultValues; override;
   end;
   end;
 
 
   TMainForm = class(TForm)
   TMainForm = class(TForm)
@@ -163,6 +167,7 @@ function  TMainForm.TestConfig(cConfig1, cConfig2 : TMyConfig) : Boolean;
 var
 var
   i : Integer;
   i : Integer;
 begin
 begin
+  Result := False;
   try
   try
     Assert(cConfig1.LastFilename = cConfig2.LastFilename);
     Assert(cConfig1.LastFilename = cConfig2.LastFilename);
     for i := Low(cConfig1.Sizes) to High(cConfig1.Sizes) do
     for i := Low(cConfig1.Sizes) to High(cConfig1.Sizes) do

+ 59 - 6
samples/delphi/QuickConfig/ConfigToFileAndRegistry/QuickConfigDemo.dproj

@@ -1,7 +1,7 @@
 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
     <PropertyGroup>
     <PropertyGroup>
         <ProjectGuid>{CDEBAD41-A241-457F-96FD-E367D8E3B0AE}</ProjectGuid>
         <ProjectGuid>{CDEBAD41-A241-457F-96FD-E367D8E3B0AE}</ProjectGuid>
-        <ProjectVersion>18.3</ProjectVersion>
+        <ProjectVersion>18.5</ProjectVersion>
         <FrameworkType>VCL</FrameworkType>
         <FrameworkType>VCL</FrameworkType>
         <MainSource>QuickConfigDemo.dpr</MainSource>
         <MainSource>QuickConfigDemo.dpr</MainSource>
         <Base>True</Base>
         <Base>True</Base>
@@ -101,11 +101,11 @@
     <PropertyGroup Condition="'$(Cfg_1_Win32)'!=''">
     <PropertyGroup Condition="'$(Cfg_1_Win32)'!=''">
         <DCC_RemoteDebug>false</DCC_RemoteDebug>
         <DCC_RemoteDebug>false</DCC_RemoteDebug>
         <AppEnableRuntimeThemes>true</AppEnableRuntimeThemes>
         <AppEnableRuntimeThemes>true</AppEnableRuntimeThemes>
-        <AppEnableHighDPI>true</AppEnableHighDPI>
+        <AppDPIAwarenessMode>PerMonitor</AppDPIAwarenessMode>
     </PropertyGroup>
     </PropertyGroup>
     <PropertyGroup Condition="'$(Cfg_1_Win64)'!=''">
     <PropertyGroup Condition="'$(Cfg_1_Win64)'!=''">
         <AppEnableRuntimeThemes>true</AppEnableRuntimeThemes>
         <AppEnableRuntimeThemes>true</AppEnableRuntimeThemes>
-        <AppEnableHighDPI>true</AppEnableHighDPI>
+        <AppDPIAwarenessMode>PerMonitor</AppDPIAwarenessMode>
     </PropertyGroup>
     </PropertyGroup>
     <PropertyGroup Condition="'$(Cfg_2)'!=''">
     <PropertyGroup Condition="'$(Cfg_2)'!=''">
         <DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols>
         <DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols>
@@ -115,11 +115,11 @@
     </PropertyGroup>
     </PropertyGroup>
     <PropertyGroup Condition="'$(Cfg_2_Win32)'!=''">
     <PropertyGroup Condition="'$(Cfg_2_Win32)'!=''">
         <AppEnableRuntimeThemes>true</AppEnableRuntimeThemes>
         <AppEnableRuntimeThemes>true</AppEnableRuntimeThemes>
-        <AppEnableHighDPI>true</AppEnableHighDPI>
+        <AppDPIAwarenessMode>PerMonitor</AppDPIAwarenessMode>
     </PropertyGroup>
     </PropertyGroup>
     <PropertyGroup Condition="'$(Cfg_2_Win64)'!=''">
     <PropertyGroup Condition="'$(Cfg_2_Win64)'!=''">
         <AppEnableRuntimeThemes>true</AppEnableRuntimeThemes>
         <AppEnableRuntimeThemes>true</AppEnableRuntimeThemes>
-        <AppEnableHighDPI>true</AppEnableHighDPI>
+        <AppDPIAwarenessMode>PerMonitor</AppDPIAwarenessMode>
     </PropertyGroup>
     </PropertyGroup>
     <ItemGroup>
     <ItemGroup>
         <DelphiCompile Include="$(MainSource)">
         <DelphiCompile Include="$(MainSource)">
@@ -178,7 +178,6 @@
                         <Operation>1</Operation>
                         <Operation>1</Operation>
                     </Platform>
                     </Platform>
                     <Platform Name="Win32">
                     <Platform Name="Win32">
-                        <RemoteDir>Contents\MacOS</RemoteDir>
                         <Operation>0</Operation>
                         <Operation>0</Operation>
                     </Platform>
                     </Platform>
                 </DeployClass>
                 </DeployClass>
@@ -188,6 +187,12 @@
                         <Operation>1</Operation>
                         <Operation>1</Operation>
                     </Platform>
                     </Platform>
                 </DeployClass>
                 </DeployClass>
+                <DeployClass Name="AndroidFileProvider">
+                    <Platform Name="Android">
+                        <RemoteDir>res\xml</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
                 <DeployClass Name="AndroidGDBServer">
                 <DeployClass Name="AndroidGDBServer">
                     <Platform Name="Android">
                     <Platform Name="Android">
                         <RemoteDir>library\lib\armeabi-v7a</RemoteDir>
                         <RemoteDir>library\lib\armeabi-v7a</RemoteDir>
@@ -224,6 +229,12 @@
                         <Operation>1</Operation>
                         <Operation>1</Operation>
                     </Platform>
                     </Platform>
                 </DeployClass>
                 </DeployClass>
+                <DeployClass Name="AndroidSplashStylesV21">
+                    <Platform Name="Android">
+                        <RemoteDir>res\values-v21</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
                 <DeployClass Name="Android_DefaultAppIcon">
                 <DeployClass Name="Android_DefaultAppIcon">
                     <Platform Name="Android">
                     <Platform Name="Android">
                         <RemoteDir>res\drawable</RemoteDir>
                         <RemoteDir>res\drawable</RemoteDir>
@@ -302,6 +313,11 @@
                         <Operation>1</Operation>
                         <Operation>1</Operation>
                         <Extensions>.framework</Extensions>
                         <Extensions>.framework</Extensions>
                     </Platform>
                     </Platform>
+                    <Platform Name="OSX64">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Operation>1</Operation>
+                        <Extensions>.framework</Extensions>
+                    </Platform>
                     <Platform Name="Win32">
                     <Platform Name="Win32">
                         <Operation>0</Operation>
                         <Operation>0</Operation>
                     </Platform>
                     </Platform>
@@ -324,6 +340,11 @@
                         <Operation>1</Operation>
                         <Operation>1</Operation>
                         <Extensions>.dylib</Extensions>
                         <Extensions>.dylib</Extensions>
                     </Platform>
                     </Platform>
+                    <Platform Name="OSX64">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Operation>1</Operation>
+                        <Extensions>.dylib</Extensions>
+                    </Platform>
                     <Platform Name="Win32">
                     <Platform Name="Win32">
                         <Operation>0</Operation>
                         <Operation>0</Operation>
                         <Extensions>.dll;.bpl</Extensions>
                         <Extensions>.dll;.bpl</Extensions>
@@ -347,6 +368,11 @@
                         <Operation>1</Operation>
                         <Operation>1</Operation>
                         <Extensions>.dylib</Extensions>
                         <Extensions>.dylib</Extensions>
                     </Platform>
                     </Platform>
+                    <Platform Name="OSX64">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Operation>1</Operation>
+                        <Extensions>.dylib</Extensions>
+                    </Platform>
                     <Platform Name="Win32">
                     <Platform Name="Win32">
                         <Operation>0</Operation>
                         <Operation>0</Operation>
                         <Extensions>.bpl</Extensions>
                         <Extensions>.bpl</Extensions>
@@ -369,6 +395,10 @@
                         <RemoteDir>Contents\Resources\StartUp\</RemoteDir>
                         <RemoteDir>Contents\Resources\StartUp\</RemoteDir>
                         <Operation>0</Operation>
                         <Operation>0</Operation>
                     </Platform>
                     </Platform>
+                    <Platform Name="OSX64">
+                        <RemoteDir>Contents\Resources\StartUp\</RemoteDir>
+                        <Operation>0</Operation>
+                    </Platform>
                     <Platform Name="Win32">
                     <Platform Name="Win32">
                         <Operation>0</Operation>
                         <Operation>0</Operation>
                     </Platform>
                     </Platform>
@@ -505,23 +535,41 @@
                         <Operation>1</Operation>
                         <Operation>1</Operation>
                     </Platform>
                     </Platform>
                 </DeployClass>
                 </DeployClass>
+                <DeployClass Name="ProjectOSXDebug">
+                    <Platform Name="OSX64">
+                        <RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
                 <DeployClass Name="ProjectOSXEntitlements">
                 <DeployClass Name="ProjectOSXEntitlements">
                     <Platform Name="OSX32">
                     <Platform Name="OSX32">
                         <RemoteDir>..\</RemoteDir>
                         <RemoteDir>..\</RemoteDir>
                         <Operation>1</Operation>
                         <Operation>1</Operation>
                     </Platform>
                     </Platform>
+                    <Platform Name="OSX64">
+                        <RemoteDir>..\</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
                 </DeployClass>
                 </DeployClass>
                 <DeployClass Name="ProjectOSXInfoPList">
                 <DeployClass Name="ProjectOSXInfoPList">
                     <Platform Name="OSX32">
                     <Platform Name="OSX32">
                         <RemoteDir>Contents</RemoteDir>
                         <RemoteDir>Contents</RemoteDir>
                         <Operation>1</Operation>
                         <Operation>1</Operation>
                     </Platform>
                     </Platform>
+                    <Platform Name="OSX64">
+                        <RemoteDir>Contents</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
                 </DeployClass>
                 </DeployClass>
                 <DeployClass Name="ProjectOSXResource">
                 <DeployClass Name="ProjectOSXResource">
                     <Platform Name="OSX32">
                     <Platform Name="OSX32">
                         <RemoteDir>Contents\Resources</RemoteDir>
                         <RemoteDir>Contents\Resources</RemoteDir>
                         <Operation>1</Operation>
                         <Operation>1</Operation>
                     </Platform>
                     </Platform>
+                    <Platform Name="OSX64">
+                        <RemoteDir>Contents\Resources</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
                 </DeployClass>
                 </DeployClass>
                 <DeployClass Required="true" Name="ProjectOutput">
                 <DeployClass Required="true" Name="ProjectOutput">
                     <Platform Name="Android">
                     <Platform Name="Android">
@@ -544,6 +592,10 @@
                         <RemoteDir>Contents\MacOS</RemoteDir>
                         <RemoteDir>Contents\MacOS</RemoteDir>
                         <Operation>1</Operation>
                         <Operation>1</Operation>
                     </Platform>
                     </Platform>
+                    <Platform Name="OSX64">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
                     <Platform Name="Win32">
                     <Platform Name="Win32">
                         <Operation>0</Operation>
                         <Operation>0</Operation>
                     </Platform>
                     </Platform>
@@ -583,6 +635,7 @@
                 <ProjectRoot Platform="Win32" Name="$(PROJECTNAME)"/>
                 <ProjectRoot Platform="Win32" Name="$(PROJECTNAME)"/>
                 <ProjectRoot Platform="OSX32" Name="$(PROJECTNAME).app"/>
                 <ProjectRoot Platform="OSX32" Name="$(PROJECTNAME).app"/>
                 <ProjectRoot Platform="Android" Name="$(PROJECTNAME)"/>
                 <ProjectRoot Platform="Android" Name="$(PROJECTNAME)"/>
+                <ProjectRoot Platform="OSX64" Name="$(PROJECTNAME).app"/>
                 <ProjectRoot Platform="iOSSimulator" Name="$(PROJECTNAME).app"/>
                 <ProjectRoot Platform="iOSSimulator" Name="$(PROJECTNAME).app"/>
             </Deployment>
             </Deployment>
             <Platforms>
             <Platforms>

BIN=BIN
samples/delphi/QuickConfig/ConfigToFileAndRegistry/QuickConfigDemo.res


+ 384 - 226
samples/delphi/QuickConfig/ConfigToFileAndRegistry/Win64/Debug/Config.json

@@ -1,231 +1,389 @@
 {
 {
-  "Sizes": [
-    23,
-    11,
-    554,
-    12,
-    34,
-    29,
-    77,
-    30,
-    48,
-    59,
-    773,
-    221,
-    98,
-    3,
-    22,
-    983,
-    122,
-    231,
-    433,
-    12,
-    31,
-    987
-  ],
-  "LastFilename": "library.txt",
-  "WindowPos": {
-    "PosX": 480,
-    "PosY": 0
-  },
-  "History": [
-    {
-      "Id": 0,
-      "Priority": 0,
-      "Redundant": true
-    },
-    {
-      "Id": 1,
-      "Priority": 0,
-      "Redundant": true
-    },
-    {
-      "Id": 2,
-      "Priority": 0,
-      "Redundant": true
-    },
-    {
-      "Id": 3,
-      "Priority": 0,
-      "Redundant": true
-    },
-    {
-      "Id": 4,
-      "Priority": 0,
-      "Redundant": true
-    },
-    {
-      "Id": 5,
-      "Priority": 0,
-      "Redundant": true
-    },
-    {
-      "Id": 6,
-      "Priority": 0,
-      "Redundant": true
-    },
-    {
-      "Id": 7,
-      "Priority": 0,
-      "Redundant": true
-    },
-    {
-      "Id": 8,
-      "Priority": 0,
-      "Redundant": true
-    },
-    {
-      "Id": 9,
-      "Priority": 0,
-      "Redundant": true
-    },
-    {
-      "Id": 10,
-      "Priority": 0,
-      "Redundant": true
-    },
-    {
-      "Id": 11,
-      "Priority": 0,
-      "Redundant": true
-    },
-    {
-      "Id": 12,
-      "Priority": 0,
-      "Redundant": true
-    },
-    {
-      "Id": 13,
-      "Priority": 0,
-      "Redundant": true
+    "Sizes": [
+        23,
+        11,
+        554,
+        12,
+        34,
+        29,
+        77,
+        30,
+        48,
+        59,
+        773,
+        221,
+        98,
+        3,
+        22,
+        983,
+        122,
+        231,
+        433,
+        12,
+        31,
+        987
+    ],
+    "LastFilename": "library.txt",
+    "WindowPos": {
+        "PosX": 480,
+        "PosY": 0
     },
     },
-    {
-      "Id": 14,
-      "Priority": 0,
-      "Redundant": true
+    "History": [
+        {
+            "Id": 0,
+            "Priority": "msLow",
+            "Redundant": true
+        },
+        {
+            "Id": 1,
+            "Priority": "msLow",
+            "Redundant": true
+        },
+        {
+            "Id": 2,
+            "Priority": "msLow",
+            "Redundant": true
+        },
+        {
+            "Id": 3,
+            "Priority": "msLow",
+            "Redundant": true
+        },
+        {
+            "Id": 4,
+            "Priority": "msLow",
+            "Redundant": true
+        },
+        {
+            "Id": 5,
+            "Priority": "msLow",
+            "Redundant": true
+        },
+        {
+            "Id": 6,
+            "Priority": "msLow",
+            "Redundant": true
+        },
+        {
+            "Id": 7,
+            "Priority": "msLow",
+            "Redundant": true
+        },
+        {
+            "Id": 8,
+            "Priority": "msLow",
+            "Redundant": true
+        },
+        {
+            "Id": 9,
+            "Priority": "msLow",
+            "Redundant": true
+        },
+        {
+            "Id": 10,
+            "Priority": "msLow",
+            "Redundant": true
+        },
+        {
+            "Id": 11,
+            "Priority": "msLow",
+            "Redundant": true
+        },
+        {
+            "Id": 12,
+            "Priority": "msLow",
+            "Redundant": true
+        },
+        {
+            "Id": 13,
+            "Priority": "msLow",
+            "Redundant": true
+        },
+        {
+            "Id": 14,
+            "Priority": "msLow",
+            "Redundant": true
+        },
+        {
+            "Id": 15,
+            "Priority": "msLow",
+            "Redundant": true
+        },
+        {
+            "Id": 0,
+            "Priority": "msLow",
+            "Redundant": true
+        },
+        {
+            "Id": 1,
+            "Priority": "msLow",
+            "Redundant": true
+        },
+        {
+            "Id": 2,
+            "Priority": "msLow",
+            "Redundant": true
+        },
+        {
+            "Id": 3,
+            "Priority": "msLow",
+            "Redundant": true
+        },
+        {
+            "Id": 4,
+            "Priority": "msLow",
+            "Redundant": true
+        },
+        {
+            "Id": 5,
+            "Priority": "msLow",
+            "Redundant": true
+        },
+        {
+            "Id": 6,
+            "Priority": "msLow",
+            "Redundant": true
+        },
+        {
+            "Id": 7,
+            "Priority": "msLow",
+            "Redundant": true
+        },
+        {
+            "Id": 8,
+            "Priority": "msLow",
+            "Redundant": true
+        },
+        {
+            "Id": 9,
+            "Priority": "msLow",
+            "Redundant": true
+        },
+        {
+            "Id": 10,
+            "Priority": "msLow",
+            "Redundant": true
+        },
+        {
+            "Id": 11,
+            "Priority": "msLow",
+            "Redundant": true
+        },
+        {
+            "Id": 12,
+            "Priority": "msLow",
+            "Redundant": true
+        },
+        {
+            "Id": 13,
+            "Priority": "msLow",
+            "Redundant": true
+        },
+        {
+            "Id": 14,
+            "Priority": "msLow",
+            "Redundant": true
+        },
+        {
+            "Id": 15,
+            "Priority": "msLow",
+            "Redundant": true
+        }
+    ],
+    "Complex": {
+        "Id": 1371232,
+        "Priority": "msHigh",
+        "Redundant": false
     },
     },
-    {
-      "Id": 15,
-      "Priority": 0,
-      "Redundant": true
+    "ModifyDate": "2018-12-10T14:09:02.245Z",
+    "Title": "a fresh title",
+    "SessionName": "First Session",
+    "WorkList": {
+        "List": [
+            {
+                "Name": "Process 0",
+                "Active": false
+            },
+            {
+                "Name": "Process 1",
+                "Active": false
+            },
+            {
+                "Name": "Process 2",
+                "Active": false
+            },
+            {
+                "Name": "Process 3",
+                "Active": false
+            },
+            {
+                "Name": "Process 4",
+                "Active": false
+            },
+            {
+                "Name": "Process 5",
+                "Active": false
+            },
+            {
+                "Name": "Process 6",
+                "Active": false
+            },
+            {
+                "Name": "Process 7",
+                "Active": false
+            },
+            {
+                "Name": "Process 8",
+                "Active": false
+            },
+            {
+                "Name": "Process 9",
+                "Active": false
+            },
+            {
+                "Name": "Process 10",
+                "Active": false
+            },
+            {
+                "Name": "Process 11",
+                "Active": false
+            },
+            {
+                "Name": "Process 12",
+                "Active": false
+            },
+            {
+                "Name": "Process 13",
+                "Active": false
+            },
+            {
+                "Name": "Process 14",
+                "Active": false
+            },
+            {
+                "Name": "Process 15",
+                "Active": false
+            },
+            {
+                "Name": "Process 16",
+                "Active": false
+            },
+            {
+                "Name": "Process 17",
+                "Active": false
+            },
+            {
+                "Name": "Process 18",
+                "Active": false
+            },
+            {
+                "Name": "Process 19",
+                "Active": false
+            },
+            {
+                "Name": "Process 20",
+                "Active": false
+            },
+            {
+                "Name": "Process 21",
+                "Active": false
+            },
+            {
+                "Name": "Process 22",
+                "Active": false
+            },
+            {
+                "Name": "Process 0",
+                "Active": false
+            },
+            {
+                "Name": "Process 1",
+                "Active": false
+            },
+            {
+                "Name": "Process 2",
+                "Active": false
+            },
+            {
+                "Name": "Process 3",
+                "Active": false
+            },
+            {
+                "Name": "Process 4",
+                "Active": false
+            },
+            {
+                "Name": "Process 5",
+                "Active": false
+            },
+            {
+                "Name": "Process 6",
+                "Active": false
+            },
+            {
+                "Name": "Process 7",
+                "Active": false
+            },
+            {
+                "Name": "Process 8",
+                "Active": false
+            },
+            {
+                "Name": "Process 9",
+                "Active": false
+            },
+            {
+                "Name": "Process 10",
+                "Active": false
+            },
+            {
+                "Name": "Process 11",
+                "Active": false
+            },
+            {
+                "Name": "Process 12",
+                "Active": false
+            },
+            {
+                "Name": "Process 13",
+                "Active": false
+            },
+            {
+                "Name": "Process 14",
+                "Active": false
+            },
+            {
+                "Name": "Process 15",
+                "Active": false
+            },
+            {
+                "Name": "Process 16",
+                "Active": false
+            },
+            {
+                "Name": "Process 17",
+                "Active": false
+            },
+            {
+                "Name": "Process 18",
+                "Active": false
+            },
+            {
+                "Name": "Process 19",
+                "Active": false
+            },
+            {
+                "Name": "Process 20",
+                "Active": false
+            },
+            {
+                "Name": "Process 21",
+                "Active": false
+            },
+            {
+                "Name": "Process 22",
+                "Active": false
+            }
+        ]
     }
     }
-  ],
-  "Complex": {
-    "Id": 35907504,
-    "Priority": 2,
-    "Redundant": false
-  },
-  "ModifyDate": "08/14/2018 00:45:53",
-  "Title": "a fresh title",
-  "SessionName": "First Session",
-  "WorkList": {
-    "FOwnsObjects": true,
-    "FListHelper": {
-      "FCount": 23
-    },
-    "FItems": [
-      {
-        "Name": "Process 0",
-        "Active": false
-      },
-      {
-        "Name": "Process 1",
-        "Active": false
-      },
-      {
-        "Name": "Process 2",
-        "Active": false
-      },
-      {
-        "Name": "Process 3",
-        "Active": false
-      },
-      {
-        "Name": "Process 4",
-        "Active": false
-      },
-      {
-        "Name": "Process 5",
-        "Active": false
-      },
-      {
-        "Name": "Process 6",
-        "Active": false
-      },
-      {
-        "Name": "Process 7",
-        "Active": false
-      },
-      {
-        "Name": "Process 8",
-        "Active": false
-      },
-      {
-        "Name": "Process 9",
-        "Active": false
-      },
-      {
-        "Name": "Process 10",
-        "Active": false
-      },
-      {
-        "Name": "Process 11",
-        "Active": false
-      },
-      {
-        "Name": "Process 12",
-        "Active": false
-      },
-      {
-        "Name": "Process 13",
-        "Active": false
-      },
-      {
-        "Name": "Process 14",
-        "Active": false
-      },
-      {
-        "Name": "Process 15",
-        "Active": false
-      },
-      {
-        "Name": "Process 16",
-        "Active": false
-      },
-      {
-        "Name": "Process 17",
-        "Active": false
-      },
-      {
-        "Name": "Process 18",
-        "Active": false
-      },
-      {
-        "Name": "Process 19",
-        "Active": false
-      },
-      {
-        "Name": "Process 20",
-        "Active": false
-      },
-      {
-        "Name": "Process 21",
-        "Active": false
-      },
-      {
-        "Name": "Process 22",
-        "Active": false
-      },
-      null,
-      null,
-      null,
-      null,
-      null,
-      null,
-      null,
-      null,
-      null
-    ],
-    "FComparer": {}
-  }
 }
 }

+ 32 - 5
samples/delphi/QuickJsonSerializer/JsonSerializer.dproj

@@ -4,10 +4,10 @@
         <MainSource>JsonSerializer.dpr</MainSource>
         <MainSource>JsonSerializer.dpr</MainSource>
         <Base>True</Base>
         <Base>True</Base>
         <Config Condition="'$(Config)'==''">Debug</Config>
         <Config Condition="'$(Config)'==''">Debug</Config>
-        <TargetedPlatforms>1025</TargetedPlatforms>
+        <TargetedPlatforms>1027</TargetedPlatforms>
         <AppType>Application</AppType>
         <AppType>Application</AppType>
         <FrameworkType>FMX</FrameworkType>
         <FrameworkType>FMX</FrameworkType>
-        <ProjectVersion>18.4</ProjectVersion>
+        <ProjectVersion>18.5</ProjectVersion>
         <Platform Condition="'$(Platform)'==''">Win32</Platform>
         <Platform Condition="'$(Platform)'==''">Win32</Platform>
     </PropertyGroup>
     </PropertyGroup>
     <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
     <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
@@ -59,6 +59,12 @@
         <Cfg_1>true</Cfg_1>
         <Cfg_1>true</Cfg_1>
         <Base>true</Base>
         <Base>true</Base>
     </PropertyGroup>
     </PropertyGroup>
+    <PropertyGroup Condition="('$(Platform)'=='Win64' and '$(Cfg_1)'=='true') or '$(Cfg_1_Win64)'!=''">
+        <Cfg_1_Win64>true</Cfg_1_Win64>
+        <CfgParent>Cfg_1</CfgParent>
+        <Cfg_1>true</Cfg_1>
+        <Base>true</Base>
+    </PropertyGroup>
     <PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''">
     <PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''">
         <Cfg_2>true</Cfg_2>
         <Cfg_2>true</Cfg_2>
         <CfgParent>Base</CfgParent>
         <CfgParent>Base</CfgParent>
@@ -94,6 +100,12 @@
         <Cfg_2>true</Cfg_2>
         <Cfg_2>true</Cfg_2>
         <Base>true</Base>
         <Base>true</Base>
     </PropertyGroup>
     </PropertyGroup>
+    <PropertyGroup Condition="('$(Platform)'=='Win64' and '$(Cfg_2)'=='true') or '$(Cfg_2_Win64)'!=''">
+        <Cfg_2_Win64>true</Cfg_2_Win64>
+        <CfgParent>Cfg_2</CfgParent>
+        <Cfg_2>true</Cfg_2>
+        <Base>true</Base>
+    </PropertyGroup>
     <PropertyGroup Condition="'$(Base)'!=''">
     <PropertyGroup Condition="'$(Base)'!=''">
         <DCC_E>false</DCC_E>
         <DCC_E>false</DCC_E>
         <DCC_F>false</DCC_F>
         <DCC_F>false</DCC_F>
@@ -209,6 +221,12 @@
     <PropertyGroup Condition="'$(Base_Win64)'!=''">
     <PropertyGroup Condition="'$(Base_Win64)'!=''">
         <UWP_DelphiLogo44>$(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_44.png</UWP_DelphiLogo44>
         <UWP_DelphiLogo44>$(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_44.png</UWP_DelphiLogo44>
         <UWP_DelphiLogo150>$(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_150.png</UWP_DelphiLogo150>
         <UWP_DelphiLogo150>$(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_150.png</UWP_DelphiLogo150>
+        <DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;$(DCC_Namespace)</DCC_Namespace>
+        <BT_BuildType>Debug</BT_BuildType>
+        <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
+        <VerInfo_Keys>CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=</VerInfo_Keys>
+        <VerInfo_Locale>1033</VerInfo_Locale>
+        <Manifest_File>$(BDS)\bin\default_app.manifest</Manifest_File>
     </PropertyGroup>
     </PropertyGroup>
     <PropertyGroup Condition="'$(Cfg_1)'!=''">
     <PropertyGroup Condition="'$(Cfg_1)'!=''">
         <DCC_Define>RELEASE;$(DCC_Define)</DCC_Define>
         <DCC_Define>RELEASE;$(DCC_Define)</DCC_Define>
@@ -218,7 +236,11 @@
     </PropertyGroup>
     </PropertyGroup>
     <PropertyGroup Condition="'$(Cfg_1_Win32)'!=''">
     <PropertyGroup Condition="'$(Cfg_1_Win32)'!=''">
         <AppEnableRuntimeThemes>true</AppEnableRuntimeThemes>
         <AppEnableRuntimeThemes>true</AppEnableRuntimeThemes>
-        <AppEnableHighDPI>true</AppEnableHighDPI>
+        <AppDPIAwarenessMode>PerMonitor</AppDPIAwarenessMode>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Cfg_1_Win64)'!=''">
+        <AppEnableRuntimeThemes>true</AppEnableRuntimeThemes>
+        <AppDPIAwarenessMode>PerMonitorV2</AppDPIAwarenessMode>
     </PropertyGroup>
     </PropertyGroup>
     <PropertyGroup Condition="'$(Cfg_2)'!=''">
     <PropertyGroup Condition="'$(Cfg_2)'!=''">
         <DCC_Define>DEBUG;$(DCC_Define)</DCC_Define>
         <DCC_Define>DEBUG;$(DCC_Define)</DCC_Define>
@@ -239,8 +261,13 @@
     </PropertyGroup>
     </PropertyGroup>
     <PropertyGroup Condition="'$(Cfg_2_Win32)'!=''">
     <PropertyGroup Condition="'$(Cfg_2_Win32)'!=''">
         <AppEnableRuntimeThemes>true</AppEnableRuntimeThemes>
         <AppEnableRuntimeThemes>true</AppEnableRuntimeThemes>
-        <AppEnableHighDPI>true</AppEnableHighDPI>
         <VerInfo_Keys>CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName)</VerInfo_Keys>
         <VerInfo_Keys>CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName)</VerInfo_Keys>
+        <AppDPIAwarenessMode>PerMonitor</AppDPIAwarenessMode>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Cfg_2_Win64)'!=''">
+        <AppEnableRuntimeThemes>true</AppEnableRuntimeThemes>
+        <AppDPIAwarenessMode>PerMonitorV2</AppDPIAwarenessMode>
+        <VerInfo_Keys>CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=</VerInfo_Keys>
     </PropertyGroup>
     </PropertyGroup>
     <ItemGroup>
     <ItemGroup>
         <DelphiCompile Include="$(MainSource)">
         <DelphiCompile Include="$(MainSource)">
@@ -277,7 +304,7 @@
                 <Platform value="iOSSimulator">False</Platform>
                 <Platform value="iOSSimulator">False</Platform>
                 <Platform value="OSX32">False</Platform>
                 <Platform value="OSX32">False</Platform>
                 <Platform value="Win32">True</Platform>
                 <Platform value="Win32">True</Platform>
-                <Platform value="Win64">False</Platform>
+                <Platform value="Win64">True</Platform>
             </Platforms>
             </Platforms>
         </BorlandProject>
         </BorlandProject>
         <ProjectFileVersion>12</ProjectFileVersion>
         <ProjectFileVersion>12</ProjectFileVersion>

BIN=BIN
samples/delphi/QuickJsonSerializer/JsonSerializer.res