Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi nochmal Wert aus der Registry auslesen (https://www.delphipraxis.net/5627-nochmal-wert-aus-der-registry-auslesen.html)

Trouble_Maker 13. Jun 2003 17:40


nochmal Wert aus der Registry auslesen
 
Hiho...
ich möchte einen Wert aus der Registry auslesen:
Bei meinem Programm habe ich 3 Design eingebaut... es soll das selbe design bei start des Programms aufgerufen werden wie es vorher eingestellt wurde.
Hier mein formclose:
Code:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var regist: TRegistry;
begin
  regist:=TRegistry.Create;
  regist.RootKey:=HKEY_CURRENT_USER;
  regist.OpenKey('Software\Trouble_Maker\Secure\Design', true);

  if RadioButton1.checked = true then
     regist.WriteInteger('Design', 1);

  if RadioButton2.checked = true then
     regist.WriteInteger('Design', 2);

   if RadioButton3.checked = true then
     regist.WriteInteger('Design', 3);

  regist.free;
end;
so ... soweit klappt das... jetzt möcht ich, dass wenn das Programm gestartet wird, also formcreate, den Integer auslesen und dann das Design wieder aufrufen...
wie mache ich das mit einer if-Funktion

habe sowas wie hier probier:
Code:
  //aus Registry auslesen:
  regist:=TRegistry.Create;
  regist.RootKey:=HKEY_CURRENT_USER;
    if regist.ReadInteger('Software\Trouble_Maker\Secure\Design',);
    ...
das funktioniert aber nicht...

bitte um Hilfe

Danke

Duffy 13. Jun 2003 17:44

Hallo Trouble_Maker,
Du mußt den Schlüssel zuerst mit Openkey öffnen. Dann kannst erst Du deinen Wert auslesen.
bye

r_kerber 13. Jun 2003 17:46

Wenn ich Deinen Code zum Schreiben richtig interpretiere, dann sollte es
Delphi-Quellcode:
if regist.ReadInteger('Software\Trouble_Maker\Secure\Design\Design',);
heißen. Kommt bei der if-Anweisung nach der schließenden Klammer eigentlich noch ein Vergleich?

Trouble_Maker 13. Jun 2003 17:49

hmm ok habe das vorher noch reingeschrieben
aber wie lese ich jetzt konkret den Wert aus ?!?

so klappts nich:
Code:
  //aus Registry auslesen:
  regist:=TRegistry.Create;
  regist.RootKey:=HKEY_CURRENT_USER;
  regist.OpenKey('Software\Trouble_Maker\Secure\Design', true);

    if regist.ReadInteger('Software\Trouble_Maker\Secure\Design\', 1);
    then showmessage('hallo');
er meint zuviele Parameter

wie geht das mit dem auslesen mit if-Anweisung ?!?

cu Trouble_Maker

r_kerber 13. Jun 2003 17:51

Delphi-Quellcode:
if regist.ReadInteger('Design', -1) = 1;
    then showmessage('hallo');

Duffy 13. Jun 2003 17:57

Hallo Trouble_Maker,
den Schlüssel hast Du offen, jetzt den Wert aber nur den Wert auslesen.
Zitat:

//aus Registry auslesen:
regist:=TRegistry.Create;
regist.RootKey:=HKEY_CURRENT_USER;
regist.OpenKey('Software\Trouble_Maker\Secure\Desi gn', true);

if regist.ReadInteger('Software\Trouble_Maker\Secure\ Design\', 1);
then showmessage('hallo');
Aber wie heißt der Wert, der ausgelesen werden soll?
bye

Christian Seehase 13. Jun 2003 17:58

Moin Trouble Maker,

erstmal fehlen Dir beim Schreiben schon mal zwei try/finally Blöcke und ein CloseKey. Dann wäre eine Prüfung (if OpenKey...) ganz sinnvoll.
Beim Auslesen dürfen das Alles wohl auch fehlen wie's aussieht.

Der Fehler beim Auslesen:
Du gibst bei ReadInteger den Key an ('Software\Trouble_Maker\Secure\Design'), musst aber den Valuenamen angeben ('Design').

Trouble_Maker 13. Jun 2003 18:39

ah... cool danke

hab jetzt leider keine Zeit mehr um das auszutesten!

werde dann morgen sagen, obs geklappt hat oder nicht ^^

danke

Trouble_Maker

Trouble_Maker 13. Jun 2003 19:20

hmm habs jetzt doch nochmal getestet:

@r_kerber: dein Code funktioniert nicht ... "Zu viele Parameter"

kA wieso ...

kann jemand mal einen richtigen Code posten ?!?

Trouble_Maker

Trouble_Maker 13. Jun 2003 19:23

ah ...
habs gerade hinbekommen:

so ist der Code richtig:

Code:
  //aus Registry auslesen:
  regist:=TRegistry.Create;
  regist.RootKey:=HKEY_CURRENT_USER;
  regist.OpenKey('Software\Trouble_Maker\Secure\Design', true);

   if regist.ReadInteger('Design') = 1
        then showmessage('klappt');
danke für eure Mühe

cu Trouble_Maker


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:51 Uhr.
Seite 1 von 2  1 2      

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