Mion fkerber,
vielleicht besser so
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
Reg: TRegistry;
begin
Reg := TRegistry.Create;
try
Reg.RootKey := HKEY_CURRENT_USER;
if Reg.OpenKeyReadOnly('Software\Microsoft\Windows\CurrentVersion\Run') then begin
try
Button1.Visible := not Reg.ValueExists('DerNameDesWertes');
finally
Reg.CloseKey;
end;
end;
finally
FreeAndNil(Reg);
end;
end;
zum einen sollte man sicherstellen, dass das Objekt (Reg) auch wieder freigegeben wird, deshalb der eine try/finally Block, dann muss man auch den Key öffnen in dem man einen Wert auf Existenz prüfen will.
Und dann muss man diesen geöffneten Schlüssel auch wieder schliessen.
Da ValueExists einen boolschen Wert zurückgibt, und in Abhängigkeit des Wertes ein boolscher Wert gesetzt werden soll, kann man sich die If-Abfrage auch sparen, und den Rückgabewert direkt verwenden.