![]() |
Extrem viele Einstellungen geschickt speichern/laden
Hi,
Seit längerer Zeit arbeite ich an einem Programm, ich habe mir jetzt überlegt, dass man die Einstellungen die man im Programm getroffen hat exportieren und importieren sollte. Die Einstellungen werden in CheckBoxen, DropDownBoxen, Trackbars [...] gewählt, zum Export wollte ich das XML Format verwenden, komme ganz gut damit klar. Jedoch habe ich 150 verschiedene Einstellungen, auf mehreren Formularen und es werden immer mehr. Ich müsste also für das speichern und laden von 1 Element 3 Zeilen tippen: Speichern:
Delphi-Quellcode:
Laden:
AddChild('sensitivity','');
ChildNodes.Nodes['sensitivity'].Text := IntToStr(MainForm.tb_sensitivity.Position);
Delphi-Quellcode:
Nun drängt mich die Frage geht das nicht irgendwie einfacher?
cb_sprayactivate.Checked := StrToBool(ChildNodes.Nodes['QUICKMENU'].ChildNodes.Nodes['cl_logofile_activ'].Text);
Ich weiß ja den Formularnamen und das jede Checkbox (.Checked), Trackbar (.Position) von dem Formular abspeichert werden soll. Gibt es dort eine Möglichkeit den Count von bestimmten Komponenten zu benutzen (richtung FOR-Schleife)? |
Re: Extrem viele Einstellungen geschickt speichern/laden
moinsen...
gibts!
Delphi-Quellcode:
savetoxml würde dann einfach nur den namen der komponente und den wert speichern.. ist jetzt so ne art pseudocode :-)
for i := 0 to ComponentCount - 1 do
begin if Component[i] is TCheckBox then SaveToXML( Component[i] as TCheckBox ).Name, BoolToStr( (Components[i] as TCheckBox).Checked ) ); end; einfach dann um "...is TEdit" usw erweitern edit: mal eben angepasst... ich wusste irgendwo kam nen "s" hin aber natürlich anner falschen stelle :-p |
Re: Extrem viele Einstellungen geschickt speichern/laden
ja das bekomme ich schon gebacken VIELEN DANK! :dance:
Für weitere noch ein paar Anregungen...
Delphi-Quellcode:
ComponentsCount nur halt ohne s
ShowMessage(IntToStr(Form1.ComponentCount));
Und so gibt es dann auch den Namen zurück Form1.Components[0].Name // wenn TabIndex 3 eine CheckBox ist
Delphi-Quellcode:
ShowMessage(BoolToStr((Form1.Components[3] as TCheckBox).Checked ));
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:21 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