|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
02.02.2012, 11:56 | #1 |
Пользователь
Регистрация: 15.01.2012
Сообщений: 67
|
Фильтрация в ячейке DBGrid
Часто видел в разных БД-таблицах (в том же одинэсе) реализацию фильтра, когда пользователь вводит маску в произвольную ячейку нужного столбца. Вооот. Но не могу найти каких-нибудь туториалов, как такое организовать в дбгриде в тёплой ламповой дельфи7. Может кто-нибудь знает?
|
02.02.2012, 12:00 | #2 |
Пользователь
Регистрация: 15.01.2012
Сообщений: 67
|
И ещё уточню. В принципе не было бы проблемой написать обработчик события. Мол, если нажимаем кнопку в ячейке в режиме редактирования, то редактируем, а если просто в выделенной ячейке, то отображаем какое-нибудь оконце ввода фильтра (хотя как его совместить с ячейкой всё ещё не очень ясно).
Но я что-то не вижу способов узнать, хотябы в режиме редактирования датасет или нет. Вооот. |
02.02.2012, 12:27 | #3 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Для пользователя достаточно сложно будет переключать в режим редактирования или ввода фильтра, будет постоянная путанница, ИМХО. По существу - создайте Field-ы в DataSet, в событии OnSetText Field-ов в режиме задания условия фильтра не пишите в Field.Value, а организуйте инициализацию фильтровки. Следует учесть, что DataSet.Edit все равно отработает, хотя данные в поле и не изменятся, соответственно и DataSet.Post сработает, даже если вы не захочете этого (например при смене указателя записи).
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
02.02.2012, 16:43 | #4 |
Пользователь
Регистрация: 15.01.2012
Сообщений: 67
|
В принципе-то, в моём случае я предполагаю, что редактирования данных в гриде всё равно не будет - только поиск. То есть, он будет ридонли, и пользователь может колотить клавишами сколько хочет. В режим редактирования он не попадёт в любом случае.
Про создание полей не совсем понял, имеется в вижу, чтобы текст из режима редактирования перехватывать и использовать для фильтра? |
02.02.2012, 17:00 | #5 | |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Цитата:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
|
04.02.2012, 18:44 | #6 |
Пользователь
Регистрация: 15.01.2012
Сообщений: 67
|
У меня тут возникла гениальная идея. Можно ведь просто завести один банальный Edit, а при щелчке по колонке рисовать его над соответстующей ячейкой/колонкой, ну и другие свойства там менять, чтобы фильтр правильно применялся - это уже детали. Но, опять встала неразрешимая проблема - как узнать координаты хотя бы колонки, я уж не говорю о йчейке. :D Гуглю, гуглю, а ничё дельного не гуглится.
|
04.02.2012, 19:00 | #7 |
Форумчанин
Регистрация: 13.07.2010
Сообщений: 346
|
а событи в DBGrid - OnColEnter OnColExit не могут помочь?
Non est culpa vin, sed culpa bibentis
|
04.02.2012, 19:12 | #8 |
Пользователь
Регистрация: 15.01.2012
Сообщений: 67
|
Да там я смотрю вообще никаких данных не передаётся. Нет, нашёл решение - в событии ондровколумнцэлл передаётся нужный рект, а поскольку при клике и выделении ячейки перерисовывается именно нужная ячейка (максимум - выделенная строка), то и рект получаю нужный, проверив, фокусед ли ячейка или нет. Вот теперь-то заживём!
|
04.02.2012, 19:15 | #9 |
Форумчанин
Регистрация: 13.07.2010
Сообщений: 346
|
в помощь тоже стоит заглядывать
OnColEnter, OnColExit ----------------- The SelectedField or SelectedIndex property is set. Read the SelectedField or SelectedIndex property to determine which cell was just entered.
Non est culpa vin, sed culpa bibentis
|
04.02.2012, 19:43 | #10 |
Пользователь
Регистрация: 15.01.2012
Сообщений: 67
|
А у меня в семёрке дельфовский хелп не работет.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Фильтрация по дв.клику DBGrid. | sanchosss | БД в Delphi | 3 | 07.12.2011 13:52 |
Фильтрация DBGrid Delphi7 | MrMorozko | Помощь студентам | 1 | 22.11.2010 15:40 |
Сортирование и фильтрация DBGrid | Stranger333 | Помощь студентам | 2 | 08.03.2010 20:49 |
фильтрация в DBGrid | ГОСЕАН | БД в Delphi | 4 | 17.07.2007 17:05 |
Фильтрация по месяцу DBgrid .... | khaz | БД в Delphi | 5 | 28.04.2007 14:03 |