Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi TRegistry.KeyExists (https://www.delphipraxis.net/9503-tregistry-keyexists.html)

TopDogg 27. Sep 2003 23:59


TRegistry.KeyExists
 
h!,
folgende Source

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  reg: TRegistry;
begin
  reg := TRegistry.Create;
  reg.RootKey := HKEY_CURRENT_USER;
  reg.OpenKey('Software\KT', TRUE);     // wird hier gemacht
  if reg.KeyExists('Key') = TRUE then   // gibt es noch nich, also Result = FALSE                -->|
    Edit1.Text := reg.ReadString('Key') // lies ihn raus. sollte beim ersten mal übersprungen werden |
  else                                  //                                                           |
    begin                               //                                                           |
    reg.WriteString('Key', 'topdogg');  // schreib ihn rein                                      <--|
    Edit1.Text := reg.ReadString('Key'); // lies ihn raus
    end;
  reg.Free;
end;
Klapt toll beim ersten mal.
Key existiert nicht und daher steht dan in EditFeld auch 'topdogg'.
Wenn ich den wert dann mit Regedit(oder mit was anderem) ändere, in z.B. '123blabla', und wieder auf dem Button drücke, steht wieder im EditFeld 'topdogg' anstat von '123blabla'. Sollte meiner Meinung nach nich passieren.

Verstanden???
Wen nicht, dann hier das problem.
Mein prog soll in die Registry beim allerersten Start ein String(ein Password) reinschreiben.
Beim zweiten und weiteren Starts soll er den String, also das Password nur lesen, nicht ändern, da ich das Password später manual ändern will.

Wer mich immer noch nicht versteht(nehm ich nicht übel, tu ich sebls manchaml nicht :lol:), der erklärt mir bitte nur KeyExists func. Wann sie TRUE und wann sie FALS gibt.

ThnX

[edit=sakura]Überschrift angepasst! Mfg, sakura[/edit]

DataCool 28. Sep 2003 00:15

Re: TRegistry.KeyExists HILFEEEEEEEEEEEEE
 
Hi,

Du verwechselst KeyExist mit ValueExists !! Tausch das aus und es funzzt !!

Zu jedem OpenKey sollte auch mal ein CloseKey kommen :wink:

Grus Data

TopDogg 28. Sep 2003 00:26

Re: TRegistry.KeyExists HILFEEEEEEEEEEEEE
 
:) :o :-D :lol:
Danke.

Es kommt noch mehr an sicherheit dazu.
Ein try ... finally, und CloseKey, usw......


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:39 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