词条 | timeSetEvent |
释义 | Delphi相关帮助Delphi声明timeSetEvent 是一种精确度非常高的定时器,与windows定时器不同的是,多媒体定时器不使用容易丢失的窗口消息,他提供另外两种方式来触发。 function timeSetEvent(uDelay, uResolution: UINT; //uDelay 定时器触发的时间间隔 //uResolution 定时器使用的分辨率(精确度) lpFunction: TFNTimeCallBack; //若触发方式为回调函数,则为回调函数的指针, //若采用事件方式,则为 event object 的handle dwUser: DWORD; //可为任意变量或者结构地址,他会在定时器触发的时候回传给回调函数 uFlags: UINT //定时器类型,共有两组旗标 ): MMRESULT; stdcall; //返回值,成功的话,返回非零值,代表定时器的编号,失败返回0 () 当某个定时器已经完成了自己的任务,需要退出的时候,只要调用 timeKillEvent 函数,传入它的定时器编号即可 function timeKillEvent(uTimerID: UINT): MMRESULT; stdcall; //TimerID 建立定时器时,所返回的编号。 //返回值,若定时器编号无误,返回TIMERR_NOERROR表示成功释放,否则放回MMSYSER_INVALPARAM Delphi调用方法unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, MMSystem; type TForm1 = class(TForm) mmo1: TMemo; procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); private { Private declarations } public { Public declarations } end; var MMTimerID : Integer; Form1: TForm1; implementation {$R *.dfm} procedure MMTimerProc(uTimerID,uMessage:UINT;dwuser,dwl1,dw2:DWORD);stdcall; begin form1.mmo1.Lines.Add('Running.....') end; procedure TForm1.FormCreate(Sender: TObject); begin MMTimerID := timeSetEvent(1000,0,@MMTimerProc,0,TIME_PERIODIC OR TIME_CALLBACK_FUNCTION); end; procedure TForm1.FormDestroy(Sender: TObject); begin if MMTimerID<>0 then timeKillEvent(MMTimerID); end; end. |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。