Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
1-1129547697
Oleg_
2005-10-17 15:14
2005.11.06
как задать шрифт заголовка окна под win 2003


4-1126025128
Gest
2005-09-06 20:45
2005.11.06
WMI библиотека


2-1129391518
DimaDima
2005-10-15 19:51
2005.11.06
к массивам по индексам в их имени


2-1128313620
Domix
2005-10-03 08:27
2005.11.06
Консоль + Графика


6-1122268035
joisy
2005-07-25 09:07
2005.11.06
Контроль и Сохранение Веб Страниц





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский