From 1cfce12c09cbf4ce544151976a611c1ff04297b1 Mon Sep 17 00:00:00 2001 From: marco Date: Sun, 21 Oct 2007 13:58:06 +0000 Subject: [PATCH] * Fix for regclosekey problem. git-svn-id: trunk@8884 - --- packages/fcl-registry/src/registry.pp | 25 +++++++++++++------------ packages/fcl-registry/src/winreg.inc | 5 +++++ packages/fcl-registry/src/xregreg.inc | 7 +++++++ 3 files changed, 25 insertions(+), 12 deletions(-) diff --git a/packages/fcl-registry/src/registry.pp b/packages/fcl-registry/src/registry.pp index 5db61aeea2..465f987cd8 100644 --- a/packages/fcl-registry/src/registry.pp +++ b/packages/fcl-registry/src/registry.pp @@ -101,6 +101,7 @@ type function ValueExists(const Name: string): Boolean; procedure CloseKey; + procedure CloseKey(key:HKEY); procedure GetKeyNames(Strings: TStrings); procedure GetValueNames(Strings: TStrings); procedure MoveKey(const OldName, NewName: string; Delete: Boolean); @@ -505,7 +506,7 @@ begin SetCurrentKey(CurKey); end; finally - regclosekey(sectkey); + closekey(sectkey); end; end else @@ -534,7 +535,7 @@ begin SetCurrentKey(CurKey); end; finally - regclosekey(sectkey); + closekey(sectkey); end; end else @@ -563,7 +564,7 @@ begin SetCurrentKey(CurKey); end; finally - regclosekey(sectkey); + closekey(sectkey); end; end else @@ -592,7 +593,7 @@ begin SetCurrentKey(CurKey); end; finally - regclosekey(sectkey); + closekey(sectkey); end; end else @@ -638,7 +639,7 @@ begin SetCurrentKey(CurKey); end; finally - regclosekey(sectkey); + closekey(sectkey); end; end else @@ -667,7 +668,7 @@ begin SetCurrentKey(CurKey); end; finally - regclosekey(sectkey); + closekey(sectkey); end; end else @@ -704,7 +705,7 @@ begin SetCurrentKey(CurKey); end; finally - regclosekey(sectkey); + closekey(sectkey); end; end end; @@ -728,7 +729,7 @@ begin SetCurrentKey(CurKey); end; finally - regclosekey(sectkey); + closekey(sectkey); end; end end; @@ -752,7 +753,7 @@ begin SetCurrentKey(CurKey); end; finally - regclosekey(sectkey); + closekey(sectkey); end; end end; @@ -776,7 +777,7 @@ begin SetCurrentKey(CurKey); end; finally - regclosekey(sectkey); + closekey(sectkey); end; end end; @@ -800,7 +801,7 @@ begin SetCurrentKey(CurKey); end; finally - regclosekey(sectkey); + closekey(sectkey); end; end end; @@ -824,7 +825,7 @@ begin SetCurrentKey(CurKey); end; finally - regclosekey(sectkey); + closekey(sectkey); end; end end; diff --git a/packages/fcl-registry/src/winreg.inc b/packages/fcl-registry/src/winreg.inc index 795db02ac2..e290e1f6ff 100644 --- a/packages/fcl-registry/src/winreg.inc +++ b/packages/fcl-registry/src/winreg.inc @@ -258,6 +258,11 @@ begin end end; +procedure TRegistry.CloseKey(key:HKEY); +begin + RegCloseKey(CurrentKey) +end; + procedure TRegistry.ChangeKey(Value: HKey; const Path: String); begin CloseKey; diff --git a/packages/fcl-registry/src/xregreg.inc b/packages/fcl-registry/src/xregreg.inc index 07ac43caae..e07784d66d 100644 --- a/packages/fcl-registry/src/xregreg.inc +++ b/packages/fcl-registry/src/xregreg.inc @@ -239,3 +239,10 @@ begin TXMLRegistry(FSysData).Flush; TXMLRegistry(FSysData).SetRootKey(TXMLRegistry(FSysData).RootKey); end; + +procedure TRegistry.CloseKey(key:HKEY); + +begin + TXMLRegistry(FSysData).Flush; + TXMLRegistry(FSysData).SetRootKey(TXMLRegistry(FSysData).RootKey); +end;