Выпадающий список - ? |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.
Выпадающий список - ? |
1147 |
Сообщение
#1
|
Бывалый Группа: Пользователи Сообщений: 205 Пол: Мужской Реальное имя: Евгений Репутация: 0 |
В базу данных посредством DBEdit вводятся фамилии, которые после ввода отображаются в соответствующем поле DBGrid. Проблема в том что фамилия одного и того же человека не всегда может вводиться правильно. Чтобы этого избежать, вводится дополнительная таблица в MSAccess содержащая только список фамилий. Отсюда вот какой вопрос: возможно ли чтобы при вводе фамилии, появлялось что-то вроде выпадающего списка с фамилиями из таблицы в MSAccess, т.е. допустим набираются начальные буквы - Ива, а в выпадающем списке уже видны все фамилии, начинающиеся на Ива, пользователь видит среди них нужную - Иванов, и выберает ее. Таким образом, в БД всегда вводится правильная фамилия. Есть ли в Delphi компонент, наиболее оптимально отвечающий данным требованиям? Т. к. похоже DBEdit придется заменить потому что для этой цели он не годится?
|
volvo |
Сообщение
#2
|
Гость |
На форме - DBGrid1, отображающий информацию, связанный с ADOTable1 через DataSource1. Также на форме - ADOQuery1, изначально для нее SQLText = 'SELECT * FROM table3' (у меня таблица Table3 содержит список фамилий).
Кладу на форму TDBComboBox, связываю его с тем же DataSource1, который связан с DBGrid-ом, поскольку мне надо, чтобы обновлялась информация в той же, рабочей таблице ADOTable1... У этого комбобокса не забываю установить нужное поле, в которое будет писАться информация. А вот теперь - самое интересное: как, собственно, осуществить сам выбор? А очень просто: при печати в DBComboBox я ничего делать не буду. Буду обрабатывать напечатанное значение по открытию списка, т.е., procedure TForm1.DBComboBox1DropDown(Sender: TObject); // нажали на кнопку со стрелкой?Собственно, это - все... Все работает. Единственное, что не происходит - это нельзя при открытом выпадающем списке печатать. Вернее, печатать-то можно, вот обновляться он не будет в момент печатания. Чтоб обновился - надо закрыть и переоткрыть. Хочешь - попробуй повесить это на DBComboBox1Change, тогда при вводе очередного символа будет обновляться выпадающий список. Только вот я не экспериментировал, не знаю, будет ли он опять открываться после обновления, или то на то и выйдет, и его надо будет опять открывать вручную... Пробуй |
Текстовая версия | 12.05.2024 1:54 |