我想在DBGRID中的某一个网格里放俩个时间控件,一个DateTimePicker选择日期,另外一个DateTimePicker选择时间,然后我要将日期和时间组合成一个字符串保存到数据表里,所以该字段不可以是DATETIME类型,因为这个字段的长度超出了8,要既显示日期又要显示时间。我不知道如何将DateTimePicker控件放在DBGRID上,请大家帮忙啊,这个问题被卡了一天了,谢谢。在DBGRIDEH中可以实现也行。
解决方案 »
- 半夜三点起来偷菜的同志们受累了,向你们致敬
- 怎样用代码压缩access数据库?
- 关于在一个procedure中调用另一个procedure的问题~~~
- ACCESS入库问题,急在线等(DELPHI语言)
- 加密文件夹后,重装电脑系统后,无法恢复过来,如何办???
- *************很奇怪的问题,用quickrep打印的报表,在喷墨打印机上打印一切都正常,打印阅览、和打印都非常正常,但是在激光打印机上预
- 请大家教我怎么写线程!回答的好份都给你!
- 带孔压感纸打印问题:x希望打印几行记录之后纸张不自动走出空白部分
- 把整型数字转为字符型的函数是什么?
- 能从对方的发过来的UDP信息中得知对方的ip和端口吗?
- 关于选择人生道路发展的?CSDN的是朋友进来聊两句,给我指个明路!
- 没事常散分
Here's how to place a TDateTimePicker into a DBGrid. Create visually more attractive user interfaces for editing date/time fields inside a DBGrid - place a drop down calendar into a cell of a DBGrid. procedure TForm1.DBGrid1DrawColumnCell
(Sender: TObject;
const Rect: TRect;
DataCol: Integer;
Column: TColumn;
State: TGridDrawState);
begin
if (gdFocused in State) then
begin
if (Column.Field.FieldName = 'DateAdded') then
with DateTimePicker do
begin
Left := Rect.Left + DBGrid1.Left + 1;
Top := Rect.Top + DBGrid1.Top + 1;
Width := Rect.Right - Rect.Left + 2;
Width := Rect.Right - Rect.Left + 2;
Height := Rect.Bottom - Rect.Top + 2; Visible := True;
end;
end
end;procedure TForm1.DBGrid1ColExit(Sender: TObject);
begin
if DBGrid1.SelectedField.FieldName = 'DateAdded' then
DateTimePicker.Visible := False
end;procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
if (key = Chr(9)) then Exit; if (DBGrid1.SelectedField.FieldName = 'DateAdded') then
begin
DateTimePicker.SetFocus;
SendMessage(DateTimePicker.Handle, WM_Char, word(Key), 0);
end
end;procedure TForm1.DateTimePickerChange(Sender: TObject);
begin
if DBGrid1.DataSource.State in [dsEdit, dsInsert] then
ADOTable1DateAdded.Value := DateTimePicker.DateTime;
end;procedure TForm1.DateTimePickerDropDown(Sender: TObject);
begin
DBGrid1.DataSource.Edit;
end;