Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Extrem viele Einstellungen geschickt speichern/laden (https://www.delphipraxis.net/112190-extrem-viele-einstellungen-geschickt-speichern-laden.html)

geskill 16. Apr 2008 14:13


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:
AddChild('sensitivity','');
ChildNodes.Nodes['sensitivity'].Text := IntToStr(MainForm.tb_sensitivity.Position);
Laden:
Delphi-Quellcode:
cb_sprayactivate.Checked := StrToBool(ChildNodes.Nodes['QUICKMENU'].ChildNodes.Nodes['cl_logofile_activ'].Text);
Nun drängt mich die Frage geht das nicht irgendwie einfacher?
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)?

Relicted 16. Apr 2008 14:25

Re: Extrem viele Einstellungen geschickt speichern/laden
 
moinsen...

gibts!

Delphi-Quellcode:
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;
savetoxml würde dann einfach nur den namen der komponente und den wert speichern.. ist jetzt so ne art pseudocode :-)
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

geskill 16. Apr 2008 14:53

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:
ShowMessage(IntToStr(Form1.ComponentCount));
ComponentsCount nur halt ohne s

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 23:45 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