Autor Beitrag
einfach112
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 168

xp
del7
BeitragVerfasst: So 17.09.06 03:24 
Hallo ! ich würde gerne bei einem Onlick ereigniss einer checkbox was in die Registry schreiben !
Doch leider bekomme ich immer oben genannten Fehler und das programm schmiert ab.


vieleicht zum besseren Verständniss mal das was bisher Funktioniert hat:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
procedure TForm1.CheckBox1Click(Sender: TObject);
begin
if checkbox1.Checked = true then begin
checkbox1.Font.Color:=clblack;

end
else begin
checkbox1.Font.Color:=clgray;
reg := TRegistry.Create;
try
reg.Rootkey := HKEY_CURRENT_USER;
//hier wird der Hauptschlüssel festgelegt
if reg.OpenKey('SOFTWARE\name\prog', true) then
//Schlüssel öffnen, bei True wird der Schlüssel erstellt, falls er noch nicht
//existiert
begin
reg.WriteInteger('Kategorie1', 0);
// Integerwert unter Eigenschaft2 abspeichern
reg.CloseKey;
// Schlüssel schließen
end
finally
reg.Free;
end;
 end;

end;



Das geht ! also wenn die checkbox beim Starten des Programms checked ist dann schreibt der mir bei einem klick auf checkbox1 auch eine 0 in die Registry .
Beim nächsten start des Programms wird somit die checkbox als unchecked dargestellt ! alles wunderbar !
Nur jetzt muss auch noch das gegenteil machbar sein oder ?!
Naja ich habe es dann mal einfach den quelltext kopiert (somit kanns kein genereller fehler sein....)

nur das prob ist wenn ich mein programm starten will mit folgendem code kommt der oben genannt fehler !

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
procedure TForm1.CheckBox1Click(Sender: TObject);
begin
if checkbox1.Checked = true then begin
checkbox1.Font.Color:=clblack;
reg := TRegistry.Create;
try
reg.Rootkey := HKEY_CURRENT_USER;
//hier wird der Hauptschlüssel festgelegt
if reg.OpenKey('SOFTWARE\name\prog', true) then
//Schlüssel öffnen, bei True wird der Schlüssel erstellt, falls er noch nicht
//existiert
begin

reg.WriteInteger('Kategorie1', 1);
// Integerwert unter Eigenschaft2 abspeichern
reg.CloseKey;
// Schlüssel schließen
end
finally
reg.Free;
end;



end
else begin
checkbox1.Font.Color:=clgray;
reg := TRegistry.Create;
try
reg.Rootkey := HKEY_CURRENT_USER;
//hier wird der Hauptschlüssel festgelegt
if reg.OpenKey('SOFTWARE\name\prog', true) then
//Schlüssel öffnen, bei True wird der Schlüssel erstellt, falls er noch nicht
//existiert
begin

reg.WriteInteger('Kategorie1', 0);
// Integerwert unter Eigenschaft2 abspeichern
reg.CloseKey;
// Schlüssel schließen
end
finally
reg.Free;
end;
 end;

end;



Ich verstehe einfach nicht wo der fehler hier sein soll ?????
Hoffe es kann jemand den ganzen wirrwarr hier verstehen LOL

Also wie immer Vielen Dank im voraus für Ideen und Antworten ....
MfG
einfach112


//Nachtrag !
Also das ist alles so seltsam ....
wenn ich das programm mit dem 2ten quelltext starte dann startet das programm ja schon garnicht mehr....
und ich habe bis dahin ja noch garnicht checkbox1.click machen können ....

_________________
sorry bin noob !