Существует сильнейшая библиотека компонентов для работы с базами данных, под названием - Ehlib. Так вот, аналогом стандартного DBGrid, в этой библиотеке является компонент DBGridEh. По сравнению с DBGrid, DBGridEh более гибкий и обладает гораздо большим диапазоном настроек. В частности, для того чтобы отобразить один из его столбцов с чекбоксами, достаточно в Access в соответствующем столбце, тип указать - Логический.
Остальное компонент берет на себя.
По умочанию, чекбокс отображается уже с галочкой, и чтобы программно его очистить, (ну при открытии формы например, или при добавлении новой строки):
1) В событии OnShow на форме, достаточно прописать следующим код:
begin
ADOTable1.Edit; ADOTable1.Fields.FieldByName('имя столбца').AsVariant:=false;
//Если используете ADOQuery, пишите ADOQuery1 вместо ADOTable1;
ADOTable1.Post;
end;
А для того чтобы наоборот, его программно выделить, false просто поменяйте на true. Можно по нажатию Button пройтись по ячейкам циклом, для того чтобы выделить все например:
1) В событии OnClick на Button прописываем:
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.
Комментариев нет:
Отправить комментарий
Примечание. Отправлять комментарии могут только участники этого блога.