如何让DateTimePicker控件既能显示日期又能显示时间,并且可以修改保存?

王朝other·作者佚名  2006-12-06
窄屏简体版  字體: |||超大  

如何让DateTimePicker控件既能显示日期又能显示时间,并且可以修改保存?

我的解决方法:

首先设置控件的format属性为yyyy年MM月dd日 HH时mm分ss秒,kind属性为dtkTime.

在想要保存控件里的值的地方,比如change事件中(当然这不是较好的地方,只取一次就够,这样只是方便各位查看效果),写下列代码:

procedure Tfrom_sms.DateTimePicker2Change(Sender: TObject);

var

ss:string;

pp:pchar;

begin

//time1:=formatdatetime('yyyy年MM月dd日 HH时mm分ss秒',DateTimePicker2.Datetime);

//用控件的Datetime属性不行.因为它只记录kind属性规定的部分(或者是dtkDate或者是dtkTime)的改变,而对另一部分不会记录改变.

pp:=StrAlloc(20); //为PChar分配内存

DateTimePicker2.GetTextBuf(pp,20);

ss:=pp;

showmessage(ss);

StrDispose(pp); //为PChar释放内存,必须要有,否则报错.

end;

需要注意或者说是目前一个BUG的地方是:

如果先修改日期,则在修改时间时日期会自动还原.

所以只能先修改时间,然后再修改日期.

不知各位是否可以解决这个问题.

之所以不用MASKEDIT(或者干脆就是EDIT)控件,是希望能借助DateTimePicker的一些优点:

1.输入有效验证(年月日时分秒都有边界,还涉及闰年闰月等问题)

2.上下调整箭头.各位可以试试,虽然平时它是时间部分专用的,但在我改过的这个例中,它对日期部分也有效果.当然,这是次要的,可有可无.主要是第1点.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航