Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.08.08;
Скачать: CL | DM;

Вниз

Хочу узнать мнение в подходах решения след.задачи   Найти похожие ветки 

 
kserg@ukr.net   (2002-07-19 13:46) [0]

Народ, подскажите вар-ты возможных решений для след.проблемки.
Может кто вообще другой подход мне подскажет.
Вообщем, в любом случае буду признателен.

Есть модал.форма ввода данных в БД. На ней куча TEdit-ов.
Для удобства ввода юзером есть алгоритм "быстрого ввода", суть котр.: по событию TEdit.OnChange осуществляется поиск в БД через параметризованый SQL, рез-ты котр. вывожу в DBGrid.
Сам DBGrid изначально невидим, а в событии TEdit.OnEnter я поизционирую Grid в нужное место под TEdit-om и делаю его видимым.
В TEdit-e юзер может набирать слово, или нажать <вниз> / <вверх>
для прокрутки в DBGrid-e или <Enter> для выбора нужного значения из DBGrid и подстановки его в TEdit.
Затем, по событию TEdit.OnExit делаю Grid невидимым.
Алгоритм в общем мною отработан, но вот осталась одна неприятная мелочь.
Проблемка в том, что юзер набирая слово и затем видя нужное слово в Gride интуитивно пытается сделать выбор из Grid-a не нажатием <Enter>, а ткнув мышой. А это приводит к тому, что срабатывает TEdit.OnExit и вместо выбора Grid просто скрывается.

Какие будут предложения?


 
kalliopiy ©   (2002-07-19 13:56) [1]

Это хорошо, что ты вот так все расписал, но лучше бы ты на словах рассказал какая у тебя задача, т.е. что бы тебе хотелось получить на выходе. Я так понимаю, что необходимо дать возможность пользователю делать ввод с подстановкой. А нельзя ли просто использовать LookupComboBox?

Во всяком случае твой вариант с видимостью/невидимостью грида - не лучшее решение, поскольку такое моргание никого в восторг не приведет...


 
kaif ©   (2002-07-19 14:29) [2]

Человек хочет сделать контекстное меню с реакцией по нажатию каждой клавиши, по моему. Это хорошо смотрится. Просто Grid - слишком тяжелый компонент для отображения такого списка. Лучше сделать свой компонент вместо TEdit для этой цели. Хотя это не так просто... Но можно посмотреть, как сделаны разные TDBComboBox- ы и понять принцип.


 
kserg@ukr.net   (2002-07-19 14:38) [3]

>kalliopiy © (19.07.02 13:56)
>А нельзя ли просто использовать LookupComboBox?
А разве можно из LookupComboBox внести значение в TEdit, при этом не меняя значения LookupComboBox?


 
kalliopiy ©   (2002-07-19 14:39) [4]


> kaif © (19.07.02 14:29)


Есть такие штуки. Надо ему взять RxLib. Там по-моему как раз то, что нужно есть.


 
kserg@ukr.net   (2002-07-19 14:45) [5]

>kalliopiy © (19.07.02 14:39)
>Есть такие штуки. Надо ему взять RxLib.
Вот это уже ближе к телу :-)
А чем конкретно надо воспользоваться:
RxDBLookupCombo1 или RxLookupEdit1 ?


 
kalliopiy ©   (2002-07-19 14:48) [6]


> А чем конкретно надо воспользоваться:
> RxDBLookupCombo1 или RxLookupEdit1 ?

Здается мне, что лучше взять RxLookupEdit. Хотя два эти компонента достаточно похожи. Если у тебя к ним хелп есть, я думаю ты разберешься.


 
kserg@ukr.net   (2002-07-19 14:55) [7]

Хелпа у меня к сожалению нет.
Взял RxLookupEdit1, но видать не включил какую-то "птичку", но список при вводе не открывается.


 
kaif ©   (2002-07-19 15:01) [8]

Может, там есть DropDown := True или метод DropDown. Вызови его по KeyPressed.


 
kserg@ukr.net   (2002-07-19 15:05) [9]

Увы, всё таки это немного нето: в RxLookupEdit1 поиск идет по первым символам, а в моем вар-те - поиск выполнялся через SQL по условию like "%%", соот-но юзер при вводе видит постоянно уменьшающийся список со всеми значениями, подходящими к ключевому слову.


 
kalliopiy ©   (2002-07-19 15:05) [10]

Да вы чего ребята?

Установил правильно LookupSource, LookupField, LookupDisplay ?

Тогда поставь в false PopupOnlyLocate и стартуй, так сказать!



Страницы: 1 вся ветка

Текущий архив: 2002.08.08;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.014 c
1-24106
SPeller
2002-07-25 12:56
2002.08.08
PChar


1-24063
Sub
2002-07-26 09:50
2002.08.08
Задача


1-24118
vinger
2002-07-26 20:25
2002.08.08
serial


8-24135
DEN[BRAGA]
2002-04-03 15:54
2002.08.08
программирование


1-24007
ivlex
2002-07-28 12:14
2002.08.08
Получение ASCII-кода символа