Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Laden aus INI ini.ReadBool (https://www.delphipraxis.net/62598-laden-aus-ini-ini-readbool.html)

Knotti2005 7. Feb 2006 00:25


Laden aus INI ini.ReadBool
 
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...

Luckie 7. Feb 2006 00:29

Re: Laden aus INI ini.ReadBool
 
Erstens ist es eine Funktion. Zweitens machst du den selben Fehler nun schon zum zweiten mal und drittens gibt es eine Hilfe mit kompletten Beispiel.

Knotti2005 7. Feb 2006 00:37

Re: Laden aus INI ini.ReadBool
 
Ich versteh aber nicht wo der Fehler liegt...

:wall:

dahead 7. Feb 2006 00:55

Re: Laden aus INI ini.ReadBool
 
Zitat:

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).

Luckie 7. Feb 2006 02:17

Re: Laden aus INI ini.ReadBool
 
Zitat:

Zitat von Knotti2005
Ich versteh aber nicht wo der Fehler liegt...

Dann solltest du dir mal ein Grundlagentutorial angucken: http://www.christian-stelzmann.de/in...crashkurs.html Insbesondere das Kapitel über "Funktionen und Prozeduren". Und ich würde dir ganz besonders ans herz legen ruhig mal den Verweisen und den Beispielen zu folgen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:59 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