Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   InI-Datei über CheckBox ändern (https://www.delphipraxis.net/188987-ini-datei-ueber-checkbox-aendern.html)

strom 24. Apr 2016 13:45

InI-Datei über CheckBox ändern
 
InI- Datei wird nicht geändert! Warum?
Delphi-Quellcode:
procedure TForm2.CheckBox1Click(Sender: TObject);
var
  ini: TIniFile;
  filename: String;
begin
 if CheckBox1.Checked = false then
  begin
   filename := ExtractFilePath(ParamStr(0)) + 'Einstellungen.ini';
   ini := TIniFile.Create(filename);
  try
   ini.WriteString('mySQL', 'Autologin', 'true');
  finally
    ini.Free
  end;
  end else
   begin
     filename := ExtractFilePath(ParamStr(0)) + 'Einstellungen.ini';
   ini := TIniFile.Create(filename);
  try
   ini.WriteString('mySQL', 'Autologin', 'false');
  finally
    ini.Free;
  end;
   end;
end;

rNoob 24. Apr 2016 13:49

AW: InI-Datei über CheckBox ändern
 
Bei mir funktioniert dein obiger Code bestens.

Dennoch würde ich es so machen:
Delphi-Quellcode:
procedure TForm1.CheckBox1Click(Sender: TObject);
var
 ini: TIniFile;
begin
 ini := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'Einstellungen.ini');

 try
  ini.WriteBool('mySQL', 'Autologin', CheckBox1.Checked);
 finally
  ini.Free
 end;
end;
Abfrage dementsprechend ini.ReadBool und nicht ini.ReadString.

Rollo62 24. Apr 2016 14:39

AW: InI-Datei über CheckBox ändern
 
Das UpdateFile sollte im Free gemacht werden, also eigentlich sollte dein Code funktionieren.
Aber könnte man noch vor das Free setzen, um ganz sicher zu gehen.

rNoob hat es ja schon viel aufgeräumter geschrieben, so würde ich es auch machen.

Falls es trotzdem nicht geht kann es auch an 64K Grenze liegen, wenn du noch 1000 andere Sachen da drin hast.
Ich nehme daher immer TMemIniFile, das hat solche alten 64K Grenzen nicht.

Rollo

Bernhard Geyer 24. Apr 2016 15:30

AW: InI-Datei über CheckBox ändern
 
Liegt die Exe evtl. unter "Programme"?

scrat1979 24. Apr 2016 17:28

AW: InI-Datei über CheckBox ändern
 
Hast du die ini-Datei primär von Hand erstellt?

strom 25. Apr 2016 18:54

AW: InI-Datei über CheckBox ändern
 
hey,
in der INI-Datei steht:

[Receive]
Port=5554
Active=false

aber die Checkbox ist Checked = true :-(

Delphi-Quellcode:
procedure TForm1.FormShow(Sender: TObject);
 var
  ini: TIniFile;
  filename: String;
begin
  Filename := ExtractFilePath(ParamStr(0)) + 'Settings.ini';
  ini := TIniFile.Create(filename);
   try
    mySQL.Server := ini.ReadString('mySQL','Server','');
    mySQL.Database := ini.ReadString('mySQL','Database','');
    Receive.Port := ini.ReadInteger('Receive','Port',0);
    Receive.Active := ini.ReadBool('Receive','Active', True); // das geht nicht
    Form2.CheckBox1.Checked := ini.ReadBool('Receive','Active', True); // das geht nicht
     Form2.Edit1.Text := ini.ReadString('mySQL','Server','');
    Form2.Edit2.Text := ini.ReadString('mySQL','Database','');
    Form2.Edit3.Text := ini.ReadString('Receive','Port','');
  finally
    ini.Free;
  end;
end;

DeddyH 25. Apr 2016 18:57

AW: InI-Datei über CheckBox ändern
 
Bist Du sicher, dass das in der Ini "false" heißen muss? Ich hätte eher auf eine 0 getippt.

strom 25. Apr 2016 19:14

AW: InI-Datei über CheckBox ändern
 
Ja, Danke!

eine 0 ist richtig!

Luckie 25. Apr 2016 19:52

AW: InI-Datei über CheckBox ändern
 
Hätte es da nicht eine Fehlermeldung oder Warnung geben müssen?

DeddyH 25. Apr 2016 20:11

AW: InI-Datei über CheckBox ändern
 
Ich habe gerade kein Delphi zur Verfügung, aber es könnte sein, dass in jedem Fehlerfall(Ident nicht vorhanden etc.) der angegebene Standardwert zurückgegeben wird.


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