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

Вниз

Пошаговый поиск по таблице.   Найти похожие ветки 

 
Слава-АБС ©   (2005-10-13 13:57) [0]

Уважаемые мастера! Подскажите с идеей алгоритма пошагового поиска по dbgrid.
Это когда допустим, я ищу слово "ELASTIC" и набираю E-L-A и т.д. По мере ввода символов при каждом приращении в комбинации набранных букв ищется соответствующее им слово. Иначе говоря, сначала ищется первое слово, начинающееся на E, далее первое слово, начинающееся на EL, и т.д.

В Visual FOX есть функция IncrementalSearch, а в Delphi?


 
Seg   (2005-10-13 14:04) [1]

В Дельфи есть Locate


 
Sergey13 ©   (2005-10-13 14:04) [2]

Полистай форум. Каждую неделю наверное этот вопрос задается.


 
ANB ©   (2005-10-13 14:08) [3]


> Слава-АБС ©   (13.10.05 13:57)

В элибовском гриде такая функциональность встроена.


 
ANB ©   (2005-10-13 14:09) [4]

В смысле эхлибовском.


 
Ega23 ©   (2005-10-13 14:13) [5]

В Edit1.OnChange пишем
DBGrid.DataSource.DataSet.Locate(имя_поля, Edit1.Text, [])


 
Amoeba ©   (2005-10-13 14:41) [6]

Удалено модератором
Примечание: Автор не разрешал приводить пароль где либо


 
msguns ©   (2005-10-13 14:47) [7]

>Ega23 ©   (13.10.05 14:13) [5]
>В Edit1.OnChange пишем
DBGrid.DataSource.DataSet.Locate(имя_поля, Edit1.Text, [])

А если в эдите нет ничего ?


 
Слава-АБС ©   (2005-10-13 15:32) [8]

Уточнил, оказывается это называется инкрементный поиск.
А вот исходник от Ega23, не совсем то.
Я хотел, когда именно в гриде набираешь, чтобы шло перемещение...


 
Anatoly Podgoretsky ©   (2005-10-13 15:35) [9]

Как раз то


 
Sergey13 ©   (2005-10-13 15:44) [10]

2 [8] Слава-АБС ©   (13.10.05 15:32)
>Я хотел, когда именно в гриде набираешь, чтобы шло перемещение...
Это как это? Ты в нем набираешь (в конкретной ячейке, заметь, иначе где? ), а он перемещается (т.е. активная запись меняется). Как ты себе это представляешь?


 
Sergey13 ©   (2005-10-13 15:49) [11]

2[8] Слава-АБС ©   (13.10.05 15:32)
А ты случайно не про поиск в выпадающем списке?


 
Ega23 ©   (2005-10-13 15:57) [12]

Если стоя на гриде, на определённом столбце - тоже можно. Идея такая - заводишь буффер, в которое буквы пишешь, по этому столбцу делаешь Locate. При переходе на другой столбец - обнуляешь буффер.

2 msguns ©   (13.10.05 14:47) [7]

> А если в эдите нет ничего ?


if Edit1.Text<>"" then DBGrid.DataSource.DataSet.Locate(имя_поля, Edit1.Text, [])

Устроит?   :о)


 
Sergey13 ©   (2005-10-13 16:02) [13]

2[12] Ega23 ©   (13.10.05 15:57)
Неудобно печатать в пустоте. Не видно ничего. 8-)


 
Ega23 ©   (2005-10-13 16:03) [14]


> Неудобно печатать в пустоте. Не видно ничего. 8-)
>


Я в StatusBar строку поиска вывожу. Нормально.


 
Слава-АБС ©   (2005-10-13 16:49) [15]

На DBGrid1KeyPress посадил
if not(key in["0".."9"]) then key:=#27;
FS:=FS+key;
DBGrid1.DataSource.DataSet.Locate("ACCOUNT", FS, [loPartialKey]);

2Sergey13 Переходит по записям нормально, именно так как представлял, осталась одна фича, как менять цвет фона? В StatusBar не совсем красиво выводить вводимые данные, а желание такое, если набрал одну цифру, то у нее фон меняется, если 2 то фон меняется у двух и т.д.


 
evvcom ©   (2005-10-13 17:15) [16]


> В элибовском гриде такая функциональность встроена.

У... а в QuantumGrid-е как это встроено...! Можно даже к следующей/предыдущей записи, удовлетворяющей набранному, переходить, не набирая дополнительного символа.



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

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

Наверх




Память: 0.5 MB
Время: 0.16 c
4-1125891164
LEXX_55
2005-09-05 07:32
2005.11.06
Как изменить кодировку в TXT


3-1127551148
Виталька2005
2005-09-24 12:39
2005.11.06
Paradox и сетевой доступ


6-1122116863
PSV84
2005-07-23 15:07
2005.11.06
сеть RS485/RS232


14-1129264678
NewWonder
2005-10-14 08:37
2005.11.06
Хороший сайт - какой он?


14-1129270901
msguns
2005-10-14 10:21
2005.11.06
Мед