写一个多媒体定时器组件遇到问题:(50分)

  • 主题发起人 主题发起人 chimney
  • 开始时间 开始时间
C

chimney

Unregistered / Unconfirmed
GUEST, unregistred user!
TimeSetEvent函数的参数中有一个过程入口,是TFNTimeCallBack类型过程指针:
TFNTimeCallBack = procedure(uTimerID, uMessage: UINT

dwUser, dw1, dw2: DWORD) stdcall;
我建立一个过程:procedure TimeProc(uTimerID,uMessage:UINT;dwUser,dw1,dw2:DWORD) stdcall ;
然后
ProTimeCallback:=TimeProc;//到这一步总是编译不过去,是不是指针长度问题,一个32一个64?
FHTimeID:=TimeSetEvent(FInterval,0,timeproc,1,1)
怎么解决?
 
ProTimeCallback:=@TimeProc
FHTimeID:=TimeSetEvent(FInterval,0,ProTimeCallback,1,1)
或者之间写
FHTimeID:=TimeSetEvent(FInterval,0,@timeproc,1,1)


 
不行,提示:Variable required.
 
ProTimeCallback 是什么类型啊,
这个函数可能需要外部全局过程
 
ProtimeCallBack类型:TFNTimeCallBack = procedure(uTimerID, uMessage: UINT

dwUser, dw1, dw2: DWORD) stdcall;
外部全局过程是可以的,但我想把TimeProc写成事件,类似TTimer中的OnTimer事件。
 
顶一回。
 
变量参数必须是变量,
不要传入常量
 
http://www.vclxx.org/DELPHIGB/AAAT1026.HTM#timer
看看人家是怎么写的,参考一下?
 
接受答案了.
 
后退
顶部