![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Быстрый поиск в DBLookupComboBox [D6, dBase, FoxPro]
Igor Kashtanov © (2003-03-09 00:51:00)Перерыл кучу справки по Delphi, ответа ессесно не нашел. Каким образом осуществить быстрый поиск в DBLookupComboBox? И вообще, возможно ли это?
Заранее очень благодарен.
Igor Kashtanov (2003-03-14 08:45:00) [1]Если не трудно :)... Мыло рабочее. Очень признателен.
ЮЮ (2003-03-14 03:25:00) [2]Пакет для D6, по моему, разработчиками не создан, а есть разные варианты от сторонних разработчиков, ищи их, а не на Torry. В принципе, могу выслать, если мыло рабочее
Igor Kashtanov (2003-03-14 01:10:00) [3]Да, !!!! это то, что нужно.... Теперь следующий вопрос (достал уже :) ). Есть ли у Вас толковая ссылка на этот компонент. я скачал 2 библиотеки c www.torry.ru и ни одну из них не смог поставить, то ей одного не хватает, то другого. Может Вы мне что-то подскажите.
ЮЮ (2003-03-13 06:27:00) [4]Тогда непонятно зачем вообще нужен Edit1?
DBLookupComboBox как раз и предназначен для того, чтобы выбрать из выпадаешего списка нужный NAMVUL а в поле KVUL подставить код?
Главный недостаток DBLookupComboBox перед Edit1 состоит лишь в том, что нужно очень быстро набирать буква названия и при этом не видно, что ты набрал. Вся эта функциональность реализована в RxDBLookupCombo. Очень рекомендую, т.к. сам никогда не использую стандартный DBLookupComboBox. Более того RxDBLookupCombo позволяет позиционироваться не только по ключевому полю, но и по отображаемому тексту.
Igor Kashtanov (2003-03-12 21:33:00) [5]В DBLookupComboBox.ListSource стоит DataSource9 в котором находится база улиц, с полями: KVUL (1-e поле - код улицы, который мне необходимо отправить в другой DataSource1; 2-e поле NAMVUL наименование улицы, которое необходимо отобразить в DBLookupComboBox),
KeyField - KVUL;
ListField - NAMVUL.
DataSource - DataSource1, в который, собственно говоря и необходимо отправить KVUL. DataField - KVUL (Там она тоже так называется). Очень благодарен за ответ.
ЮЮ (2003-03-11 04:33:00) [6]Что у тебя стоит в DBLookupComboBox.ListSource, KeyField, ListField? Заполнены ли DataSource и DataField?
Igor Kashtanov (2003-03-10 20:37:00) [7]To ЮЮ:
То ли я туплю, то ли одно из двух. Сделал абсолютно все как показано. Все равно при вводе в Edit1.Text любых символов DBLookupListBox показывает одно и то же значение, где-то в середине набора данных. Чего делать - без понятия.... HELP!!!!!
ЮЮ (2003-03-10 04:52:00) [8]>DBLookupListBox1.KeyValue:=DVTable.FieldByName("NAMVUL").Value;
Если DBLookupListBox1.KeyField = "NAMVUL", то первые две строки излишни, достаточно DBLookupListBox1.KeyValue := Trim(Edit1.Text), если же DBLookupListBox1.KeyField другое, то и подставлять надо его: DBLookupListBox1.KeyValue := DVTable.FieldByName(DBLookupListBox1.KeyField).Value
Igor Kashtanov (2003-03-10 01:46:00) [9]procedure TAb.Edit1Change(Sender: TObject);
begin
DVTable.IndexFieldNames:="NAMVUL";
DVTable.FindNearest([Edit1.Text]);
DBLookupListBox1.KeyValue:=DVTable.FieldByName("NAMVUL").Value;
end;
Результат сей процедуры таков: находит одно значение посредине списка. Естественно не то, что нужно. Не могу понять в чем причина.
sunrider (2003-03-09 23:12:00) [10]Искать нужно не в DBLookup а в Dataset с ним связанным,
а затем присваивать
DBLookupComboBox.KeyValue:=DataSet.FieldByName(<имя KeyValue поля>).Value.
Igor Kashtanov (2003-03-09 12:08:00) [11]Нет, в ListBox есть такая штука .perform(LB_SelectString, ....)
А в DBLookup это не работает...
Романов Р.В. (2003-03-09 08:45:00) [12]Locate ?