Zu einem "OpenKey" gehört immer auch ein "CloseKey".
kann man ... muß man aber nicht
Delphi-Quellcode:
function TRegistry.OpenKey(const Key: string; Cancreate: boolean): Boolean;
begin
Result := CheckResult(RegOpenKeyEx(GetBaseKey(Relative), PChar(S), 0,
FAccess, TempKey));
...
if Result then
begin
...
ChangeKey(TempKey, S); <<<<<
end;
end;
procedure TRegistry.ChangeKey(Value: HKey; const Path: string);
begin
CloseKey; <<<<<
...;
end;
Und nochmal zum CloseKey vor Free.
Delphi-Quellcode:
destructor TRegistry.Destroy;
begin
CloseKey; <<<<<
inherited;
end;
PS:
Delphi-Quellcode:
Finally
Registry.CloseKey;
Registry.Free;
End;
und das ist Syntaktisch auch falsch.
(auch wenn es hier vermutlich in CloseKey nie zu einer
Exception kommt)
Vor dem Free ruft man nix mehr auf ... denn wenn da was passieren würde, dann wäre der Resourcenschutzblock Wirkungslos, da Free dann dennoch nicht aufgerufen würde.