Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Kleines Problem mit INI (https://www.delphipraxis.net/101136-kleines-problem-mit-ini.html)

Jack23 8. Okt 2007 22:05


Kleines Problem mit INI
 
Was ist daran falsch?
ini.ReadInteger('Test','Eigenschaft','1');

Progman 8. Okt 2007 22:07

Re: Kleines Problem mit INI
 
nichts, außer dass ReadInteger eine funktion ist, die einen Wert zurückgibt, also:
x:=ReadInter(.....) ;)

Jack23 8. Okt 2007 22:10

Re: Kleines Problem mit INI
 
Wenn ich das ausführe bekomme ich aber immer die Meldung: Inkompatible Typen: 'Integer' und 'string'

Ach ich glaube das muss so aussehen oder?

Delphi-Quellcode:
ini.ReadInteger('Test','Eigenschaft',0);
Und wie bekomme ich dann diese if abfrage hin?

Delphi-Quellcode:

if 'Eigenschaft' = '1' then
    CheckBox1.Checked

Progman 8. Okt 2007 22:11

Re: Kleines Problem mit INI
 
ach, sorry, hab ich übersehen:
ini.ReadInteger('Test','Eigenschaft',1); <- so klappts

Jack23 8. Okt 2007 22:13

Re: Kleines Problem mit INI
 
Hehe

Ich auch. Habe es oben noch schnell editiert. Du warst aber schneller.

Progman 8. Okt 2007 22:17

Re: Kleines Problem mit INI
 
Delphi-Quellcode:
var x: Integer;

x:=ini.ReadInteger('Test','Eigenschaft',0);

if x = 1 then CheckBox1.Checked;

Jack23 8. Okt 2007 22:24

Re: Kleines Problem mit INI
 
Hm irgend etwas stimmt da noch nicht. CheckBox 1 wird nie angekreuzt. Obwohl der Wert 1 ist.
Mein Code.
Oben das auslesen unten das schreiben:
Delphi-Quellcode:
procedure TForm8.FormShow(Sender: TObject);
var ini: TIniFile;x: Integer;
begin
  ini:=TIniFile.Create('test.ini');
  try
    x:=ini.ReadInteger('Test','Eigenschaft',0);
      if x = 1 then CheckBox1.Checked;
        finally
    ini.free;
  end;
end;

procedure TForm8.onclick(Sender: TObject);
var ini: TIniFile;
begin
  ini:=TIniFile.create(ExtractFilePath(ParamStr(0))+
    'test.ini');
    if CheckBox1.Checked then
    ini.WriteString('Test','Eigenschaft','1');
    if not CheckBox1.Checked then
    ini.WriteString('Test','Eigenschaft','0');


    ini.free;
    end;

ringli 8. Okt 2007 22:28

Re: Kleines Problem mit INI
 
Guck dir doch mal als erstes die Zeilen mit TIniFile.Create an. Eine ist richtig die andere falsch. ;)

Jack23 8. Okt 2007 22:31

Re: Kleines Problem mit INI
 
Muss bei beiden so sein:

Delphi-Quellcode:
ini:=TIniFile.create(ExtractFilePath(ParamStr(0))+'test.ini');
Geht aber trotzdem nicht.

ringli 8. Okt 2007 22:35

Re: Kleines Problem mit INI
 
Bist du sicher das die Ini-Datei im Programmverzeichnis existiert und auch die Sektion und der Wert existiert?

Gehstock 8. Okt 2007 22:35

Re: Kleines Problem mit INI
 
Delphi-Quellcode:
var
  Form1: TForm1;
  iniFile: TIniFile;
  IniFileName : string = '.\test.ini';
implementation

{$R *.dfm}




procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if iniFile = nil then iniFile := TIniFile.Create(IniFileName);
 if iniFile <> nil then
  begin
  iniFile.WriteBool('Test','Eigenschaft',CheckBox1.Checked);
     iniFile.UpdateFile;
     iniFile.Free;
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  if iniFile = nil then iniFile := TIniFile.Create(IniFileName);
  if iniFile <> nil then
  begin
    CheckBox1.Checked :=iniFile.ReadBool('Test','Eigenschaft',CheckBox1.Checked);
  end;
end;
mach doch so

Progman 8. Okt 2007 22:38

Re: Kleines Problem mit INI
 
Delphi-Quellcode:
procedure TForm1.CheckBox1Click(Sender: TObject);
var ini: TIniFile;
begin
  ini:=TIniFile.create(ExtractFilePath(ParamStr(0))+'test.ini');
  ini.WriteBool('Test','Eigenschaft',CheckBox1.Checked);
  ini.free;
end;

procedure TForm1.FormShow(Sender: TObject);
var ini: TIniFile;
begin
  ini:=TIniFile.Create(ExtractFilePath(ParamStr(0))+'test.ini');
  CheckBox1.Checked:=ini.ReadBool('Test','Eigenschaft',False);
  ini.free;
end;
Das funzt bei mir, und ist effektiver ;)

Progman 8. Okt 2007 22:39

Re: Kleines Problem mit INI
 
oups....Post von Gehstock verpasst :lol:

Jack23 8. Okt 2007 22:40

Re: Kleines Problem mit INI
 
Progman deins geht. Danke! Ich wüsste aber doch gerne mal was bei meinem falsch war.

ringli 8. Okt 2007 22:42

Re: Kleines Problem mit INI
 
Delphi-Quellcode:
if x = 1 then CheckBox1.Checked;
hätte lauten müssen
Delphi-Quellcode:
if x = 1 then CheckBox1.Checked := True;

Jack23 8. Okt 2007 22:45

Re: Kleines Problem mit INI
 
Ah! Ok danke. Wieder etwas klüger geworden.


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