Zitat:
TempDataSet.Free;
Das ist dein Problem. Denn in der StringListe werden nur Verweise auf das Object gespeichert und nicht das Object selbst. (Hast du vorher VB programmiert, da würde sowas funktionieren).
Tipp für den Richtigen weg:
Erweitere TDataSet (dieser Name ist unglücklich da es schon eine Delphi-Klasse mit diesen Namen gibt) um ein Feld Caption und verwende statt TStringList TObjectList (bzw. einen Nachfahren davon). Diese hält das Object und verwaltet es. Trotzdem diese erste Zeile meines Positings lassen.
Das speichern kann man dann auch ohne weiteres impl..
Falls du die Caption als Mapper verwendest so kann man in dem abgeleiteten Object eine solche Funktion implementieren.
Schreib mal was du genau willst, dann sehen wir weiter!