Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

TComboBox и БД [D5, Win2k]


User2 ©   (2003-04-14 17:15:00) 

Уважаемые, Мастера!
Помогите написать процедуру. Есть компонент TСomboBox.
Заполняю его в цикле данными запроса:
while …
ComboBox.Items.AddObject(Query.Fields[1].AsString,
TObject(Q.Fields[0].AsInteger));
……

Соответственно : текстовое поле и ключевое ID(integer).
Проблема в следующем.
Нужно программно осуществить выбор и отображение
из списка ComboBox нужного элемента, используя лишь ID,
в данном случае это:

Integer(ComboBox.Items.Objects[ComboBox.ItemIndex]);

Для наглядности:
Заполним ComboBox(способом указанным выше) данными:
где:
Текстовое поле ID

Килька 3
Ставрида 5
Минтай 7

Допустим, мне нужно, чтобы в поле ComboBox отобразилось “Минтай”,
причем сделать это нужно лишь программно доступом через ID ( он известен,в данном случае – 7 )

begin
// Огромное спасибо, тому кто не откажет в помощи
end


Zacho   (2003-04-15 12:06:00) [1]


> Babay © (15.04.03 10:25)

Зачем так сложно ?
RTFM TStrings.IndexOfObject

P.S. И RTFM Break для понимания, что существует нормальный способ выхода из цикла.


REA   (2003-04-15 10:40:00) [2]

TdbLookUpCombo подходит, но у него глюки были (или я что-то не так делал) - например при прокрутке при нажатии на стрелочки выпадающего списка текст самого ComboBox не менялся, а позиция в Table менялась (сейчас посмотрел в одной программе эффект остался, а в другой уже нет). И при нажатии на Enter (если есть Default button) ComboBox не закрывался, а говорил Cannot focus disabled or invisible window.
Поправьте, если я не прав.


Babay   (2003-04-15 10:25:00) [3]

В цикле перебираешь комбо и проверяешь что ...
короче так примерно

i:=0;
while i<Combobox.items.count do begin
if Integer(ComboBox.Items.Objects[i])=<твое число> then
begin
ComboBox.itemIndex:=i;
I:=Combobbox.items.count+1;
end;
inc(i);
end;


User2   (2003-04-14 20:08:00) [4]

А с ComboBox что никак?
Может еще у кого-нибудь будут соображения???
Правда, очень нужно.


malkolinge   (2003-04-14 17:23:00) [5]

А вообще возми TdbLookUpCombo (Стандартный)


malkolinge   (2003-04-14 17:20:00) [6]

Сделай обычный грид..Выпадающий :)))))))))))
свойсвва
KeyField
ListField

Ищешь в KeyFiled, отображаешь ListField.
и еще глянь статейку

http://www.delphikingdom.com/helloworld/treecombobox.htm


Наверх

Титульная страница Поиск, карта сайта Написать письмо