Listbox mit ID und Name füllen aber ID nicht anzeigen ?
-
hi,
gibt es die möglichkeit in eine art listbox z.b. name und id zu speichern aber nur den namen anzuzeigen ? die id brauch ich für einen späteren zugriff und denn namen brauche ich um das jeweilige objekt zu indentifizieren.
was gibt es denn für möglichkeiten um auf die id zugreifen zu können sie aber nicht anzeigen zu müssen ???
-
Sieh dir mal TStringList::Objects an.
Ansonsten benutz' ein TListView mit ViewStyle = vsReport.
Oder dü führst zwei Listen parellel, eine mit ID und eine ohne.
-
ok, hab mir das tlistview objekt mal angesehen.
folgende Eigenschaften habe ich dann definiert:
ListStyle = vsReport Habe 2 Colums angelegt, einmal ID und einmal Name. Width von ID habe ich auf 0 gesetzt und es somit ausgeblendet aber dennoch verfügbar ;-)
so hast du das ganze doch gemeint, gell ?
ist das eigentlich auch der gängige standart ????eine zweite frage von mir wäre die ob es eine solche möglichkeit auf für eine combobox komponente gibt ?
danke
-
TComboBox::Items ist genau wie TListBox::Items vom Typ TStrings, die Objects-Variante gibt es dort also genauso.
Ich würde dan Ganze aber mit "doppelter Buchführung" erledigen. Also eine StringList mit den eigentlichen Daten im Hintergrund und daraus den jeweils anzuzeigenden Teil in der ListBox oder ComboBox ausgeben, wobei die Verbindung über den ItemIndex erhalten bleibt.
-
wow, warte mal.
also du meinst eine stringlist anlegen (ist eine string list wie eine art variable in der ich mit add einfach einen string hinzufügen kann?).aber was meinst du denn mit:
... eine StringList mit den eigentlichen Daten im Hintergrund und daraus den jeweils anzuzeigenden Teil in der ListBox oder ComboBox ausgeben, wobei die Verbindung über den ItemIndex erhalten bleibt.[/quote]beispiel wäre ist immer id und name wobei id unsichtbar bleiben soll
z.b.
3 -> tom
7 -> karl
12 -> olga
...soweit ich weis ist ja die itemindex eine vortlaufende zahl sprich von 0-n aber bei mir sind die indizies nicht unbedingt wie du oben sehen kannst vortlaufend ...
-
achso, ich habs verstanden!
hab mir jetzt einige infos dazu besorgt!!!
dank dir tausendmal!sagmal da ich ein blutiger anfänger bin und noch sehr sehr viel lernen muss kannst du mir da ein paar sachen auf denn weg mitgeben die ich unbedingt lernen sollte.
die sache mit TStringList war z.b. so ein Teil wo ich sage das muss man einfach wissen. Sagmal bitte was ich deiner Meinung nach auf alle Fälle lernen sollte!
dank dir !
-
Du kannst natürlich auch hergehen und Deine ID samt Name in die Listbox schreiben (ID und Name durch Trennzeichen getrennt) und dann im Ereigniss OnDrawItem die ID quasi ausblenden. Über OnDrawItem steht glaube ich auch was in der FAQ.
-
kannst du mir dafür mal schnell ein beispiel posten ?
ich wüsste echt nicht wie ich da aber nun die id ausblenden kann ?danke
-
Ein schnelles Beispiel ist gerade nicht drin, muß arbeiten.
Beschäftig Dich mal mit OnDrawItem und lass Deiner Fantasie freien Lauf
Beipiele findest Du in der FAQ
Guckst Du hier
und hier