![]() |
|
![]() ![]() ![]() |
|
pavelv |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 245 Регистрация: 5.2.2006 Репутация: нет Всего: нет |
Всем привет.
На форме есть TEdit. На OnChange прописано выполнение запроса в sql(фильтр по названию). Хочется чтобы OnChange срабатывал когда человек уже закончил ввод сиволов, тоесть с задержкой 0.3с или какой-либо другой. Думал как такое реализовать. Мысль одна взять таймер с интервалов 0.3с и сначала выключать, потом включать его после каждого нажатого символа, если в таймер будет второй заход то вызывать процедуру. Но метод немного топорный, куча флагов и в общем красоты кода такая реализация не добавит ![]() |
|||
|
||||
dumb |
|
||||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: нет Всего: 158 |
какая куча флагов?!
в дизайнере на таймере поставь Interval=0. в Edit-OnChange:
в Timer-OnTimer:
|
||||
|
|||||
~FoX~ |
|
|||
![]() НЕ рыжий!!! ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2819 Регистрация: 8.10.2003 Где: Зеленоград Репутация: 4 Всего: 68 |
pavelv, вообще по онченджь выполнять запросто это не есть хорошо.....Поставь ты кнопку рядом с едитом и как только человек закончит набирать он ее нажмет.....Ну на крайний случай пусть по окончании набора ентер надавит...
|
|||
|
||||
pavelv |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 245 Регистрация: 5.2.2006 Репутация: нет Всего: нет |
~FoX~ в принципе если сделать нужную задержку думаю не нужно лепить лишние кнопки. На OnEnter вариант тоже рассматривался, сам посидел понажимал и когда на onChange срабатывает понравилось куда больше. Комфорт тоже требует жертв
![]() |
|||
|
||||
mutex |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 17.10.2004 Репутация: 2 Всего: 3 |
pavelv. Событие OnExit не подходит?
|
|||
|
||||
dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: нет Всего: 158 |
|
|||
|
||||
pavelv |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 245 Регистрация: 5.2.2006 Репутация: нет Всего: нет |
mutex OnExit не подходит. Ситуация такая: во-время ввода данных идёт фильтр в базе на like и хочется сразу видеть все объекты отфильтрованные. Поэтому OnChange и сделал, как самое удобное в данном случае.
dumb если честно не хотелось захламлять форму, хотя скорее всего ты и прав. Если что-нибудь когда-нибудь косякнёт за***шься исправлять ![]() |
|||
|
||||
Bose |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1458 Регистрация: 5.3.2005 Где: Riga, Latvia Репутация: 9 Всего: 51 |
dumb, +1
я тоже такие штуки через таймер делаю. |
|||
|
||||
Deniz |
|
||||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1251 Регистрация: 16.10.2004 Где: Новый Уренгой Репутация: 8 Всего: 44 |
а смысл?
Можно и в одном обработать, просто правильно рассчитать интервал и ввести приватную переменную Например интервал = 100 т.е. 10 раз в секунду в Edit-OnChange:
в Timer-OnTimer:
-------------------- "Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с) |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "Delphi: Базы данных и репортинг" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |