![]() |
Ini Files
Hallo habe eine kleine frage.
Ich habe bei Form1Create das hier drin stehen:
Delphi-Quellcode:
Doch er gibt mir immer Acces violations beim starten, wieso ?Ini := TIniFile.Create(ExtractFilePath(ParamStr(0))+'Options.ini'); if Ini.ValueExists('GameButtons', 'HowMany') = false then Ini.WriteString('GameButtons', 'HowMany', '9 Buttons'); Form2.ComboBOx1.Text:= Ini.ReadString('GameButtons', 'HowMany', 'asdf'); |
Re: Ini Files
Hi k4ni,
Zitat:
Btw: Machst Du später für das WriteString auch ein UpdateFile? Sonst wunderst Du dich, warum sich nichts in der INI ändert. Gruß winkel79 |
Re: Ini Files
Mache das nicht im Create von Form 1, sondern eher beim Show von Form1. Beim Createn von Form 1 gibts noch kein Form 2, deswegen kommt es zur AV ;-)
P@Tti |
Re: Ini Files
Zitat:
Ehm ich weis jetzt nicht ganz was du mit UpdateFile meinst, aber bei mir läuft der rest perfekt. |
Re: Ini Files
if-Abfragen, ob ein Eintrag in der Ini existiert kann man sich eigentlich sparen, da man einen Standardwert angeben kann, der genommen wird, wenn der Eintrag nicht existiert.
Alt:
Delphi-Quellcode:
Neu:
if Ini.ValueExists('GameButtons', 'HowMany') = false then
Ini.WriteString('GameButtons', 'HowMany', '9 Buttons');
Delphi-Quellcode:
var
DeineZielVariable: String; //... DeineZielVariable := Ini.ReadString('GameButtons', 'HowMany', '9 Buttons'); |
Re: Ini Files
Hallo,
noch ein paar Anmerkungen zu deinem Code, damit du's in Zukunft besser machen kannst. ;) Überprüfe nie auf "= false". ![]() Des weiteren nutze Resourcenschutzblöcke, damit der Speicher auch im Fehlerfall wieder freigegeben wird:
Delphi-Quellcode:
Gruß
Ini := TIniFile.Create(...);
try // Ini-Operationen finally FreeAndNil(Ini); end; |
Re: Ini Files
[OT]
Zitat:
Delphi-Quellcode:
:mrgreen:
type
TFemaleBool = (True, False, Maybe) [/OT] |
Re: Ini Files
tzz, tzzz
Delphi-Quellcode:
von daher gibts eigentlich keinen zwitter ;-)
0 --> false && !0 --> true
|
Re: Ini Files
Zitat:
Ohne UpdateFile sind diese Änderungen in der Datei noch nicht gemacht. Gruß winkel79 |
Re: Ini Files
Zitat:
Delphi-Quellcode:
Bei korrekter Freigabe werden also auf jeden Fall die Daten geschrieben.
destructor TIniFile.Destroy;
begin UpdateFile; // flush changes to disk inherited Destroy; end; Ciao, Ralf |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:03 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-2025 by Thomas Breitkreuz