Chinaunix首页 | 论坛 | 博客
  • 博客访问: 16495871
  • 博文数量: 5645
  • 博客积分: 9880
  • 博客等级: 中将
  • 技术积分: 68081
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-28 13:35
文章分类

全部博文(5645)

文章存档

2008年(5645)

我的朋友

分类:

2008-04-28 20:47:31

下载本文示例代码
p>  看了贵报上有关Delphi中日期时间输入的文章,本人也想谈一谈自己的做法,以期与大家交流。请看程序: var Form1: TForm1; systemtime: Tsystemtime; implementation {$R *.DFM} procedure TForm1.FormCreate(Sender: TObject); begin Datetimepicker1.date:=now; datetimepicker2.Time:=now; end; procedure TForm1.Timer1Timer(Sender: TObject); begin { Timer1.Interval=1000ms } Datetimepicker1.date:=now; datetimepicker2.Time:=now; end; procedure TForm1.Button1Click(Sender: TObject); begin { 确认修改 } DatetimeToSystemtime(trunc(Datetimepicker1.date) Frac(Datetimepicker2.Time),systemtime); SetLocalTime(systemtime); Timer1.Enabled:=true; end; procedure TForm1.DateTimePicker1Change(Sender: TObject); begin Timer1.Enabled:=false; end; procedure TForm1.DateTimePicker2Change(Sender: TObject); begin Timer1.Enabled:=false; end; end. ---- 再做少许说明: --- 一. 建立两个DateTimePicker控件,第一个kind属性设置为dtkDate用于日期,第二个kind设置为dtkTime用于时间。两个DateTimePicker均由定时器Timer1控制,每秒刷新一次。当用户修改日期或时间,发生DateTimePicker1Change或DateTimePicker2Change事件,Tmer1.Enabled置为False,停止每秒一次的触发,日期时间显示静止,便于用户修改和确认;点击Button1后(更改确认),系统日期时间被修改,同时Timer1.Enabled重新置为True,两个DateTimePicker控件上的日期时间就又一秒一次的刷新,这样有动有静使界面显的生动一些。 --- 二. Delphi中控件DateTimePicker的属性Date、Time,获取系统时间的函数Now,其类型本质上都是双精度浮点型,用整数部分表示日期,小数部分表示时间。可以用Now函数直接向DateTimePicker的属性Date或Time赋值,用DateTimePicker显示系统当前时间,这样比另外在用Edit或Label输入、显示要简洁一些. --- 三.用DateTimePicker.Date和Time的值设置系统时钟时要注意,Date的小数部分和Time的整数部分是随机数。因此Date要用trunc取整,Time要用frac取小数。(忽略了这一点就会产 庀氩坏降慕峁?), 然后再相加、转换(DatetimeToSystemtime)、设置(SetLocalTime)。 --- 四. 过程FormCreate是为了使两个DateTimePicker第一次显示的就是系统当前时间。如果你不计较第一次显示的是你编程日期时刻的话,这一过程可以省去。再考虑到午夜12点前后修改系统时间的可能性极小,过程DateTimePicker1Change也可省略。   你看,只要写几条语句就能做出一个实用生动的日期时间显示输入程序,Delphi真好。 p>  看了贵报上有关Delphi中日期时间输入的文章,本人也想谈一谈自己的做法,以期与大家交流。请看程序: var Form1: TForm1; systemtime: Tsystemtime; implementation {$R *.DFM} procedure TForm1.FormCreate(Sender: TObject); begin Datetimepicker1.date:=now; datetimepicker2.Time:=now; end; procedure TForm1.Timer1Timer(Sender: TObject); begin { Timer1.Interval=1000ms } Datetimepicker1.date:=now; datetimepicker2.Time:=now; end; procedure TForm1.Button1Click(Sender: TObject); begin { 确认修改 } DatetimeToSystemtime(trunc(Datetimepicker1.date) Frac(Datetimepicker2.Time),systemtime); SetLocalTime(systemtime); Timer1.Enabled:=true; end; procedure TForm1.DateTimePicker1Change(Sender: TObject); begin Timer1.Enabled:=false; end; procedure TForm1.DateTimePicker2Change(Sender: TObject); begin Timer1.Enabled:=false; end; end. ---- 再做少许说明: --- 一. 建立两个DateTimePicker控件,第一个kind属性设置为dtkDate用于日期,第二个kind设置为dtkTime用于时间。两个DateTimePicker均由定时器Timer1控制,每秒刷新一次。当用户修改日期或时间,发生DateTimePicker1Change或DateTimePicker2Change事件,Tmer1.Enabled置为False,停止每秒一次的触发,日期时间显示静止,便于用户修改和确认;点击Button1后(更改确认),系统日期时间被修改,同时Timer1.Enabled重新置为True,两个DateTimePicker控件上的日期时间就又一秒一次的刷新,这样有动有静使界面显的生动一些。 --- 二. Delphi中控件DateTimePicker的属性Date、Time,获取系统时间的函数Now,其类型本质上都是双精度浮点型,用整数部分表示日期,小数部分表示时间。可以用Now函数直接向DateTimePicker的属性Date或Time赋值,用DateTimePicker显示系统当前时间,这样比另外在用Edit或Label输入、显示要简洁一些. --- 三.用DateTimePicker.Date和Time的值设置系统时钟时要注意,Date的小数部分和Time的整数部分是随机数。因此Date要用trunc取整,Time要用frac取小数。(忽略了这一点就会产 庀氩坏降慕峁?), 然后再相加、转换(DatetimeToSystemtime)、设置(SetLocalTime)。 --- 四. 过程FormCreate是为了使两个DateTimePicker第一次显示的就是系统当前时间。如果你不计较第一次显示的是你编程日期时刻的话,这一过程可以省去。再考虑到午夜12点前后修改系统时间的可能性极小,过程DateTimePicker1Change也可省略。   你看,只要写几条语句就能做出一个实用生动的日期时间显示输入程序,Delphi真好。 下载本文示例代码


Delphi中日期时间输入的简洁方法Delphi中日期时间输入的简洁方法Delphi中日期时间输入的简洁方法Delphi中日期时间输入的简洁方法Delphi中日期时间输入的简洁方法Delphi中日期时间输入的简洁方法Delphi中日期时间输入的简洁方法Delphi中日期时间输入的简洁方法Delphi中日期时间输入的简洁方法Delphi中日期时间输入的简洁方法Delphi中日期时间输入的简洁方法Delphi中日期时间输入的简洁方法Delphi中日期时间输入的简洁方法Delphi中日期时间输入的简洁方法Delphi中日期时间输入的简洁方法
阅读(492) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~