![]() |
Probleme mi TIniFile
Hi,
ich wollte in ein Prog eine Speicherung von bestimmten Daten per Ini einbauen. Dazu hab ich erstmal in Form.close folgendes getippt:
Delphi-Quellcode:
wenn ich das dann starte funzt noch alles. Beim Beenden gibts dann aberirgend nen Fehler:
with ini.Create(ParamStr(0)+'settings.ini')do
try ini.WriteBool('output','checkb',checkbox1.Checked); finally ini.Free; end; end; Zitat:
edit:/ich kann das,Prog dann nur noch über den Taskmanager ausschalten :twisted: Was hab ich da falsch gemacht? :gruebel: mfg Paul ps. Ich weiß nicht genau wo das hingehört! Bitte verschieben! :roll: |
Re: Probleme mi TIniFile
Hi,
Delphi-Quellcode:
Diese Konstrutktion ist absolut falsch.
ini.Create(ParamStr(0)+'settings.ini')
Es muss heißen:
Delphi-Quellcode:
:)
Ini := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'settings.ini')
mfG mirage228 Edit: ExtractFilePath() hinzugefügt. |
Re: Probleme mi TIniFile
Hi
Delphi-Quellcode:
Sollte es tun...INI:= TINIFile.Create(ExtractFilePath(ParamStr(0))+'settings.ini'); try INI.WriteBool('output','checkb',checkbox1.Checked); finally INI.Free; end; MfG Tonic [edit] Ich muss schneller tippen... :? [/edit] |
Re: Probleme mi TIniFile
Erstmal Danke für die schnellen Antworten.
Das funktioniert immer noch nicht! :( Ich hab auch die ganze Procedur noch mal gelöscht. Da geht alles ohne Probleme. Wenn ich das dann aber wieder einsetzt geht nix mehr. Was könnte denn noch falsch sein? |
Re: Probleme mi TIniFile
Ich war zu voreilig... War noch ein fehler im Code von mir...
Hab mal aufgeräumt und den fehler beseitigt. So sollte er es aber tun... MfG Tonic |
Re: Probleme mi TIniFile
Hey,
jetzt funzt! :-D :dancer: ps. du hast noch nen Semikolon vergessen :mrgreen: |
Re: Probleme mi TIniFile
Jo, verfluchtes Copy'n'Paste :oops:
|
Re: Probleme mi TIniFile
Hallo Paul,
noch ein Tipp, der manchen Frust ersparen kann: Wenn Du das Objekt hinter Deine Variablen ini freigibst, verwende statt der Methode Free lieber die Prozedur FreeAndNil damit Du "ein paar Zeilen weiter unten" nicht versehentlich von einem gültigen Objekt ausgehst. Oder noch einfacher, wenn Du die Variable nirgendwo sonst benötigst (so wäre Dein Problem mit dem Konstruktor auch gar nicht erst entstanden), arbeite mit anonymen Referenzen in der Art
Delphi-Quellcode:
with TIniFile.Create(AFileName) do
try WriteBool(ASection, AnIdent, AValue); finally Free; end; |
Re: Probleme mi TIniFile
nächstes Problem:
das auslesen. Ich habs eigentlich so gemacht wie ![]() nur ist die Checkbox jetzt immer so, wie das was ich als Wert reinschreibe
Delphi-Quellcode:
~> hier ist die checkbox immer leer.
procedure TfrmMain.FormCreate(Sender: TObject);
var ini:tinifile; begin ini:=tinifile.Create(ExtractFilePath(ParamStr(0)+'settings.ini')); try checkbox1.Checked:=ini.ReadBool('output','checkb',false); finally ini.Free; end; end; |
Re: Probleme mi TIniFile
Hast du etwas in der Ini stehen?
|
Re: Probleme mi TIniFile
Ja,
das Ini-Schreiben funzt!
Code:
[output]
checkb=0 |
Re: Probleme mi TIniFile
Ändere mal die Null (0) in eine eins (1) und sag, ob's immer noch nicht "gecheckt" ist.
|
Re: Probleme mi TIniFile
wenn ich das änder dann ist die checkbox gecheckt
|
Re: Probleme mi TIniFile
Ich glaube ich hab das Problem nicht ganz verstanden...
Wenn in der INI eine Null steht, dann ist nicht gecheckt, und wenn eine Eins steht ist gecheckt, richtig? Was genau geht dann deiner Meinung nach nicht? |
Re: Probleme mi TIniFile
Ja, dann geht doch alles. Vielleicht schreibst du das nicht richtig in die Ini.
Schreiben:
Delphi-Quellcode:
var ini:tinifile;
begin ini := tinifile.Create(ExtractFilePath(ParamStr(0)+'settings.ini')); try ini.WriteBool('output','checkb', CheckBox1.Checked); finally ini.Free; end; |
Re: Probleme mi TIniFile
Fehler von mir. Ich hatte das so geändert das das zufällig übereingestimmt hat.
nochmal: wenn ich schreibe
Delphi-Quellcode:
dann kommt ein häckchen, egal was in der settings.ini steht.
checkbox1.Checked:=ini.ReadBool('output','checkb',[b]true[/b]);
wenn ich
Delphi-Quellcode:
schreibe wird die CheckBox immer nicht abgehakt.
checkbox1.Checked:=ini.ReadBool('output','checkb',[b]false[/b]);
Die Namen stimmen auch überein. |
Re: Probleme mi TIniFile
das selbe passiert auch wenn ich die fensterposition speicher.
zb.
Delphi-Quellcode:
~> das fenster klebt immer oben am Rand.
Form.left:=ini.readinteger('position','left',0);
|
Re: Probleme mi TIniFile
Also eben hast du aber noch genau das Gegenteil behauptet. :gruebel:
|
Re: Probleme mi TIniFile
das war nen dummer zufall:
ich hatte die Werte auf True (im Prog) und hab in der Ini auf True umgestellt. Und wenn man dann so voreilig ist :oops: kommt eben das falsche bei raus! :evil: FAZIT: Das Prog liest nicht aus der Ini oder hat irgend nen andres Problem |
Re: Probleme mi TIniFile
Und du hast die Ini davor immer mit Create erstellt?
|
Re: Probleme mi TIniFile
alles klar.
ich hatte sie falsch erstellt. das konnte ja nix werden. Danke für die Hilfe. :wall: :wall: :wall: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:40 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