Browse Source

Add intermediate typecast to Pointer to avoid error

Pierre Muller 3 years ago
parent
commit
4eefbebaea

+ 5 - 1
packages/fcl-db/src/base/dbcoll.pp

@@ -59,6 +59,8 @@ type
     Procedure LoadFromDataset(ADataset : TDataset);
   end;
   
+  TDBCollectionItemClass = Class of TDBCollectionItem;
+
   { TDBCollection }
 
   TDBCollection = Class(TCollection)
@@ -69,6 +71,8 @@ type
     Procedure LoadFromDataset(Dataset : TDataset);
   end;
 
+  TDBCollectionClass = Class of TDBCollection;
+
 implementation
 
 resourcestring
@@ -186,7 +190,7 @@ Var
   M : TFieldMap;
 
 begin
-  M:=TDBCollectionItem(ItemClass).FieldMapClass.Create(Dataset);
+  M:=TDBCollectionItemClass(ItemClass).FieldMapClass.Create(Dataset);
   Try
     DoLoadFromFieldMap(M);
   finally

+ 2 - 2
packages/fcl-extra/src/daemonapp.pp

@@ -528,7 +528,7 @@ begin
   I:=DaemonClasses.IndexOf(DN);
   If (I=-1) then
     I:=DaemonClasses.Add(DN);
-  DaemonClasses.Objects[I]:=TObject(AClass);
+  DaemonClasses.Objects[I]:=TObject(Pointer(AClass));
 end;
 
 Procedure CreateDaemonApplication;
@@ -1119,7 +1119,7 @@ begin
     If (J=-1) then
       DaemonError(SErrUnknownDaemonClass,[D.DaemonClassName])
     else
-      D.FDaemonClass:=TCustomDaemonClass(DaemonClasses.Objects[J]);
+      D.FDaemonClass:=TCustomDaemonClass(Pointer(DaemonClasses.Objects[J]));
     end;
 
 end;

+ 3 - 3
packages/fppkg/src/fprepos.pp

@@ -453,8 +453,8 @@ class procedure TFPCustomPackagesStructure.RegisterPackagesStructureClass(
 begin
   if not Assigned(FRegisteredPackagesStructureClasses) then
     FRegisteredPackagesStructureClasses := TFPObjectList.Create(False);
-  if FRegisteredPackagesStructureClasses.IndexOf(TObject(APackagesStructureClass)) = -1 then
-    FRegisteredPackagesStructureClasses.Add(TObject(APackagesStructureClass));
+  if FRegisteredPackagesStructureClasses.IndexOf(TObject(Pointer(APackagesStructureClass))) = -1 then
+    FRegisteredPackagesStructureClasses.Add(TObject(Pointer(APackagesStructureClass)));
 end;
 
 class function TFPCustomPackagesStructure.GetPackagesStructureForRepositoryOptionSection(
@@ -468,7 +468,7 @@ begin
     begin
       for i := 0 to FRegisteredPackagesStructureClasses.Count -1 do
         begin
-          PackageStructureClass := TFPCustomPackagesStructureClass(FRegisteredPackagesStructureClasses.Items[I]);
+          PackageStructureClass := TFPCustomPackagesStructureClass(Pointer(FRegisteredPackagesStructureClasses.Items[I]));
           if PackageStructureClass.GetRepositoryOptionSectionClass = ARepositoryOptionSection.ClassType then
             begin
               Result := PackageStructureClass;