Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Versteckte Informationen in ListBox (https://www.delphipraxis.net/42818-versteckte-informationen-listbox.html)

mickmack 24. Mär 2005 07:39


Versteckte Informationen in ListBox
 
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?

jfheins 24. Mär 2005 07:47

Re: Versteckte Informationen in ListBox
 
Ich glaube, da konnte man ein Objekt zu jedem Eintrag mitspeichern, aus dem kannst du dann deine Infos lesen ...

Guck einfach mal in die OH ... :zwinker:

Oder hier: Hier im Forum suchenListBox Objekt

Ralf Kaiser 24. Mär 2005 07:53

Re: Versteckte Informationen in ListBox
 
Zitat:

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:

Delphi-Quellcode:
  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:

Delphi-Quellcode:
  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

mickmack 24. Mär 2005 08:02

Re: Versteckte Informationen in ListBox
 
danke :-)

das wars was ich gesucht habe :-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:06 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz