![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Выделение строк в DBGrid с помощью ChackBox'ов
КаПиБаРа © (2005-02-03 13:06:00)Пользователю нужно отметить в DBGrid некоторые строки для последующих операций с ними.
В голову приходит много всяких способов реализации. Какие провереные способы посоветуете?
Vlad (2005-02-03 14:36:00) [21]
> msguns © (03.02.05 14:33) [9]
примерно так и описано на Королевстве (см. ссылку Соловьева)
как вариант можно и поле добавить, почему НД обязательно нередактируемый?
msguns (2005-02-03 14:33:00) [22]>Johnmen © (03.02.05 13:39) [6]
>Добавляешь в запрос фиктивное поле.
А в наборе данных с ним манипулируешь, как хочешь.
Так ведь НД вроде как нередактируемый ? Если, конечно, не клиентский датасет.
Я делал когда-то так:
Создавал список (TList) идентификаторов помеченных записей
Когда узер тыкает (отмечает) нужную запись, то ее ID ищется в списке и, если не находится, то добавляется, иначе - удаляется
В событии перерисовки ячейки ID перерисовываемой записи (немного коряво звучит, но здесь поймут, надеюсь) ищу в списке. Если есть, то рисую "галочку" (или жмякнутый чекбокс), если нет, то ничего не рисую или нежмякнутый чекбокс.
Учитывая, что обычно "жмякнутых" записей бывает немного, то список не бывает большим и поиск выполняется мгновенно.
>New11 (03.02.05 13:46) [7]
>а MultiSelection на что?
Это не то, что надо
>New11 (03.02.05 13:54) [8]
>или СheckListBox можно заюзать
Еще лучше ;))
New11 (2005-02-03 13:54:00) [23]или СheckListBox можно заюзать
New11 (2005-02-03 13:46:00) [24]а MultiSelection на что?
Johnmen (2005-02-03 13:39:00) [25]Добавляешь в запрос фиктивное поле.
А в наборе данных с ним манипулируешь, как хочешь.
Детали зависят от БД, движка etc...
Vlad (2005-02-03 13:38:00) [26]
> КаПиБаРа © (03.02.05 13:28) [2]
select null as Selection, a.* from table a
получаем фиктивное поле в наборе данных, и, соотв. в гриде.
Там, в событии OnDrawColumnCell прорисовываем Чекбоксы. Затем, обрабатываем клик на этом поле.
Sergey13 (2005-02-03 13:35:00) [27]>Добывить вычисляемое логическое поле в DataSet
Можно попробовать, но наверное не вычисляемое, а фиктивное.
>или пустой столбец в DBGrid
Это вряд ли.
Я делал так. Заливал НД в таблицу в памяти RxMemoryData, добавлял в него поле и совал это все в грид с галочкой. Вместо RxMD можно юзать CDS.
> Нужно компетентное мнение.
У меня его нет.
Соловьев (2005-02-03 13:35:00) [28]http://www.delphikingdom.com/asp/viewitem.asp?catalogid=168#link6
КаПиБаРа (2005-02-03 13:28:00) [29]Sergey13 © (03.02.05 13:09) [1]
Добывить вычисляемое логическое поле в DataSet или пустой столбец в DBGrid. При клике на ячейке отмечать строку в букмарке или заносить ИД в массив. Что лучше? Нужно компетентное мнение.
Sergey13 (2005-02-03 13:09:00) [30]>В голову приходит много всяких способов реализации
Агласите весь список пожалста. (с) Операция Ы