AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Registry Problem

Ein Thema von dazar_t · begonnen am 4. Dez 2007 · letzter Beitrag vom 4. Dez 2007
Antwort Antwort
dazar_t

Registriert seit: 1. Dez 2007
Ort: NRW
118 Beiträge
 
Delphi 2007 Professional
 
#1

Registry Problem

  Alt 4. Dez 2007, 15:17
Guten Tag..

Ich wollte mir einen kleinen wecker proggen, doch hab ich ein problem...
Wenn ich die Check-box einmal anklicke geht es doch wen ich sie dan wieder anklicke also unchecke kommt bei meinem Code immer eine Fehlermeldung :Fehler beim Setzten der Daten für 'Wecker'
Ich arbeite zum ersten mal mit der Registry und kan mir leider nicht weiter helfen.
Ich wollte nämlich das wenn man die CheckBox klickt der wert (1-0,an-aus)gespeichert wird und beim start des Programmes entweder die CheckBox checked ist oder ebend leer.

Hier der Code
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Registry;

type
  TForm1 = class(TForm)
    GroupBox1: TGroupBox;
    CheckBox1: TCheckBox;
    Label1: TLabel;
    OpenDialog1: TOpenDialog;
    Edit1: TEdit;
    Button1: TButton;
    Label2: TLabel;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure CheckBox1Click(Sender: TObject);
  private
    {Private-Deklarationen }
  public

  end;

var
  Form1: TForm1;
  Reg : TRegistry;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
sound: String;
begin
OpenDialog1.Execute;
sound := opendialog1.FileName;
Edit1.Text := sound;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Reg := TRegistry.Create;
Reg.RootKey := HKEY_CURRENT_USER;
Reg.OpenKey('Software\DaZaRt', True);
Label2.Enabled:=False;
Button1.Enabled:=False;
Button2.Enabled:=False;
Edit1.Enabled:=False;
end;



procedure TForm1.CheckBox1Click(Sender: TObject);
begin
if CheckBox1.Checked then
  begin
    Label2.Enabled:=True;
    Button1.Enabled:=True;
    Button2.Enabled:=True;
    Edit1.Enabled:=True;
    try
      Reg.WriteString('Wecker','1');
    finally
      Reg.Free;
    end;
  end
else
  begin
    Label2.Enabled:=False;
    Button1.Enabled:=False;
    Button2.Enabled:=False;
    Edit1.Enabled:=False;
    try
       Reg.WriteString('Wecker','0');
    finally
      Reg.Free;
    end;
  end;
end;

end.
Daniel
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Registry Problem

  Alt 4. Dez 2007, 15:39
Beim ersten Checkbox Klick rufts du ein
reg.Free ; auf, und deshalb ist bei einem weiteren Klick deine Referenz zu reg verloren... Folge: Es knallt dir ne Fehlermeldung um die Ohren.
  Mit Zitat antworten Zitat
dazar_t

Registriert seit: 1. Dez 2007
Ort: NRW
118 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Registry Problem

  Alt 4. Dez 2007, 15:45
Achjaaa xD
Danke schön
Daniel
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Registry Problem

  Alt 4. Dez 2007, 19:46
Warum ist die Variable reg überhaupt global? Hättest du sie lokal deklariert, wäre dir das nicht passiert.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:54 Uhr.
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