Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi einfache Sache (Registry) aber ich kriegs net hin :( (https://www.delphipraxis.net/30657-einfache-sache-registry-aber-ich-kriegs-net-hin.html)

MeaChrome 27. Sep 2004 16:40


einfache Sache (Registry) aber ich kriegs net hin :(
 
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
reg: TRegistry;
testab, hallo: string;
begin
reg:=TRegistry.Create;
reg.RootKey:=HKEY_LOCAL_MACHINE;
reg.OpenKeyReadOnly('Software\test');
reg.ReadString('testab');
reg.Free;
if testab = hallo then
CheckBox1.Checked:=true;
end;
Problem ist die CheckBox ist nun immer checked auch wenn es den Wert überhaupt nicht gibt.
Wer kann mir helfen?

alcaeus 27. Sep 2004 16:43

Re: einfache Sache (Registry) aber ich kriegs net hin :(
 
Hi MeaChrome,

versuch mal
Delphi-Quellcode:
testab := Reg.ReadString('testab')
zu schreiben.

Greetz
alcaeus

[add]Außerdem ist die Variable hallo nicht initialisiert, also ist das Ergebnis nicht sicher.[/add]

Luckie 27. Sep 2004 16:48

Re: einfache Sache (Registry) aber ich kriegs net hin :(
 
Es fehlt außerdem der Ressourcenschutzblock und Delphi-Referenz durchsuchenOpenKey liefert einen Funktionwert zurück, den man überprüfen kann. ;)

ipworks 27. Sep 2004 16:52

Re: einfache Sache (Registry) aber ich kriegs net hin :(
 
Versuch's mal mit

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
reg: TRegistry;
testab, hallo: string;
begin
  hallo:='Hallo';
  try
    reg:=TRegistry.Create;
    reg.RootKey:=HKEY_LOCAL_MACHINE;
    reg.OpenKeyReadOnly('Software\test');
    testab:=reg.ReadString('testab');
  finally
    reg:=nil;
    reg.Free;
  end;
  if testab = hallo then CheckBox1.Checked:=true;
end;

Pseudemys Nelsoni 27. Sep 2004 16:54

Re: einfache Sache (Registry) aber ich kriegs net hin :(
 
und wozu das "reg := nil" ?

alcaeus 27. Sep 2004 16:54

Re: einfache Sache (Registry) aber ich kriegs net hin :(
 
Hi ipworks,

Zitat:

Zitat von ipworks
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
    reg:=nil;
    reg.Free;

bedenke dass Free nichts macht, falls reg nil ist. Die Aufrufe müssen in umgekehrter Reihenfolge sein.

Greetz
alcaeus

Luckie 27. Sep 2004 16:56

Re: einfache Sache (Registry) aber ich kriegs net hin :(
 
Immer noch schlecht:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
reg: TRegistry;
testab, hallo: string;
begin
  hallo:='Hallo';
  reg:=TRegistry.Create;
  try
    reg.RootKey:=HKEY_LOCAL_MACHINE;
    if reg.OpenKeyReadOnly('Software\test') then
    begin
      testab:=reg.ReadString('testab');
      reg.CloseKey;
    end
    else
      ShowMessage('Schlüssel konnte nicht geöffnet werden');
  finally
    FreeAndNil(reg);
  end;
  if testab = hallo then CheckBox1.Checked:=true;
end;
Und warum wird kein Boolean gespeichert in der Registry, um die Checkbox gleich damit zu setzten?

ipworks 27. Sep 2004 16:58

Re: einfache Sache (Registry) aber ich kriegs net hin :(
 
Nachtrag:

Delphi-Quellcode:
reg:=nil;
ist nicht zwingend.

MeaChrome 27. Sep 2004 17:12

Re: einfache Sache (Registry) aber ich kriegs net hin :(
 
Danke für die schnellen Antworten!
Es funktioniert nun..

Pseudemys Nelsoni 27. Sep 2004 17:29

Re: einfache Sache (Registry) aber ich kriegs net hin :(
 
Zitat:

Zitat von ipworks
Nachtrag:

Delphi-Quellcode:
reg:=nil;
ist nicht zwingend.


um nicht zu sagen unnütz 8)


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:24 Uhr.
Seite 1 von 2  1 2      

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