Re: ReadBool Ini-File
Delphi-Quellcode:
Also das einzige, was mir hier auffällt ist, dass zwischen ")", "+" und "'settings.ini'" keine Leerzeichen sind, aber das dürfte ja kein Problem darstellen. Das "c" vor den Zahlen ist übrigens auch im Read-Bereich.
procedure TForm1.Button2Click(Sender: TObject);
begin ini:=TIniFile.create(ExtractFilePath(ParamStr(0))+ 'settings.ini'); try ini.WriteBool('myOne','c1',Checkbox1.Checked); ini.WriteBool('myOne','c2',Checkbox2.Checked); ini.WriteBool('myOne','c3',Checkbox3.Checked); ini.WriteBool('myOne','c4',Checkbox4.Checked); finally ini.free; end; end; |
Re: ReadBool Ini-File
Habe meine Änderung mal mit ^ hervorgehoben.
Zitat:
Zitat:
|
Re: ReadBool Ini-File
Bei mir steht in der INI ebenfalls 0 bzw. 1.
Das mit dem "\" könnte es natürlich sein. P.S.: Aber die Delphi-Hilfe sagt, in neueren Versionen sollte IncludeTrailingPathDelimiter verwendet werden. |
Re: ReadBool Ini-File
ExtractFilePath soolte eigentlich den Slash auch zurückliefern.
|
Re: ReadBool Ini-File
@mkinzler: Aber der Einsatz von Iclude... sollte doch nicht schaden, oder?
|
Re: ReadBool Ini-File
Vielleicht kann ich es ja noch irgendwann gebrauchen, aber leider hilft es mir im Moment nicht weiter. Aber das kann ich mir irgendwie nicht vorstellen, dass das stimmt, denn die Datei konnte schon bearbeitet werden. Ich könnte mir jetzt nur noch vorstellen, dass es an irgendeiner Einstellung im OI o.ä. hängen könnte, bloß weiß ich nicht welche das sein könnte. :gruebel:
|
Re: ReadBool Ini-File
Zitat:
Aber das braucht uns tatsächlich nicht zu stören; wenn Read/Write mit der gleichen Version erledigt wird, stimmt es schon überein. Ich muss mich natürlich für die Verwirrung entschuldigen. Aber hier finden wir den wirklichen Fehler: Zitat:
Jürgen |
Re: ReadBool Ini-File
Zitat:
|
Re: ReadBool Ini-File
Ich entschuldige mich vielmals, dass ich es nicht noch klarer formuliert habe. Aber ich habe nicht grundlos unter mein Posting geschrieben:
Zitat:
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, IniFiles, ShellAPI, ExtCtrls; type TForm1 = class(TForm) CheckBox1: TCheckBox; CheckBox2: TCheckBox; CheckBox3: TCheckBox; CheckBox4: TCheckBox; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Button1: TButton; Button2: TButton; RadioGroup1: TRadioGroup; RadioButton1: TRadioButton; RadioButton2: TRadioButton; RadioButton3: TRadioButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure FormActivate(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; ini: TIniFile; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin if (CheckBox1.Checked = True) then begin shellexecute(form1.Handle, 'open', PChar('pics.bat'), nil, nil, sw_show); end; if (CheckBox2.Checked = True) then begin shellexecute(form1.Handle, 'open', PChar('vids.bat'), nil, nil, sw_show); end; if (CheckBox3.Checked = True) then begin shellexecute(form1.Handle, 'open', PChar('docs.bat'), nil, nil, sw_show); end; if (CheckBox4.Checked = True) then begin shellexecute(form1.Handle, 'open', PChar('arch.bat'), nil, nil, sw_show); end; Form1.Close; end; procedure TForm1.Button2Click(Sender: TObject); begin ini := TIniFile.create(IncludeTrailingPathDelimiter(ExtractFilePath(ParamStr(0))) + 'settings.ini'); try ini.WriteBool('myOne','c1',Checkbox1.Checked); ini.WriteBool('myOne','c2',Checkbox2.Checked); ini.WriteBool('myOne','c3',Checkbox3.Checked); ini.WriteBool('myOne','c4',Checkbox4.Checked); finally ini.free; end; end; procedure TForm1.FormActivate(Sender: TObject); begin ini := TIniFile.create(IncludeTrailingPathDelimiter(ExtractFilePath(ParamStr(0))) + 'settings.ini'); with ini do try CheckBox1.Checked := ReadBool('myOne', 'c1', False); CheckBox2.Checked := ReadBool('myOne', 'c2', False); CheckBox3.Checked := ReadBool('myOne', 'c3', False); CheckBox4.Checked := ReadBool('myOne', 'c4', False); finally ini.free; end; end; end. |
Re: ReadBool Ini-File
Ich weiss jetzt nicht, ob Deine Zeilen funktionierten, habe aber mal eine Änderung für den Namen der ini vorzuschlagen. So hast Du immer automatisch eine Ini passend zum Anwendungsnamen. Das geht natürlich so nicht, wenn mehrere Echsen auf die gleiche Ini zugreifen sollen. Das mit der Funktion hat aber den Vorteil, dass Du an jeder Stelle im Programm den richtigen Ini-Namen zurückbekommst.
Delphi-Quellcode:
function AppIniName:String;
begin result := ChangeFileExt(ParamStr(0), '.ini'); // alternativ // result := IncludeTrailingPathDelimiter(ExtractFilePath(ParamStr(0))) // + 'settings.ini'; end; procedure TForm1.Button2Click(Sender: TObject); begin ini := TIniFile.create(AppIniName); try ... finally free; end; end; procedure TForm1.FormActivate(Sender: TObject); begin ini := TIniFile.create(AppIniName); with ini do try ... finally ini.free; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:09 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