Инкрементный поиск в Grid (да и не только)

Возможность быстрого поиска по базе

Инкрементный поиск в Grid (да и не только)

Посмотрев на бурные обсуждения проблемы быстрого поиска в Grid, я вспомнил, что сам когда-то делал нечто похожее в своем приложении. Это не класс, не объект (просто лень тратить время на оформление). А сама процедура проста до безобразия:

Метод KeyPress формы, в которой расположен Grid(List):

LPARAMETERS nKeyCode, nShiftAltCtrl

cValidString="abcdefghijklmnopqrstuvwxyzабвгдеёжзийклмнопрстуфхцчшщъыьэюя1234567890 '"+'!@#$%^&*()_+№;%:?*()/|,.[]{}-=-"'

if ATC(CHR(nKeyCode), cValidString)>0
This.SearchString=This.SearchString+CHR(nKeyCode) && Добавляем введенный символ в переменную
This.OLEControl1.Panels(2).Text=' Быстрый поиск: "'+This.SearchString+'" ' && Обновление строки подсказки
=Seek(This.SearchString, "Abonenty", This.ColumnsArray(This.CurrentColumn)) && Поиск по текущей колонке
If Found()
This.Grid1.SetFocus
endIf
This.TimeOutTimer.Interval=3000 && Запуск таймера на очистку строки поиска через 3 секунды
NoDefault
endIf

Несмотря на топорность решения это работает быстро, не требует упорядочивания набора данных по колонке поиска (хотя для удобства поиска рекомендуется его делать) и привязано не к объекту, а к таблице. Таким же образом я делал поиск и в List'е, и в TreeView.

Автор: Евгений Колмаков
0

Автор публикации

не в сети 20 лет

Zheka

0
Комментарии: 0Публикации: 1Регистрация: 21-06-2001
Оставить комментарий
Авторизация
*
*
Генерация пароля