![]() |
ToogleSwitch und ini
Guten Morgen,
Leider stehe ich etwas auf dem Schlauch mit dem ToogleSwitch. Das Schreiben in eine Ini funktioniert super,
Code:
nur das lesen, des wertes, verstehe ich nicht ganz.
WriteBool(Einstellung1,Toggle1SwitchAktiviert,True);
Code:
Wo liegt der Fehler?
ToggleSwitchAktivieren.IsOn:= ReadBool(Einstellung1,Toggle1SwitchAktiviert,True);
Gruß S |
AW: ToogleSwitch und ini
Ich nehme an, der Switch ist immer aktiviert. Das dürfte daher kommen, dass immer True in die Ini geschrieben wird, egal, ob der Switch aktiv ist oder nicht.
|
AW: ToogleSwitch und ini
Hi,
So sieht der Code aus, wenn er off ist wird ein False in die INI geschrieben.
Code:
procedure TForm2.ToggleSwitchAktivierenClick(Sender: TObject);
begin if ToggleSwitchAktivieren.IsOn = True then begin with TMemIniFile.Create(ConfigIniPfad) do try begin WriteBool(Einstellung1,Toggle1SwitchAktiviert,True); UpdateFile; end; finally Free; end; end else // ab hier wenn Toogle1 Aus dann: begin with TMemIniFile.Create(ConfigIniPfad) do try begin WriteBool(Einstellung1,Toggle1SwitchAktiviert,False); UpdateFile; end; finally Free; end; end; end; |
AW: ToogleSwitch und ini
Hmm..
Habe hier kein ToggleSwitch, aber aus den Codschnipsel müsste es nicht besser so gehen? (ich gehe davon aus, das Einstellung1 und Toggle1SwitchAktiviert strings sind, in denen die Section und der Parametername stehen)
Code:
Wobei ich nicht bei jedem Clieck auf dem Switch direkt in die INI schreiben würde...
procedure TForm2.ToggleSwitchAktivierenClick(Sender: TObject);
begin with TMemIniFile.Create(ConfigIniPfad) do try WriteBool(Einstellung1,Toggle1SwitchAktiviert,ToggleSwitchAktivieren.IsOn); UpdateFile; finally Free; end; end; |
AW: ToogleSwitch und ini
Das kann man aber deutlich abkürzen:
Delphi-Quellcode:
Das Lesen wird vermutlich gar nicht compilieren, da IsOn eine Function und kein writable Property ist.
with TMemIniFile.Create(ConfigIniPfad) do
try WriteBool(Einstellung1,Toggle1SwitchAktiviert,ToggleSwitchAktivieren.IsOn); UpdateFile; finally Free; end;
Delphi-Quellcode:
ToggleSwitchAktivieren.State := IfThen<TToggleSwitchState>(ReadBool(Einstellung1,Toggle1SwitchAktiviert,True), tssOn, tssOff);
|
AW: ToogleSwitch und ini
Delphi-Quellcode:
Da IsOn eine Funktion ist, kann man ihr auch nichts zuweisen, da müsstest Du wohl auf die State-Eigenschaft zurückgreifen.
procedure TForm2.ToggleSwitchAktivierenClick(Sender: TObject);
var Ini: TMemIniFile; begin Ini := TMemIniFile.Create(ConfigIniPfad); try Ini.WriteBool(Einstellung1,Toggle1SwitchAktiviert, ToggleSwitchAktivieren.IsOn); Ini.UpdateFile; finally Ini.Free; end; end; |
AW: ToogleSwitch und ini
Delphi-Quellcode:
Das obige bewirkt, das in Datei Settings.ini eine Sparte [Setup] angelegt wird, als einstellungsname wird Einstellung1 genommen und als Wert True oder False geschrieben, der Wert ist Hier_Kommt_Ein_Boolean-Wert_rein
Wie lautet Ini Anweisung? Ist bei Dir nich ersichtlich.
Beispiel: ini := TIniFile.create(IncludeTrailingBackslash(ExtractFilePath(ParamStr(0))) + 'settings.ini'); try ini.WriteBool('Setup', 'Einstellung1', Hier_Kommt_Ein_Boolean-Wert_rein); Hier_Kommt_Ein_Boolean-Wert_rein := ini.ReadBool('Setup', 'Einstellung1', False); finally ini.free; end; |
AW: ToogleSwitch und ini
Ich glaube das einfachste wird sein ich nehm eine Checkbox ;)
Danke trotzdem. |
AW: ToogleSwitch und ini
Auf die Gefahr hin, dass ich jetzt ganz blöd dastehe: Was ist denn Toggle1SwitchAktiviert? Welchen Typ hat das, wo ist das definiert?
|
AW: ToogleSwitch und ini
Zitat:
Allerdings würde das bei einer Checkbox im gleichen Problem enden. Zitat:
Einfach mal eine Blick in den Objektinspektor werfen, und dort mal ermitteln mit welcher Eigenschaft das Toogle umgeschaltet wird. Weiterhin hilf F1 auch dort. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:04 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