Browse Source

Merge branch 'develop'

Unknown 6 years ago
parent
commit
ebbc4dfe5b
4 changed files with 40 additions and 18 deletions
  1. 28 1
      Quick.Config.Registry.pas
  2. 10 7
      Quick.FileMonitor.pas
  3. 2 4
      Quick.Json.Serializer.pas
  4. 0 6
      Quick.Threads.pas

+ 28 - 1
Quick.Config.Registry.pas

@@ -328,11 +328,17 @@ var
 begin
   Result := False;
   if cCurrentKey <> '' then fRegConfig.OpenKeyReadOnly(cCurrentKey);
-  // else Exit;
   //check if exists RegKey numeric (indicates is a Array)
   RegKeyList := TStringList.Create;
   try
+    {$IFNDEF FPC}
     fRegConfig.GetKeyNames(RegKeyList);
+    {$ELSE}
+    try
+      fRegConfig.GetKeyNames(RegKeyList);
+    except
+    end;
+    {$ENDIF}
     for RegKey in RegKeyList do
       if TryStrToInt(RegKey,n) then
       begin
@@ -345,7 +351,14 @@ begin
   //check if exists RegValue numeric (indicates is a Array)
   RegValueList := TStringList.Create;
   try
+    {$IFNDEF FPC}
     fRegConfig.GetValueNames(RegValueList);
+    {$ELSE}
+    try
+      fRegConfig.GetValueNames(RegValueList);
+    except
+    end;
+    {$ENDIF}
     for RegValue in RegValueList do
       if TryStrToInt(RegValue,n) then
       begin
@@ -490,7 +503,14 @@ begin
   //read root values
   RegValueList := TStringList.Create;
   try
+    {$IFNDEF FPC}
     fRegConfig.GetValueNames(RegValueList);
+    {$ELSE}
+    try
+      fRegConfig.GetValueNames(RegValueList);
+    except
+    end;
+    {$ENDIF}
     for RegValue in RegValueList do
     begin
       newObj.AddElement(ReadRegValue(cCurrentKey,RegValue));
@@ -501,7 +521,14 @@ begin
   //read root keys
   RegKeyList := TStringList.Create;
   try
+    {$IFNDEF FPC}
     fRegConfig.GetKeyNames(RegKeyList);
+    {$ELSE}
+    try
+      fRegConfig.GetKeyNames(RegKeyList);
+    except
+    end;
+    {$ENDIF}
     for RegKey in RegKeyList do
     begin
       fRegConfig.OpenKeyReadOnly(cCurrentKey + '\' + RegKey);

+ 10 - 7
Quick.FileMonitor.pas

@@ -7,7 +7,7 @@
   Author      : Kike Pérez
   Version     : 1.2
   Created     : 11/09/2017
-  Modified    : 25/01/2019
+  Modified    : 29/01/2019
 
   This file is part of QuickLib: https://github.com/exilon/QuickLib
 
@@ -65,9 +65,10 @@ type
     fModifedDate : TDateTime;
     fCurrentMonitorNotify : TMonitorNotify;
     fOnChangeNotify : TFileChangeNotify;
-    procedure Execute; override;
-    procedure SetStatus(Status : Boolean);
+    procedure SetEnabled(Status : Boolean);
     procedure NotifyEvent;
+  protected
+    procedure Execute; override;
   public
     constructor Create;
     destructor Destroy; override;
@@ -75,7 +76,7 @@ type
     property Interval : Integer read fInterval write fInterval;
     property Notifies : TMonitorWatch read fNotifies write fNotifies;
     property OnFileChange : TFileChangeNotify read fOnChangeNotify write fOnChangeNotify;
-    property Enabled : Boolean read fEnabled write SetStatus;
+    property Enabled : Boolean read fEnabled write SetEnabled;
   end;
 
   TQuickFileMonitor = TFileMonitor;
@@ -96,12 +97,12 @@ begin
   {$ELSE}
   fTickEvent := TSimpleEvent.Create(nil,True,False,'');
   {$ENDIF}
-  Self.Resume;
 end;
 
 destructor TFileMonitor.Destroy;
 begin
   if not Terminated then Terminate;
+  Self.WaitFor;
   fTickEvent.SetEvent;
   fTickEvent.Free;
   inherited;
@@ -111,7 +112,7 @@ procedure TFileMonitor.Execute;
 var
   LastModifiedDate : TDateTime;
 begin
-  inherited;
+   inherited;
   while not Terminated do
   begin
     fCurrentMonitorNotify := mnNone;
@@ -163,8 +164,10 @@ begin
   end;
 end;
 
-procedure TFileMonitor.SetStatus(Status : Boolean);
+procedure TFileMonitor.SetEnabled(Status : Boolean);
 begin
+  if (Status = True) and (Started = False) then Start;
+
   if fEnabled <> Status then
   begin
     fEnabled := Status;

+ 2 - 4
Quick.Json.Serializer.pas

@@ -447,7 +447,6 @@ function TRTTIJson.DeserializeList(aObject: TObject; const aName : string; const
 var
   ctx : TRttiContext;
   rType : TRttiType;
-  rfield : TRttiField;
   jarray : TJSONArray;
   member : TJSONPair;
   rvalue : TValue;
@@ -468,7 +467,7 @@ begin
   jArray := TJSONObject.ParseJSONValue(member.ToJSON) as TJSONArray;
   try
     rvalue := DeserializeDynArray(rProp.PropertyType.Handle,Result,jArray);
-    i := jarray.Count;
+    //i := jarray.Count;
   finally
     jArray.Free;
   end;
@@ -766,7 +765,6 @@ end;
 function TRTTIJson.IsAllowedProperty(aObject : TObject; const aPropertyName : string) : Boolean;
 var
   propname : string;
-  cname : string;
 begin
   Result := True;
   propname := aPropertyName.ToLower;
@@ -1010,7 +1008,6 @@ var
   jPair : TJSONPair;
   jValue : TJSONValue;
   i : Integer;
-  s : string;
 begin
   Result := TJSONPair.Create(aName,nil);
   //Result.JsonString := TJSONString(aName);
@@ -1023,6 +1020,7 @@ begin
           try
             for i := 0 to aValue.GetArrayLength - 1 do
             begin
+              jValue := nil;
               jPair := Serialize(aName,GetValue(PPByte(aValue.GetReferenceToRawData)^ + rDynArray.ElementType.TypeSize * i, rDynArray.ElementType));
               try
                 //jValue := TJsonValue(jPair.JsonValue.Clone);

+ 0 - 6
Quick.Threads.pas

@@ -399,7 +399,6 @@ type
     fCondVar : TSimpleEvent;
     fTaskList : TScheduledTaskList;
     fRemoveTaskAfterExpiration : Boolean;
-    procedure ExpireTask;
   public
     constructor Create(aTaskList : TScheduledTaskList);
     destructor Destroy; override;
@@ -1588,11 +1587,6 @@ begin
   end;
 end;
 
-procedure TScheduler.ExpireTask;
-begin
-
-end;
-
 function TScheduler.Add(aTask: TScheduledTask): Integer;
 begin
   Result := fTaskList.Add(aTask);