初始化日期时间格式的习惯

默认的lazarus DBGrid选择Datetime类型时是没有下拉选择日期的,按以下方法就能实现下拉选择日期。

0]该字段一定要是date类型的。

CREATE TABLE "main"."NewTable" (
   "id"  INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
   "username"  TEXT,
   "password"  date
)
;

1]在界面放一个DBDateTimePicker控件,并设置好DataSource和DateField, 控件的Visibler为false,

 

2]在DBGrid的OnSelectEditor添加下面的代码就可以。

procedure TForm1.DBGrid1SelectEditor(Sender: TObject; Column: TColumn;
  var Editor: TWinControl);
begin
  if (TDBGrid(Sender).SelectedField.DataType=ftDateTime) or (TDBGrid(Sender).SelectedField.DataType=ftDate)  then
  begin
    DBDateTimePicker1.DataSource:=TDBGrid(Sender).DataSource;
    DBDateTimePicker1.DataField:=TDBGrid(Sender).SelectedField.FieldName;
    DBDateTimePicker1.boundsRect:=TDBGrid(Sender).SelectedFieldRect;
    Editor:=DBDateTimePicker1;
  end;
end;

 3]提交 修改后的 日期 数据

procedure TForm1.DBDateTimePicker1Change(Sender: TObject);
begin
  SQLQuery1.Post;
end;