![]() |
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; |
AW: InI-Datei über CheckBox ändern
Bei mir funktioniert dein obiger Code bestens.
Dennoch würde ich es so machen:
Delphi-Quellcode:
Abfrage dementsprechend ini.ReadBool und nicht ini.ReadString.
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; |
AW: InI-Datei über CheckBox ändern
Das
![]() 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 |
AW: InI-Datei über CheckBox ändern
Liegt die Exe evtl. unter "Programme"?
|
AW: InI-Datei über CheckBox ändern
Hast du die ini-Datei primär von Hand erstellt?
|
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; |
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.
|
AW: InI-Datei über CheckBox ändern
Ja, Danke!
eine 0 ist richtig! |
AW: InI-Datei über CheckBox ändern
Hätte es da nicht eine Fehlermeldung oder Warnung geben müssen?
|
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 19:56 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz