Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Компонент ComboBox


Автор: Oberon83 31.8.2005, 11:58
Мне необходимо из базы данных выгрузить значение таблицы в выпадающий список ComboBox. Проблема состоит в следующем: необходимо связать наименование, выводимое в ComboBox с каким - либо числовым значением, которое берется так же из таблицы. Есть ли какие стандартные функции для этого?

Автор: Orlan 31.8.2005, 12:18
С каждым элементом стандартного элемента управления ComboBox ассоциируется число.
В MFC это метод CComboBox::SetItemData, должен быть аналогичный для билдера.

Автор: Oberon83 31.8.2005, 12:29
Orlan А если это число произвольное и выбирается из таблицы?
Добавлено @ 12:33
В том - то и проблема, что в таблице номера, соответствующие наименованиям могут быть разные, а в ComboBox возможна только последовательная нумерация полей от 1 и т.д., т.е. нельзя задать 1, 20, 13, т.к. должна быть строгая очередность 1, 2, 3, 4 ...

Автор: Orlan 31.8.2005, 12:45
Цитата(Oberon83 @ 31.8.2005, 12:29)
Orlan А если это число произвольное и выбирается из таблицы?

Произвольное число, определяется пользователем (user defined), тип DWORD. Я иногда храню там даже указатели на классы smile
Цитата(Oberon83 @ 31.8.2005, 12:29)

В том - то и проблема, что в таблице номера, соответствующие наименованиям могут быть разные, а в ComboBox возможна только последовательная нумерация полей от 1 и т.д., т.е. нельзя задать 1, 20, 13, т.к. должна быть строгая очередность 1, 2, 3, 4 ...

Поэтому для этих целей надо вместо номера элемента использовать ассоциируемое с элементом число.

Автор: Vyacheslav 31.8.2005, 17:09
Эта задача тривиально решается компонентом TDBComboBox

Автор: Oberon83 1.9.2005, 13:32
Цитата(Orlan @ 31.8.2005, 12:45)
Поэтому для этих целей надо вместо номера элемента использовать ассоциируемое с элементом число.
Это получается, что нужно заводить массив, в котором и будет происходить ассоциация? Или я что-то недопонимаю?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)