日期怎么输入?(50分)

  • 主题发起人 主题发起人 tian
  • 开始时间 开始时间
T

tian

Unregistered / Unconfirmed
GUEST, unregistred user!
大家好

我在做数据库时,有一张表字段较多
所以我想直接在DBGRID中编辑数据
但我又想使日期字段格式规范
即想用类似Datetimepicker实现
请问怎么做?

//bow
 
InfoPower!
Express Grid!
TopGrid!
 
可以呀,先把那一列的ButtonStyle 设置为 cbsEllipsis,
这样那一列被选中就会显示一个按钮。
然后在DBGRID的 OnEditButtonClick 中写代码就就可以控制它了。
 
在 DBGrid 中设定几个日期字段所在 Column 的 buttonStyle 为 cbsEllipsis,
这样在用户单击这个Column时,就能看到一个 省略号 按钮,然后,
写 DBGrid 的 OnEditButtonClick 事件,在其中判定是否是所需字段,如果
是日期字段,则启动 DateTimePicker, 把选定的值回传到 对应的字段中
参考代码:
procedure TForm1.DBGrid1EditButtonClick(Sender: TObject);
begin
if DBGrid1.SelectedField = table1Name then
begin
//设定 Datetime Picker 的初值
DateTimer1.Date := table1Birthday.Value;
end;
fmPickDate.ShowModal;
table1.Edit;
table1Birthday.Value := fmPickDate.datetimePicker1.date;
table1.Post;
...

在 Delphi 中有一个 MasterApp ,中有类似代码,可参考

 
例如:
procedure TForm1.DBGrid1EditButtonClick(Sender: TObject);
begin
if DBGrid1.SelectedField = table1Name then
begin
//设定 Datetime Picker 的初值
DateTimer1.Date := table1Birthday.Value;
end;
fmPickDate.ShowModal;
table1.Edit;
table1Birthday.Value := fmPickDate.datetimePicker1.date;
table1.Post;
...
 
其实,直接用datetimepicker 也可以的,
在你的 datasource 的ondatachange事件中,把值赋给 datetimepicker.date
添加时,,把datetimepicker.date 赋给 table的
fieldbyname('name').asdatetime
 
接受答案了.
 
后退
顶部