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

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

Работа с DBGried.


Matveih1 ©   (2008-09-19 16:29:00) 

Как сделать так, что бы по нажатию на пробел выделялась строка в DBGried на которой стоит курсор, а если строка была выделена то выделение сбрасывалось и курсор переходил на следующую строку? Что то вроде множественного выбора но только с помощь пробела.


Matveih1   (2008-09-22 10:00:00) [1]

Спасибо MsGuns! Идея хорошая. Попробую реализовать


MsGuns   (2008-09-20 18:31:00) [2]

Пардон, вместо OnColumnCell читать OnDrawColumnCell


MsGuns   (2008-09-20 18:30:00) [3]

Самый простой способ:

Создать массив integer или список, куда помещать ID записи, которую пользователь выделяет Если запись уже была выделена, то из списка удалять ее ID.

В грид добавить колонку, связанную с полем, содержимое которого не надо отображать (лучше всего ID), в обработчик OnGetText этого поля прописать Text := '' для того, что в этой ячейке ничего не рисовалось. Либо вместо доп.колонки использовать цветовое или шрифтовое выделение

В обработчике OnColumnCell грида искать ID отрисовываемой записи в упомянутом массиве (списке) и, если найден, то рисовать там "чекнутый" чекбокс либо иконку с галкой.

Установку/снятие отметки выполнять в обработчике двойного клика или какой-либо другой клавиши

Для обработки всего выбранного перечня записей использовать идентификаторы выбранных записей в массиве или списке


Плохиш   (2008-09-19 18:28:00) [4]


> Matveih1 ©   (19.09.08 17:36) [10]

Это выходит за рамки встроенной обработки dgRowSelect. Реализуй сам.


Matveih1   (2008-09-19 17:36:00) [5]

При перемещении с помощь стрелок VK_LEFT, VK_UP, VK_RIGHT,VK_DOWN.

Вообще желательно при любом перемещении. Выделять стороку и сбрасывать выделение только при помощи пробела.


Правильный$Вася   (2008-09-19 17:33:00) [6]


> при перемещении по DBGried

чем и как?


Matveih1   (2008-09-19 17:24:00) [7]

Еще один вопрос. Как сделать чтобы при перемещении по DBGried то что было выделено не сбрасывалось?


Matveih1   (2008-09-19 17:16:00) [8]

СПАСИБО. Все получилось


Поросенок Винни-Пух   (2008-09-19 17:12:00) [9]

DBGrid.SelectedRows.CurrentRowSelected := not DBGrid.SelectedRows.CurrentRowSelected


Сергей М.   (2008-09-19 17:10:00) [10]


> как из выделить


Установка св-ва

DBGrid.SelectedRows.CurrentRowSelected := True

делает текущуюзапись дейтасета выделеннойпри ее выводе гридом.

Что тут не понятно ?


Matveih1   (2008-09-19 17:00:00) [11]

не очень помогло. Как обрабатывать выбранные я понял но вот как из выделить и что бы при это не отменилось то что было выделено что то никак.


Плохиш   (2008-09-19 16:50:00) [12]

SelectedRows + F1


Matveih1   (2008-09-19 16:46:00) [13]

Понятно что обработчи вешать на KeyPress.
DataSet.Next – на следующую строку переходит Спасибо.
Только не выделяет строку на которой был.


clickmaker   (2008-09-19 16:35:00) [14]

OnKeyPress
Options.dgRowSelect
DataSet.Next


Наверх

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