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 TListBox/TComboBox mit verstecktem Wert ? (https://www.delphipraxis.net/90609-tlistbox-tcombobox-mit-verstecktem-wert.html)

Bernd Nowak 20. Apr 2007 14:07


TListBox/TComboBox mit verstecktem Wert ?
 
Hallo an alle,
habe folgendes Problem:

LänderListe mit zugewiesener Index Zahl also ungefähr:

"Argentina", 1
"Australia", 2
"Austria", 3
"Belgium", 4
"Brazil", 5

Im Dropdown soll nur der Name erscheinen aber mich interessiert eigentlich nur die Zahl. In Access konnte man die 2. Spalte einfach ausblenden. Kann man sowas in Delphi auch machen oder würdet ihr einen anderen Weg gehen ? Also könnte mir natürlich was mit ItemIndex vorstellen aber auch nur weil hier die Zahlen passen würden. Aber es könnten ja auch mal andere Zahlen (SQL Query) zurückgegeben werden wo das mit ItemIndex nicht funktionieren würde.

Danke schon mal

Gruber_Hans_12345 20. Apr 2007 14:12

Re: TListBox/TComboBox mit verstecktem Wert ?
 
wenn du die combobox manuell befüllst, dann kannst du einen integer wert auch in die objects der TStrings abspeichern ... statt ComboBox.Items.Add('Argentinien') dann einfach ComboBox.Items.AddObject('Argentinien', TObject(1));

... zwar nicht 100% schön, aber funkt dafür 100% ;)

Luckie 20. Apr 2007 14:46

Re: TListBox/TComboBox mit verstecktem Wert ?
 
Benutz doch die Eigenschaft ItemIdex der Listbox.

Bernd Nowak 20. Apr 2007 15:02

Re: TListBox/TComboBox mit verstecktem Wert ?
 
Ja das gehht, da die Einträge passend sind zum 'Index'. Habe ich gerade schon so gemacht. Was wäre aber wenn aufgrund einer Datenbank folgendes in einer Liste steht:


'Bernd' 39
'Albert' 20

Also Benutzer Bernd mit dem DB Index von 39 und Albert mit dem DB Index von 20 ?
Und da verstehe ich den hier nicht:

ComboBox.Items.AddObject('Bernd', TObject(39));
ComboBox.Items.AddObject('Albert', TObject(20));

Wie komme ich da an die 39 bzw. 20 ? Hatte das schon öfter und mir jedesmal eine Krücke gebaut :)

Gruber_Hans_12345 20. Apr 2007 15:11

Re: TListBox/TComboBox mit verstecktem Wert ?
 
mit
Delphi-Quellcode:
Result := 0;
if ComboBox.ItemIndex >= 0 then Result := integer(ComboBox.Items.Objects[ComboBox.ItemIndex]);


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:12 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