Zitat von
Knotti2005:
Warum geht das nicht? Speichern geht...
Speichern
Delphi-Quellcode:
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
var
s: boolean;
begin
if form1.CheckBox1.Checked = true then
s:= true
else
s:= false;
ini.WriteBool('TAPI','Aktiviert',s);
ini.Free;
end;
Laden
Delphi-Quellcode:
var
a: boolean;
begin
ini.ReadBool('TAPI','Aktiviert',a);
ini.Free;
if a = true then
begin
form2.TapiLine1.DeviceName:=Combobox1.Text;
form1.CheckBox1.enabled:=true;
form1.CheckBox1.checked:=true;
form1.ComboBox1.Enabled:= false;
end
else
begin
form1.CheckBox1.Enabled:=falsE;
form1.CheckBox1.checked:=false;
form1.ComboBox1.Enabled:=true;
end;
Leider wird die Checkbox1 nicht aktiviert und auch nicht der Hacken gesetzt...
besser so:
speichern:
Delphi-Quellcode:
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
// wo wird hier egtl. die INI erstellt?
ini.WriteBool('TAPI','Aktiviert', Form1.Checkbox1.Checked);
ini.Free;
end;
laden:
Delphi-Quellcode:
var
a: boolean;
begin
// wo wird hier die INI erstellt? oder bleibt die das ganze programm über offen?
// besser wäre die INI neu zu öffnen: INI := TIniFile.Create(fSettingsFilename);
// verziert mit einem try..except block wäre natürlich nochmal schöner.
a := ini.ReadBool('TAPI','Aktiviert', False); // False wird hier als Standardwert verwendet, falls der Wert 'TAPI'/'AKTIVIERT' nicht vorhanden ist.
ini.Free;
form2.TapiLine1.DeviceName := Combobox1.Text; // was soll das hier?
form1.CheckBox1.Enabled := a;
form1.CheckBox1.Checked := a; // wozu checken, wenn sie nicht enabled ist?
form1.ComboBox1.Enabled := not a;
was dir luckie im grunde sagen will ist, dass ReadBool eine Funktion ist, die einen Wert (den gelesenen Boolean Wert) zurückgibt. Diesen Wert sollst du für deine Einstellungen verwenden, nicht den Standardwert (s. Kommentar oben).