Чекбоксы в DBGridEh
Чекбоксы в DBGridEh
Есть DBGridEh. В нём создаю искуственную колонку с чекбоксами. Но они почему-то не нажимаются
т.е. состояние не меняется у этих чексов, они какбы недоступны, хотя сетка не ReadOnly...
Мне хотелось бы узнать, может кто справлялся с этой задачкой:
мне нужно, чтоб я отметил сколько угодно строк по этой колонке, а потом допустим, по нажатию
батона - в массив передались бы ID тех записей, которые были отмечены по этой искуственной
колонке...
Заранее Благодарен всем кто откликнется!
т.е. состояние не меняется у этих чексов, они какбы недоступны, хотя сетка не ReadOnly...
Мне хотелось бы узнать, может кто справлялся с этой задачкой:
мне нужно, чтоб я отметил сколько угодно строк по этой колонке, а потом допустим, по нажатию
батона - в массив передались бы ID тех записей, которые были отмечены по этой искуственной
колонке...
Заранее Благодарен всем кто откликнется!
Вариант 1. В запросе добавь:
либо
Вариант 2. В ран-тайме создавай BooleanField:
Единственно, будет вызываться обновляющий запрос. Поэтому придется подавлять его вызов.
Код: Выделить всё
0 AS SELECTED -- Флажок выключен по дефолту
Код: Выделить всё
1 AS SELECTED -- Флажок включен по дефолту
Код: Выделить всё
SelField := TBooleanField.Create(Owner);
... // Инициализация поля
Field.Add(SelField);
Последний раз редактировалось CyberMax 30 янв 2007, 11:45, всего редактировалось 1 раз.
Я вообще делаю немного по другому: Для каждой формы с гридом есть динамический целочисленный массив и при клике по "искусственной ячейке выделения" сразу заношу очередное выделенное ID в этот массив. А если оно там уже есть убираю от туда. Таким образом не прийдется делать FetchAll для датасета связанного с гридом когда понадобится получить ID всех отмеченных ячеек. А данных иногда бывает много - вполне возможна задержка.
Кстати я вообще не использую Дизайн-тайм поля для датасетов, а сделал бы так
select 0 SEL, t.*
from TABLE t
И создал бы колонку SEL. - Кстати для которой можно перекрыть метод OnDrawColumnCell и выводить какие угодно галочки абсолютно в любом гриде - даже в стандартном. Уменя в программе такая колонка есть практически во всех гридах - для удобства работы пользователей.
Кстати я вообще не использую Дизайн-тайм поля для датасетов, а сделал бы так
select 0 SEL, t.*
from TABLE t
И создал бы колонку SEL. - Кстати для которой можно перекрыть метод OnDrawColumnCell и выводить какие угодно галочки абсолютно в любом гриде - даже в стандартном. Уменя в программе такая колонка есть практически во всех гридах - для удобства работы пользователей.