TTimer : Delphi编写获取和设置系统时间程序

本实例介绍如何在程序中动态地显示当前系统时间,并且可以设置系统时间。

  向窗体上添加一个TTimer组件和两个TDateTimePicker组件,其中TDateTimePicker组件用于显示和设置系统的日期和时间,它们的Kind属性分别设置为dtkDate和dtkTime,这样它们分别显示日期和时间。而TTimer组件则执行定时操作。设计完成的主界面如图1所示。


图1 主界面

  TTimer组件的Interval属性设置为1000,这样,每隔1000毫秒就会执行下面的响应代码:

procedure TForm1.Timer1Timer(Sender: TObject);
begin
 self.DateTimePicker1.Date:=Now;
 self.DateTimePicker2.Time:=Now;
end;

  Now函数的返回值中既有当前的日期,也有当前的时间。这样,通过TTimer组件的OnTimer过程中的self.DateTimePicker1.Date:=Now语句在DateTimePicker1组件中动态显示当前日期,通过self.DateTimePicker2.Time:=Now语句在DateTimePicker2组件中动态显示当前时间。

  下面说明如何在程序运行过程中修改系统时间。

  在程序运行过程中,如果用户手动修改了DateTimePicker2组件中的时间,那么就会激活以下代码:

procedure TForm1.DateTimePicker2Change(Sender: TObject);
 var
  MyTime:TSystemTime;
 begin
  DateTimeToSystemTime(self.DateTimePicker2.Time,MyTime);
  Timer1.Enabled:=false;
  SetLocalTime(MyTime);
  Timer1.Enabled:=true;
 end;

  程序首先把DateTimePicker2组件中的时间格式转化为系统时间格式。然后设置TTimer组件为无效状态,同时通过SetLocalTime函数把在DateTimePicker2组件中修改后的时间设置为系统时间。最后设置TTimer组件为有效状态。

  在程序运行过程中修改系统日期的方法,与修改系统时间的方法大体相同。

  程序代码如下:

unit Unit1;

interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, Calendar, ExtCtrls, ComCtrls;

type
 TForm1 = class(TForm)
 DateTimePicker2: TDateTimePicker;
 DateTimePicker1: TDateTimePicker;
 Timer1: TTimer;
 procedure Timer1Timer(Sender: TObject);
 procedure DateTimePicker2Change(Sender: TObject);
 procedure DateTimePicker1Change(Sender: TObject);
private
 { Private declarations }
public
 { Public declarations }
end;

var
 Form1: TForm1;
 implementation
 {$R *.dfm}
 procedure TForm1.Timer1Timer(Sender: TObject);
begin
 self.DateTimePicker1.Date:=Now;
 self.DateTimePicker2.Time:=Now;
end;

procedure TForm1.DateTimePicker2Change(Sender: TObject);
 var
  MyTime:TSystemTime;
 begin
  DateTimeToSystemTime(self.DateTimePicker2.Time,MyTime);
  Timer1.Enabled:=false;
  SetLocalTime(MyTime);
  Timer1.Enabled:=true;
end;

procedure TForm1.DateTimePicker1Change(Sender: TObject);
 var
  MyDate:TSystemTime;
 begin
  DateTimeToSystemTime(self.DateTimePicker1.Time,MyDate);
  Timer1.Enabled:=false;
  SetLocalTime(MyDate);
  Timer1.Enabled:=true;
end;
end.

  保存文件,然后按F9键运行程序,程序运行的初始画面如图2所示。


图2 程序运行的初始画面

  读者可以在程序运行过程中,手动修改系统的日期或时间,如图3所示。


图3 程序运行结果

  本实例不但涉及到了利用Now函数来获得当前的时间和日期,而且还涉及到了如何将TDateTime格式转换为TSystemTime格式,并且设置为系统时间。

posted on 2005-12-15 12:05 青蛙學堂 阅读(3888) 评论(1)  编辑 收藏 引用 所属分类: 軟件布袋

评论

# re: TTimer : Delphi编写获取和设置系统时间程序 2008-12-28 10:04 yangguiqiu

你好,你的方法很好,但是在设置时间的时候,还需要设置控件DateTimePicker的事件吗?我用你介绍的方法程序运行不了,我想我是某些步骤落下了,请指教,很急! 谢谢!   回复  更多评论   

只有注册用户登录后才能发表评论。
<2012年4月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345

导航

统计

常用链接

留言簿(8)

随笔分类

随笔档案

收藏夹

青蛙学堂

最新评论

阅读排行榜

评论排行榜