Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Фильтр таблицы [D7, WinXP]


Steplerr ©   (2006-04-07 19:31:00) 

Может быть тупой вопрос, но помогите пожалуйста. Имеется таблица и поле для ввода текста. Как сделать так, чтобы при изменении текста в поле в таблице отображались только значения начинающиеся с символов из поля?
Использовал ADOTable.


Desdechado   (2006-04-09 20:36:00) [1]

сорри за дубль
но зато обнаружилось, как они появляются
/оффтоп
Если ввести пароль и нажать кнопку, то страница переоткрывается не сразу. А случайное нажатие кнопки повторно (или более) вызывает очередное добавление поста.
/оффтоп


Desdechado   (2006-04-09 20:34:00) [2]

Удалено модератором


Desdechado   (2006-04-09 20:34:00) [3]

при мастер-детальной связке все еще хуже с таймером-то
трафик растет экспоненциально, а это плохо


Anatoly Podgoretsky   (2006-04-09 20:19:00) [4]

Desdechado ©   (09.04.06 20:14) [13]
Всему свое место, в данном случае таймер не помешает, а поможет, но если он введет кнопку то таймер будет лишним. Еще более полезен данный таймер в связи мастер/детайл при навигации.


Desdechado   (2006-04-09 20:14:00) [5]

> Те кто не в состоянии
если это камень в мой огород, то я в состоянии, только смысла не вижу именно в этом случае
хотя и пользуюсь иногда задержками подобного рода


Anatoly Podgoretsky   (2006-04-08 22:24:00) [6]

Desdechado ©   (08.04.06 21:18) [11]
Те кто не в состоянии, не смогут воспользоваться преимуществами таймера и для них не будет разницы. Вариант с кнопкой "выполнить" также имеет право на существование.


Desdechado   (2006-04-08 21:18:00) [7]

Не вижу смысла обрабатывать паузы между нажатиями. Глупо ожидать от пользователя равномерности нажатия, он ведь и букву на клаве может не сразу найти, да и траффик при таком подходе ужасный.
Самый нормальный подход: набрал комбинацию, нажал кнопку, получил ответ. Не понравилось - изменил, до/перенабрал, нажал кнопку, получил ответ. Иное, имхо, от лукавого.


Anatoly Podgoretsky   (2006-04-08 19:40:00) [8]

Без таймера придется делать запрос на каждый чих, с таймером по паузе.
Очень полезно, если в состоянии нажимать клавиши со скоротью паузы.


Anatoly Podgoretsky   (2006-04-08 19:40:00) [9]

В дополнение так работает весь виндус, например при навигации или поиска в проводнике


Mike Kouzmine   (2006-04-08 16:06:00) [10]

Anatoly Podgoretsky ©   (08.04.06 12:32) [7] Я и спрашиваю, почему
Desdechado ©   (07.04.06 20:50) [3]
> в идеале желательно использовать таймер
еще один мертворожденный совет


Anatoly Podgoretsky   (2006-04-08 12:32:00) [11]

Таймер нужен, чтобы не умереть. Не надо на каждый чих делать запрос.


Рустем   (2006-04-08 12:31:00) [12]


> Плохиш ©   (08.04.06 04:04) [5]
> А я тоже не понял каким боком здесь таймер?

Открой Delphi, нажми клавишу F1, нажми кнопочку "Вызов справки", перейди на закладку "Поиск" и попробуй в строке поиска без пауз набрать несколько символов...поиск будет осуществляться после паузы (по умолчанию параметров поиска).


> Desdechado ©   (07.04.06 20:50) [3]
> > в событии OnChange компонента TEdit
> не делай так, умрешь

Аргументировать надо!


Плохиш   (2006-04-08 04:04:00) [13]

А я тоже не понял каким боком здесь таймер?


Mike Kouzmine   (2006-04-07 23:51:00) [14]

Desdechado ©   (07.04.06 20:50) [3] > в идеале желательно использовать таймер
еще один мертворожденный совет

Почему?


Desdechado   (2006-04-07 20:50:00) [15]

> в событии OnChange компонента TEdit
не делай так, умрешь

> в идеале желательно использовать таймер
еще один мертворожденный совет

автору
на первой же странице
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1144406589&n=1


Рустем   (2006-04-07 20:21:00) [16]


> Steplerr ©

Для начала советую использовать TADODataSet. Далее в событии OnChange компонента TEdit прописать следующее:

procedure TForm.EditChange(Sender: TObject);
begin
 with ADODataSet do
 begin
   Close;
   CommandText := 'SELECT * FROM MyTable WHERE MyField LIKE "' + Edit.Text + '%"';
   Open;
 end;
end;

Кроме того, возможно тебе понадобится такая функция, как AnsiUpperCase. И в идеале желательно использовать таймер...


mr.il   (2006-04-07 19:48:00) [17]

Почитай хелп про фильтрацию. Или пользуй sql.


Наверх

Титульная страница Поиск, карта сайта Написать письмо