Thema: Delphi Registry Lesen

Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.151 Beiträge
 
Delphi 12 Athens
 
#13

AW: Registry Lesen

  Alt 7. Jul 2010, 07:17
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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 7. Jul 2010 um 07:21 Uhr)
  Mit Zitat antworten Zitat