有谁用过TimeSetEvent函数?

艳阳天11 2003-10-16 11:35:41
定义
function timeSetEvent(uDelay :longint; uResolution :longint;lqFunction :longint;dwUser :longint;uFlags :longint):longint;stdcall; external 'winmm.dll';
调用
gl_timeid := timeSetEvent(1,0,longint(@timeproc),1,1);
回调函数timeproc定义:
procedure timeproc(uID:longint;uMsg :longint;dwuser :longint; dw1 :longint; dw2:longint);

我按以上方法调用时,老是说出错,提示“XXX”内存不能写,请大家指点!
...全文
132 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zswangII 2003-10-16
  • 打赏
  • 举报
回复
uses MMSystem;

var I: Integer = 0;

procedure FNTimeCallBack(uTimerID, uMessage: UINT; dwUser, dw1, dw2: DWORD); stdcall;
begin
TForm1(dwUser).Label1.Caption := IntToStr(I);
Inc(I);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
FTimerHandle := timeSetEvent(1000, 0, @FNTimeCallBack, Integer(Self), TIME_PERIODIC)
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
timeKillEvent(FTimerHandle);
end;
艳阳天11 2003-10-16
  • 打赏
  • 举报
回复
一语惊醒梦中人,谢谢!
naughtyboy 2003-10-16
  • 打赏
  • 举报
回复
uses mmsystem;

var
Form1: TForm1;
count: Integer = 0;
timeid :Cardinal;

implementation

{$R *.dfm}

procedure MyTimeProc(uID,uMsg,dwUser,dw1,dw2:DWORD);stdcall;
begin
form1.Label1.Caption :='Count Value:' + IntToStr(count);
count:=count+1;

end;


procedure TForm1.Button1Click(Sender: TObject);
begin
timeid:=TimeSetEvent(1,10,MyTimeProc,0,TIME_PERIODIC);
if timeid=0 then
ShowMessage('set failed');
end;
zswangII 2003-10-16
  • 打赏
  • 举报
回复
procedure timeproc(uID:longint;uMsg :longint;dwuser :longint; dw1 :longint; dw2:longint); stdcall; //缺少调用指示stdcall

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧