Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi ReadBool Ini-File (https://www.delphipraxis.net/75162-readbool-ini-file.html)

pilic 15. Aug 2006 11:00


ReadBool Ini-File
 
Hi,

mein Problem ist, dass mein Programm die Informationen in der ini nicht richtig ausliest. Es soll beim Starten der Anwendung den Status der Checkboxen ermitteln. Das funktioniert aber nicht. Sie bleiben leer, da ich als dritten Parameter false angegeben habe. Ich habe schon die Tipps in anderen Threads ausprobiert, aber keiner hat mir geholfen. Da das Schreiben in die Datei ja funktioniert, poste ich mal nur den Bereich in dem ausgelesen werden soll.

Delphi-Quellcode:
procedure TForm1.FormActivate(Sender: TObject);
begin
ini:=TIniFile.create(ExtractFilePath(ParamStr(0))+
'settings.ini');
  with ini do
  try
  CheckBox1.Checked := ReadBool('myOne', '1', False);
  CheckBox2.Checked := ReadBool('myOne', '2', False);
  CheckBox3.Checked := ReadBool('myOne', '3', False);
  CheckBox4.Checked := ReadBool('myOne', '4', False);
  finally
    ini.free;
end;
end;
Cheerio

mkinzler 15. Aug 2006 11:15

Re: ReadBool Ini-File
 
Poste mal die Ini-Datei.

pilic 15. Aug 2006 11:21

Hier die ini
 
Noch eine Frage: Fürs nächste Mal, welchen Code soll ich benutzen um eine ini-Datei zu posten? :wink:
Zitat:

[myOne]
1=1
2=1
3=0
4=0

mkinzler 15. Aug 2006 11:23

Re: ReadBool Ini-File
 
Beneene die Eigenschaft 1 zum Test mal in c1 um.

pilic 15. Aug 2006 11:30

Re: ReadBool Ini-File
 
Hat auch nicht geholfen. Kanns auch sein, dass es an einer Einstellung an der IDE liegt?

Jürgen Thomas 15. Aug 2006 11:44

Re: Hier die ini
 
Zitat:

Zitat von pilic
[myOne]
1=1
2=1
3=0
4=0

Deine Werte sind integer, nämlich 0/1. Eigentlich speichert TIniFile bool-Werte mit:
Zitat:

1=True
2=True
3=False
4=False
Wenn es eine Version gibt, die statt True/False 1/0 speichert, oder wenn Du die Ini-Datei nicht verändern willst, dann versuche doch Folgendes:
Delphi-Quellcode:
with TIniFile.create(ExtractFilePath(ParamStr(0)) + 'settings.ini')
do begin
  try
    CheckBox1.Checked := ReadInteger('myOne', '1', 0) = 1;
    CheckBox2.Checked := ReadInteger('myOne', '2', 0) = 1;
    CheckBox3.Checked := ReadInteger('myOne', '3', 0) = 1;
    CheckBox4.Checked := ReadInteger('myOne', '4', 0) = 1;
  finally
    free;
  end;
end;
Viel Erfolg! Jürgen

pilic 15. Aug 2006 11:51

Re: ReadBool Ini-File
 
Danke,

aber das funktioniert leider auch nicht. Du meinst also, dass es an der IDE liegt, aber müsste es dann nicht bekannt sein, dass es bei meiner Version dieses Problem/diesen Bug gibt. Ich habe es aber auch schon mit einer if-Abfrage probiert, aber nicht ausdrücklich mit Integerwerten. Dann werde ich das mal ausprobieren.

freak4fun 15. Aug 2006 11:54

Re: ReadBool Ini-File
 
Lädst du auch die richtige Datei, bzw. ist die Datei vorhanden? Lass dir doch mal den Dateipfad ausgeben. :)

MfG
freak

pilic 15. Aug 2006 11:57

Re: ReadBool Ini-File
 
Ich arbeite noch nicht lange mit Delphi und deswegen bin ich mir auch nicht ganz sicher, aber ich meine dass das
Delphi-Quellcode:
TIniFile.create(ExtractFilePath(ParamStr(0)) + 'settings.ini')
zu bedeuten hat, dass die Datei auf jeden Fall im richtigen Verzeichnis liegt.

Jürgen Thomas 15. Aug 2006 11:59

Re: ReadBool Ini-File
 
An der IDE eher nicht, allenfalls am Compiler oder an Runtime-Packages. Aber auch das ist äußerst unwahrscheinlich.

Vergleiche doch mal den Code, mit dem der Checked-Status in die ini-Datei geschrieben wird (oder stelle diesen Abschnitt hier zur Verfügung), mit den Read-Befehlen; vielleicht fällt dadurch ein wesentlicher Unterschied auf.

Zitat:

Zitat von pilic
Ich arbeite noch nicht lange mit Delphi und deswegen bin ich mir auch nicht ganz sicher, aber ich meine dass das
Delphi-Quellcode:
TIniFile.create(ExtractFilePath(ParamStr(0)) + 'settings.ini')
zu bedeuten hat, dass die Datei auf jeden Fall im richtigen Verzeichnis liegt.

So ist es dann, wenn sie beim Lesen und Schreiben so aufgerufen wird, mit Sicherheit.

Jürgen


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:02 Uhr.
Seite 1 von 3  1 23      

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