Компонент DBGridEh, ADO Access и DateTimePicker в ячейках (Delphi)
Существует сильнейшая библиотека компонентов для работы с базами данных, под названием — EhLib. Так вот, аналогом стандартного DBGrid, в этой библиотеке является компонент DBGridEh. По сравнению с DBGrid, DBGridEh более гибкий и обладает гораздо большим диапазоном настроек.
В частности, для того чтобы отображать в ячейках какого либо столбца, выпадающий календарь DateTimePicker,
1) В базе Access в соответствующем столбце, тип указать — Дата/время;
2) Кликаем дважды по гриду, в редакторе столбцов — Editing DbGridEh1Columns выбираем Add All Fields, выделяем наш столбец и переходим к инспектору объектов.
3) Свойство AlwaysShowEditButton, ставим в true;
4) Чтобы компилятор не ругался на пустую строку типа » — не является типом DateTime, на кнопке для добавления новых строк, как вариант можно прописать следующее:
1 2 3 4 5 6 7 8 |
var a:Tdate; begin a:=Date; AdoTable1.Insert; // Добавляем в таблицу новую строку AdoTable1.FieldByName('имя столбца').AsDateTime:=a; //Присваиваем ячейке текущую дату AdoTable1.Post; end; |
5) Запускаем проект;
Теперь при вводе даты, ошибок возникать не будет, поскольку строке будет присваиваться текущая дата уже при добавлении, и поле не будет пустым.