Компонент DBGridEh, ADO Access и чекбоксы в ячейках (Delphi)
Существует сильнейшая библиотека компонентов для работы с базами данных, под названием — EhLib. Так вот, аналогом стандартного DBGrid, в этой библиотеке является компонент DBGridEh. По сравнению с DBGrid, DBGridEh более гибкий и обладает гораздо большим диапазоном настроек.
В частности, для того чтобы отобразить один из его столбцов с чекбоксами, достаточно в Access в соответствующем столбце, тип указать — Логический. Остальное компонент берет на себя.
По умочанию, чекбокс отображается уже с галочкой, и чтобы программно его очистить, (при открытии формы например, или при добавлении новой строки):
1) В событии OnShow на форме, достаточно прописать следующим код:
1 2 3 4 5 |
begin ADOTable1.Edit; ADOTable1.Fields.FieldByName('имя столбца').AsVariant:=false; //Если используете ADOQuery, пишите ADOQuery1 вместо ADOTable1; ADOTable1.Post; end; |
А для того чтобы наоборот, его программно выделить, false просто поменяйте на true.
Можно по нажатию Button пройтись по ячейкам циклом, для того чтобы выделить все например:
1) В событии OnClick на Button прописываем:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
var a:Integer; begin ADOTable1.First; ADOTable1.Edit; For a:=0 To ADOTable1.RecordCount-1 Do begin ADOTable1.Edit; ADOTable1.Fields.FieldByName('имя столбца').AsVariant:=true; //Если используете ADOQuery, пишите ADOQuery1 вместо ADOTable1; ADOTable1.Post; ADOTable1.Next; end; end; |
А для того чтобы наоборот, снять выделение со всех ячеек, то как всегда true просто поменяйте на false.