unit
Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls;
const
TIMER_ID = 200;
type
TForm1 = class(TForm)
Label1: TLabel;
btkilltime: TButton;
btsettime: TButton;
procedure Button1Click(Sender: TObject);
procedure btkilltimeClick(Sender: TObject);
procedure btsettimeClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
//
WM_TIMECHANGE
只在用户手动改变系统时间时才会产生作用,且只需直接定义就起作用。
procedure
WMTIMECHANGE(var Message: TWMTIMECHANGE); message WM_TIMECHANGE;
// WM_TIMER
需配合
KillTimer
和
SetTimer
才能起作用;它保持与系统时间同步触发事件;
procedure WMTimer(var Message: TWMTimer); message WM_TIMER;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure
TForm1.WMTIMECHANGE(var Message: TWMTIMECHANGE);
begin
ShowMessage('sss');
end
;
procedure
TForm1.WMTimer(var Message: TWMTimer);
begin
Label1.Caption:=TimeToStr(now);
end
;
procedure
TForm1.btkilltimeClick(Sender: TObject);
begin
//
KillTimer
作用:向
WINDOWS
删除时间消息;参数
200
必须与
SetTimer
中参数
200
保持一致,此参数代表所注册的消息
ID
;
KillTimer(self.Handle, 200); // KillTimer(self.Handle, TIMER_ID);
end
;
procedure
TForm1.btsettimeClick(Sender: TObject);
begin
//
SetTimer
作用:向
WINDOWS
注册时间消息;参数
1000
代表每隔
1
秒触发一次
WM_TIMER
消息;
SetTimer(self.Handle, 200, 1000, nil); // SetTimer(self.Handle, TIMER_ID, 1000, nil);
end
;
end
.