Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi TComboBox behält nach Neustart keine neuen Einträge (https://www.delphipraxis.net/179110-tcombobox-behaelt-nach-neustart-keine-neuen-eintraege.html)

realhanno 14. Feb 2014 21:27

TComboBox behält nach Neustart keine neuen Einträge
 
Hallo,

mein Problem:
Ich mach eine Combobox auf, lasse Neueinträge per Button zu den items hinzufügen und kann sie auch als Neueintrag in der Combobox bewundern.
Soweit prima - dachte ich. Aber - nach einem Neustart der Anwendung sind alle Neueinträge weg.
Code: Es ist nur eine Zeile:
Zitat:

Combobox1.Items.Add(Combobox1.Text);
Ich benutze Delphi 7.
Ich finde nichts darüber, wie ich Neueinträge in der Combobox dauerhaft speichern kann...:(
Vielleicht weiß jemand Rat, wie das zu lösen ist.

Gruß
realHanno

sx2008 14. Feb 2014 21:43

AW: TComboBox behält nach Neustart keine neuen Einträge
 
Delphi-Quellcode:
// Hilfsfunktion weil man Dateinamen mehrfach braucht
function ComboBoxFilename:string;
begin
  Result := ExtractFilePath(ParamStr(0))+ '\combo1.txt';
end;
....

// speichern
Combobox1.Items.SaveToFile(ComboBoxFilename);
....

// laden beim Erzeugen des Formulars
if FileExists(ComboBoxFilename) then
  Combobox1.Items.LoadFromFile(ComboBoxFilename);

realhanno 15. Feb 2014 09:04

AW: TComboBox behält nach Neustart keine neuen Einträge
 
JUI...
ist doch etwas mehr als nur eine Zeile...:lol:
Danke!
realHanno

himitsu 15. Feb 2014 11:33

AW: TComboBox behält nach Neustart keine neuen Einträge
 
Das geht natürlich auch 1-zeilig (+1 beim Speichern), wenn man die Funktion ComboBoxFilename weglässt und den Pfad überall direkt einbaut, aber so hat man den Vorteil, daß man den Namen nur an einer Stelle hat, welches sich aber auch noch auf viele andere Wege lösen lässt. (z.B. als Klasse oder Funktion, welche mehrere Namen zurückgeben kann, für andere Dateinamen, welche man eventuell auch noch braucht, was man z.B. über Konstanten oder einen Enum ansteuern würde)

Man kann matürlich auch diese Daten auch in die Registry legen, oder in eine INI, XML usw.

Allgemein nochmal. Delphi speichert in der DFM nur das, was beim Kompilieren im Formdesigner da eingestellt wurde.
Und es läd bei jedem Programmstart (erstellen der Form) immer nur die Daten aus der einkompilierten DFM, welches man danach natürlich auch durch eigene Wert (z.B. im OnCreate der Form) überschreiben/ergänzen kann.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:52 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