请教tdatetimepicker得简单应用(50分)

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

ttaa

Unregistered / Unconfirmed
GUEST, unregistred user!
控件DBEdit1已经和数据库表的日期型字段相连。
修改DBEdit1的日期时我想用一个datetimepicker1来获取。
DBEdit1.Text:=DateToStr(datetimepicker1.date);
现在的问题是,只要一点击datetimepicker1,弹出来的框框。
它的默认日期是当前的系统日期。或者是已经设置好的datetimepicker1的date的日期。
而我想要的是,弹出来的框框的日期对应着DBEdit1的日期。
不知道你们明白我的意思没有?我的想法是
假设DBEdit1得值是'2000-1-1'.
用户要修改它得值,点击datetimepicker1。弹出的窗口,显示的日期时2002-8-23(当前系统时间)。
这样很不雅观啊。我想它显示的是'2000-1-1'。跟着DBEdit1的值变。
怎样可以实现?
我察看了很多帖子。1998-2002的离线数据库。都找不到我所需。只好再问。望解答。
 
试试 DateTimePicker1.Date:=DBEdit1.field.asdatetime
 
to ttaa:
你难道不能够将 datatimepicker赋值为该Dbedit的值吗?
datatimepicker1.data :=strtodata(dbedit1.text);
 
to 楼上两位:
这句话写在哪里?我知道DBEdit1.text:=datetostr(datetimepicker1.date);可以。
但不知道写在哪啊?
难道要加个button1。再它的click中写?呵呵,说笑了。不可能这样的。
 
实在不知道写在哪就写在DatatimePicker的onEnter事件中。
其实在formshow及每次数据表的记录位置发生变化时都应写这个代码。
 
首先定义几个变量,
分别取出‘2001-1-1’的年,月,日作为整形数值
datetimepicker1.date:=strtodate(inttostr(年)+'-'+inttostr(monthof(月))+....);
 
我以前是这样做的
将dbedit和datetimepicker放在一起,用dbedit将datetimepicker遮住,
在dbedit的 onenter事件中写
if datasource.dataset.state in [dsinsert,dsedit] then
begin
dbedit.sendtoback;
datetimepicker.bringtofront;
datetimepicker.date:=dbedit.field.asdate;
end;
在datetimepicker的onexit事件中写
if datasource.dataset.state in [dsinsert,dsedit] then
begin
dbedit.field.asdate:=datetimepicker.date;
dbedit.bringtofront;
datetimepicker.sendtoback;
end;
这样就可以了。后来我又用了dbdatetimepicker控件,呵呵,delphi深度历险中有下载,
还有源码哟
 
to HunterTeam:我那个数据表数据表涉及到的日期字段就有10多个。
你认为怎样处理好?
 
接受答案了.
 
后退
顶部