Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Registry KeyExists function AddressVilation (https://www.delphipraxis.net/108366-registry-keyexists-function-addressvilation.html)

k4ni 12. Feb 2008 13:46


Registry KeyExists function AddressVilation
 
hallo DP,

Um zu prüfen ob ein eintrag ein einer TreeView liste schon existiert oder nicht benütz ich die registry weil ich es anderst nicht hinbekomme.
Da hab ich mir eine kleine function geschrieben, hier:

Delphi-Quellcode:
function RegExists(Entry: String): boolean;
var
regist: TRegistry;
begin
result := false;
regist.Create;
regist.RootKey := HKEY_LOCAL_MACHINE;
if regist.KeyExists('Software\phpbb_manager\Server'+Entry) then
result := true;
end;
Hab ich aufgerufen mit:

Delphi-Quellcode:
procedure TForm2.AddServerBtnClick(Sender: TObject);
var
Ibox: String;
begin
Ibox := Inputbox('Add new server', 'Enter name of the new server:', '');
if not RegExists(Ibox) then
//if not (Ibox = '') then
ServerView.Items.AddChild(nil, Inputbox('Add new server', 'Enter name of the new server:', 'New server'));
{Und hier eben noch den registry-eintrag machen}
end;
Ich verstehe nicht wieso dor eine addressViolation kommt, habs auch schon versucht indem ich zuerst "OpenKey" mache, ging aber auch nicht :(

Ich hoffe ich könnt mir helfen
danke im vorraus :)

MStoll 12. Feb 2008 14:03

Re: Registry KeyExists function AddressVilation
 
Hi,

du solltest statt "regist.create" schreiben:
Delphi-Quellcode:
regist := TRegistry.Create;
try
 ...dein Code...
finally
   regist.Free;
end;
Gruß
Michael

DeddyH 12. Feb 2008 14:16

Re: Registry KeyExists function AddressVilation
 
Delphi-Quellcode:
regist.Create;
:shock:
Delphi-Quellcode:
regist := TRegistry.Create;
Und der Tipp mit dem try-finally-Block ist auch nicht verkehrt ;)

k4ni 12. Feb 2008 14:20

Re: Registry KeyExists function AddressVilation
 
ay ay ay.
Ich immer mit meinen leichtsinnsfehler :oops:
Jop danke noch für the try - finally tipp, gleich mal hinzugefügt. 8)

Vielen dank :)

Tyrael Y. 12. Feb 2008 14:23

Re: Registry KeyExists function AddressVilation
 
Und wenn du schon mal dabei bist, kannst du das result auch nur einmal schreiben

Delphi-Quellcode:
result := regist.KeyExists('Software\phpbb_manager\Server'+Entry);

Luckie 12. Feb 2008 15:19

Re: Registry KeyExists function AddressVilation
 
Und wenn du schon mal dabei bist, könntest du das ganze auch ohne Admin-Rechten lauffähig machen, in dem die den Schlüssel nur lesend öffnest mit TRegistry.Create(KEY_OPENREAD).


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:01 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz