默认的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;