@himitsu: Die Daten werden korrekt auf der Platte abgespeichert (habe ich nachgeschaut).
Nur nachdem ich sie erneut lade, killt Delphi sie aus dem
DFM. Das gilt nicht nur für meine MappedValues Property sondern auch für die normale "Items" Property. (siehe unten)
(Habe die MapValues auch schon komplett rausgelassen. Trotzdem werden die normalen Strings beim laden verworfen)
Meine Combobox kurz beschrieben:
Die Combobox benutzt eine eigene TStrings-Klasse (TMyComboBoxStrings).
Das ist möglich wenn man GetItemsClass der Combobox überschreibt und seine eigene TStrings-Klasse zurückgibt.
Diese TStrings-Klasse besitzt eine Liste mit Werten. Ich will also für jeden (normalen) Eintrag in der Combobox im Hintergrund noch einen Wert speichern können.
Dafür habe ich jetzt einen Property-Editor geschrieben damit man in der
IDE nicht nur den String, sondern auch den dazugehörigen Wert eintragen kann.
zu 1) Ja ich klicke auf "..." neben "Items", mein Property-Editor öffnet sich, ich trage Daten ein und schließe mein Editor-Fenster für die Items wieder. Wenn ich den Editor dann wieder öffne werden die vorher eingetragenen Daten korrekt angezeigt.
Das selbe gilt wenn ich nachdem ich die Daten eingegeben habe Alt+F12 drücke und mir den
DFM-Quelltext anschaue. Dort sind die eingetragenen Daten zu sehen.
Wechsel ich jetzt aber wieder in die Nicht-Quelltext-Ansicht der
DFM oder öffne ich das Formular neu (natürlich nachdem ich gespeichert habe) dann sind die Änderungen im
DFM gelöscht.
Bevor man die
DFM erneut lädt (und die Daten weg sind) sind die Daten auch richtig auf der Festplatte gespeichert.
Ich konnte Debuggen dass bevor die Daten verloren gehen ein Items.Clear der ComboBox aufgerufen wird.
Ich weiß allerdings weder woher dieser Aufruf kommt noch ob der Aufruf normal ist und danach eigentlich die Daten wieder aus der
DFM geladen werden sollten wobei etwas nicht funktioniert, oder ob dieses Clear da überhaupt nicht passieren sollte.