我用dbedit显示时间,用adoquery动态查询,可是在显示时总是在时间前多显示个1899-12-30 ,我想把这多出的部分去调,查看了别的资料,见很多人介绍如下方法:
dbedit1.datasource.dataset.FieldByName('YourField').DisplayFormat := 'hh:mm:ss',我用的是delphi7,但fieldbyname就没有displayformat属性啊,这是怎么回事?
我虽然用如下方法也能解决,但要加到好几个地方,DBEdit1.Text:=formatdatetime('hh:mm:ss',DBEdit1.DataSource.DataSet.FieldByName('YourField').value);而且当我用鼠标点击到dbedit上后,1899-12-30 马上又显示出来了,我见有人用editmask方法,但好像其没法为时间字段设置格式,dbedit1.field.editmask:='hh:mm:ss'不管用,请大家帮忙解决一下,否则我只好换成Tedit控件了,虽然这样更省事,但我想知道DBEDIT怎么解决上述问题!谢谢
dbedit1.datasource.dataset.FieldByName('YourField').DisplayFormat := 'hh:mm:ss',我用的是delphi7,但fieldbyname就没有displayformat属性啊,这是怎么回事?
我虽然用如下方法也能解决,但要加到好几个地方,DBEdit1.Text:=formatdatetime('hh:mm:ss',DBEdit1.DataSource.DataSet.FieldByName('YourField').value);而且当我用鼠标点击到dbedit上后,1899-12-30 马上又显示出来了,我见有人用editmask方法,但好像其没法为时间字段设置格式,dbedit1.field.editmask:='hh:mm:ss'不管用,请大家帮忙解决一下,否则我只好换成Tedit控件了,虽然这样更省事,但我想知道DBEDIT怎么解决上述问题!谢谢
解决方案 »
- DevExpress v49安装版下载
- listview简单问题
- ReportBuilder 做的报表,输出成PDF中文乱码
- 打开word后怎么释放它
- 我正在设计一个平台式的系统,请问设计日志的时候,有什么注意的地方吗?
- ESC键的健码是多少呢
- 多个表操作,要么一次性提交成功,要么失败的问题。
- 高分相送!!!急急急!!!如何解决delphi7中启用调试功能时常常死机的问题???
- 有关利用Idhttp登陆上QQ空间并获取数据的问题
- 谁有winroute4.1.25 的序列号?? 马上给分!!在线等...
- 能不能从一个接口直接继承为一个类
- 这样的效果如何实现,类似金山词霸的查单词,输一个字母,就把以这个字母打头的单词列出来,输两个....
选择'YourField'字段,
设置DisplayFormat属性为:hh:nn:ss
dbedit1.datasource.dataset.FieldByName('YourField').DisplayFormat := 'hh:mm:ss',我用的是delphi7,但fieldbyname就没有displayformat属性啊,这是怎么回事?
FieldByName('fieldname')返回一个TField类型
DisplayFormat是FloatField,DateTimeField等字段所特有的,StringField类型没有的。
所以FieldByName不会显示DisplayFormat,因为它返回的FloatField,DateTimeField等类的父类,没有这个属性。
如果你依这个字段在Delphi里建一个固定字段,就会是TDateTimeField类型的,就会有DisplayFormat这个属性了。如果你要用FieldByName,你可以这样用:TDateTimeField(AdoQuery1.FieldByName('Field')).DisplayFormat:='hh:nn:ss'.
这样的话,显示的时候就是hh:nn:ss了,但是编辑的时候还是会有前面的日期的。
该属性为字符类型
为TField类型所有,可以如下设置:
ADOQuery1.FieldByName('Field').EditMask:='!90:00:00;1;_'
或者在Delphi里建立固定字段,在该字段的这个属性里写入:!90:00:00;1;_,该属性默认是空值。