Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Выделение строк в DBGrid с помощью ChackBox'ов


Страницы:   1 2

КаПиБаРа ©   (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]

>В голову приходит много всяких способов реализации
Агласите весь список пожалста. (с) Операция Ы


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо