Browse Source

* Fix for regclosekey problem.

git-svn-id: trunk@8884 -
marco 18 years ago
parent
commit
1cfce12c09

+ 13 - 12
packages/fcl-registry/src/registry.pp

@@ -101,6 +101,7 @@ type
     function ValueExists(const Name: string): Boolean;
     function ValueExists(const Name: string): Boolean;
 
 
     procedure CloseKey;
     procedure CloseKey;
+    procedure CloseKey(key:HKEY);
     procedure GetKeyNames(Strings: TStrings);
     procedure GetKeyNames(Strings: TStrings);
     procedure GetValueNames(Strings: TStrings);
     procedure GetValueNames(Strings: TStrings);
     procedure MoveKey(const OldName, NewName: string; Delete: Boolean);
     procedure MoveKey(const OldName, NewName: string; Delete: Boolean);
@@ -505,7 +506,7 @@ begin
               SetCurrentKey(CurKey);
               SetCurrentKey(CurKey);
               end;
               end;
           finally
           finally
-            regclosekey(sectkey);
+            closekey(sectkey);
             end;
             end;
         end
         end
        else
        else
@@ -534,7 +535,7 @@ begin
               SetCurrentKey(CurKey);
               SetCurrentKey(CurKey);
               end;
               end;
           finally
           finally
-            regclosekey(sectkey);
+            closekey(sectkey);
             end;
             end;
         end
         end
        else
        else
@@ -563,7 +564,7 @@ begin
               SetCurrentKey(CurKey);
               SetCurrentKey(CurKey);
               end;
               end;
           finally
           finally
-            regclosekey(sectkey);
+            closekey(sectkey);
             end;
             end;
         end
         end
        else
        else
@@ -592,7 +593,7 @@ begin
               SetCurrentKey(CurKey);
               SetCurrentKey(CurKey);
               end;
               end;
           finally
           finally
-            regclosekey(sectkey);
+            closekey(sectkey);
             end;
             end;
         end
         end
        else
        else
@@ -638,7 +639,7 @@ begin
               SetCurrentKey(CurKey);
               SetCurrentKey(CurKey);
               end;
               end;
           finally
           finally
-            regclosekey(sectkey);
+            closekey(sectkey);
             end;
             end;
         end
         end
        else
        else
@@ -667,7 +668,7 @@ begin
               SetCurrentKey(CurKey);
               SetCurrentKey(CurKey);
               end;
               end;
           finally
           finally
-            regclosekey(sectkey);
+            closekey(sectkey);
             end;
             end;
         end
         end
        else
        else
@@ -704,7 +705,7 @@ begin
               SetCurrentKey(CurKey);
               SetCurrentKey(CurKey);
               end;
               end;
           finally
           finally
-            regclosekey(sectkey);
+            closekey(sectkey);
             end;
             end;
         end
         end
     end;          
     end;          
@@ -728,7 +729,7 @@ begin
               SetCurrentKey(CurKey);
               SetCurrentKey(CurKey);
               end;
               end;
           finally
           finally
-            regclosekey(sectkey);
+            closekey(sectkey);
             end;
             end;
         end
         end
     end;
     end;
@@ -752,7 +753,7 @@ begin
               SetCurrentKey(CurKey);
               SetCurrentKey(CurKey);
               end;
               end;
           finally
           finally
-            regclosekey(sectkey);
+            closekey(sectkey);
             end;
             end;
         end
         end
     end;          
     end;          
@@ -776,7 +777,7 @@ begin
               SetCurrentKey(CurKey);
               SetCurrentKey(CurKey);
               end;
               end;
           finally
           finally
-            regclosekey(sectkey);
+            closekey(sectkey);
             end;
             end;
         end
         end
     end;          
     end;          
@@ -800,7 +801,7 @@ begin
               SetCurrentKey(CurKey);
               SetCurrentKey(CurKey);
               end;
               end;
           finally
           finally
-            regclosekey(sectkey);
+            closekey(sectkey);
             end;
             end;
         end
         end
     end;
     end;
@@ -824,7 +825,7 @@ begin
               SetCurrentKey(CurKey);
               SetCurrentKey(CurKey);
               end;
               end;
           finally
           finally
-            regclosekey(sectkey);
+            closekey(sectkey);
             end;
             end;
         end
         end
     end;
     end;

+ 5 - 0
packages/fcl-registry/src/winreg.inc

@@ -258,6 +258,11 @@ begin
     end
     end
 end;
 end;
 
 
+procedure TRegistry.CloseKey(key:HKEY);
+begin
+  RegCloseKey(CurrentKey)
+end;
+
 procedure TRegistry.ChangeKey(Value: HKey; const Path: String);
 procedure TRegistry.ChangeKey(Value: HKey; const Path: String);
 begin
 begin
   CloseKey;
   CloseKey;

+ 7 - 0
packages/fcl-registry/src/xregreg.inc

@@ -239,3 +239,10 @@ begin
   TXMLRegistry(FSysData).Flush;
   TXMLRegistry(FSysData).Flush;
   TXMLRegistry(FSysData).SetRootKey(TXMLRegistry(FSysData).RootKey);
   TXMLRegistry(FSysData).SetRootKey(TXMLRegistry(FSysData).RootKey);
 end;
 end;
+
+procedure TRegistry.CloseKey(key:HKEY);
+
+begin
+  TXMLRegistry(FSysData).Flush;
+  TXMLRegistry(FSysData).SetRootKey(TXMLRegistry(FSysData).RootKey);
+end;