![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Компонент TDBLookupComboBox [D5, FireBird IB]
AtoL2k2 © (2003-05-16 15:53:00)Можно ли принудительно присваивать значения этому компоненту. То есть нужно чтобы курсор в ListSource стоял на определенной записи таблицы и при раскрытии списка был активным.
Возможно ли такое?
В принципе если свойству KeyValue задать определенный ключ из таблицы в DBLookupComboBox -е отображается нужное поле, но реально эта запись неактивна.
ЮЮ (2003-05-17 05:22:00) [1]>Я так и делаю...
Нет не так. Надо установить cbTest.DataSource равным DataSource для Table1 и cbTest.FieldName = "ID_Table2 ". И всё. Теперь что будет в текущей записи Table1, то и будет отображаться в комбобоксе и лезть "программно" в него не надо - надо менять поле ID_Table2 в Table1
AtoL2k2 (2003-05-16 17:24:00) [2]Я так и делаю...
Это я для примера показал.
Придется принудительно тогда заставлять пользователя тыкать в список. Иначе никак. Программно можно, в принципе. Но это геморройная ситуация - нужно вызывать OnCloseUp, потом его закрывать.
Johnmen (2003-05-16 16:37:00) [3]Понятно...
Просто пропиши значение поля Table1.ID_Table2 нужным значением, и не делай cbTest.KeyValue:=2 ...
AtoL2k2 (2003-05-16 16:27:00) [4]Table1.ID_Table2 ----> Table2.ID
cbTest.KeyValue:=2 //предположим Table2.ID=2
LookUpComboBox действительно показывает все что нужно. Но если его не раскрывать (!!!) то данный в Table1 не сохраняются. Если же пользователь нажал на раскрывающийся список - то все ок.
Johnmen (2003-05-16 16:20:00) [5]Как принято в таких случаях восклицать :
"Код в студию !"
AtoL2k2 (2003-05-16 16:13:00) [6]2Johnmen
на основании того, что в таблицу с которой связан DataSource не записывается ничего. То есть поле DataField пустое.
Johnmen (2003-05-16 16:01:00) [7]>но реально эта запись неактивна.
На основании чего сделан такой вывод ?