Форум: "Начинающим";
Текущий архив: 2005.11.06;
Скачать: [xml.tar.bz2];
ВнизПошаговый поиск по таблице. Найти похожие ветки
← →
Слава-АБС © (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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.036 c