Zitat von
mickmack:
Moin Moin,
ich habe folgendes Problem. Und zwar habe ich ein Liste mit Datensätzen. Jeder Datensatz hat eine ID zur eindeutigen Erkennung, welche der User aber nicht sehen soll.
Nun möchte ich die Datensätze in einer Listbox ausgeben.
Damit ich aber am wieder weiss, welcher Datensatz ausgewählt wurde, muss irgendwo die ID in der Listbox mit untergebracht werden.
Wie mache ich das?
Halli Hallo,
falls diese IDs einfache integer sind (was ich vermute), kannst du sie in das Objects[] property von TListBox.Items eintagen:
Delphi-Quellcode:
aID := HoleIDausderListe;
myListBox.Items.AddObject('Ein Eintrag mit ID', TObject(aID));
Auslesen dann mit:
aID := integer(myListBox.Items.Objects[myListBox.ItemIndex]);
Da in Delphi ein Object eigentlich ein Pointer auf das Object ist und dieser genauso gross wie ein integer ist, kann man mittels Typecast einfach integer-Werte im Objects[] Property unterbringen.
Als Alternative (wenn Objects[] schon anders genutzt wird) könntest du die Werte so in die Listbox eintragen:
myListBox.Items.Add('Ein Eintag mit ID=' + IntToStr(aID));
Damit der Benutzer die ID hinterher nicht sieht, setze die Listbox in dem OwnerDraw-Modus und zeichne die Einträge selbst, wobei du den Teil vor dem "=" weglässt wenn der Eintragstext mit "TextOut" ausgegeben wird.
Hoffe das hilft ein wenig
Ciao,
Ralf