![]() |
|
|
![]()
|
|
| User |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 5.11.2004 Репутация: нет Всего: нет |
Попытался сделать код для быстрого поиска записи в таблице по вводу первой буквы с клавиатуры. Но пришлось применить для этого Edit, который выводится для вставки этой самой буквы. А вот как сделать без него незнаю. Может кто подскажет? А лучше пример поподробнее.....
Код привожу:
|
|||
|
||||
| User |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 5.11.2004 Репутация: нет Всего: нет |
Я так понимаю что не кто не знает ка это сделать?
|
|||
|
||||
| DimW |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 5 Всего: 44 |
единственное что приходит на ум то SELECT c LIKE использовать, но это не совсем что те нужно, не будет перехода по записям...
мда, вот это вопрос....!!! мне уже самому интересно!!! ну модераторы слово за вами... возтожно ли это сделать средстрами TTable? |
|||
|
||||
| Dimich |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 247 Регистрация: 25.8.2004 Где: Брянск Репутация: 3 Всего: 7 |
Вот, что удалось наспех набросать:
По хорошему, тут бы еще применить закладки (BookMark) и обработать еще парочку событий кроме OnBeforeOpen и OnBeforeEdit. Да, пример конечно сырой. Как есть, его юзать нельзя, но думаю, мысль можно развить или свое что другое придумаете, если это не подходит..... --------------------
Не работает - исправь, работает - не трогай!!! |
|||
|
||||
| DimW |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 5 Всего: 44 |
тут немного другая проблема...
Locate-ищет полное совпадение, а надо по первым симвалам- нажал "а" и курсор должен перейти на слово начинающееся с символа "а" и т.д. есть способ который я использовал, но нехотелось предлогать его потомучто он мне не очень нравится... но от без исходности можно применить... В цикле до конца таблицы делаещь что то вроде: While not Table.EOF do begin if copy(Table.FieldByName('field_name').asstring,1,length(key))=key then break; Table.next; end; блин ненравится мне это.... слишком явно курсор по строкам бегает!!! А если строк 10000 то ждать запаришися пока добежит... |
|||
|
||||
| Dimich |
|
||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 247 Регистрация: 25.8.2004 Где: Брянск Репутация: 3 Всего: 7 |
--------------------
Не работает - исправь, работает - не трогай!!! |
||||||
|
|||||||
| DimW |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 5 Всего: 44 |
мда ступил я.... извиняюсь за свое незнание!!! |
|||
|
||||
| Dimich |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 247 Регистрация: 25.8.2004 Где: Брянск Репутация: 3 Всего: 7 |
DimW, даже самый крутой профессионал может допустить ошибку, но от этого он не перестанет быть профи, если умеет свои ошибки признавать. Так что все Ok!
--------------------
Не работает - исправь, работает - не трогай!!! |
|||
|
||||
| Bes |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 806 Регистрация: 8.12.2004 Репутация: 2 Всего: 7 |
Тут где-то мы уже эту проблему решили путем like+locate. Замечательно получилось. Поищи на форуме по-лучше.
|
|||
|
||||
| User |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 5.11.2004 Репутация: нет Всего: нет |
Спасибо большое за ответы, господа. Но вот небольшой момент который почемуто не где необсуждается для данного примера. А как сделать ввод букв, как бы невидимо, как в виндах при поиске нужного названия папки или файла. Просто выделяем файл и вводя буквы перескакиваем на нужный. Такое можно както проделать и для Table в DBGrid. Заранее спасибо за ответ!
|
|||
|
||||
| Bes |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 806 Регистрация: 8.12.2004 Репутация: 2 Всего: 7 |
Ну дак ты обрабатывай онкейдаун грида и потом уже делай поиск.
|
|||
|
||||
![]()
|
| Правила форума "Delphi: Базы данных и репортинг" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |