B
bjaman
Unregistered / Unconfirmed
GUEST, unregistred user!
资料中介绍:
[ (4)存取资源文件中的AVI
在工程中添加一Animate控件,在需要的地方加入:
procedure TfrMain.LoadIconClick(Sender: TObject);
begin
Animate1.ResName :='MyAvi' ;
//资源标识
Animate1.Active :=True ;
End ;
]
问题:1。Animate控件是不是VCL控件?我在控件面板上找不着。。。
2。该控件怎么加入工程?我用Animate1.Create(self);创建出错。。。它到底怎么用?有没这方面的实例?
3。此控件只能调用.AVI类型的资源文件吗?
4。 PlaySound('MyWav',HInstance,Snd_ASync or Snd_Memory or snd_Resource);只是用来播放.WAV类型的资源文件的,那么.MID、.RMI类型的音乐文件可否加入资源文件并有相应的调用方法呢?资料上没有介绍,我也没有试验成功。请指教。。。
5。“风之铃”闹钟程序里,当PlaySound()函数被调用时,Timer的事件好象停滞了似的,消息没有得到及时处理,直到连续的PlaySound()都执行完毕才响应,导致界面有较大迟滞(包括时钟处理的时间显示及用户对界面的各种操作)。尤其当WAVE文件稍长时,情况更明显。有没有办法使PlaySound()的调用与Timer的事件互不影响呢?是不是要处理相关的消息?何时处理?或者另开一个线程来调用PlaySound()?
我的测试情况是:当使用了Snd_ASync or snd_Resource参数以异步资源方式调用时,可以与界面显示不发生冲突,但连续的多次此函数调用,给用户反馈回来的只是最后一次调用的效果,其他先前的调用结果都被丢弃了。当使用了Snd_Sync or snd_Resource参数以同步资源方式调用时,连续调用的效果都可一一反馈给用户,但是基本上是独占了资源,直到它执行完毕系统才会响应其他系统消息,使界面显示呆滞不动。
我现在的一个笨办法是,在连续的PlaySound()之间加一句Application.processmessages;来处理系统消息。但这种方法太牵强了。当一个声音文件较大时,很明显没有任何处理效果。
[ (4)存取资源文件中的AVI
在工程中添加一Animate控件,在需要的地方加入:
procedure TfrMain.LoadIconClick(Sender: TObject);
begin
Animate1.ResName :='MyAvi' ;
//资源标识
Animate1.Active :=True ;
End ;
]
问题:1。Animate控件是不是VCL控件?我在控件面板上找不着。。。
2。该控件怎么加入工程?我用Animate1.Create(self);创建出错。。。它到底怎么用?有没这方面的实例?
3。此控件只能调用.AVI类型的资源文件吗?
4。 PlaySound('MyWav',HInstance,Snd_ASync or Snd_Memory or snd_Resource);只是用来播放.WAV类型的资源文件的,那么.MID、.RMI类型的音乐文件可否加入资源文件并有相应的调用方法呢?资料上没有介绍,我也没有试验成功。请指教。。。
5。“风之铃”闹钟程序里,当PlaySound()函数被调用时,Timer的事件好象停滞了似的,消息没有得到及时处理,直到连续的PlaySound()都执行完毕才响应,导致界面有较大迟滞(包括时钟处理的时间显示及用户对界面的各种操作)。尤其当WAVE文件稍长时,情况更明显。有没有办法使PlaySound()的调用与Timer的事件互不影响呢?是不是要处理相关的消息?何时处理?或者另开一个线程来调用PlaySound()?
我的测试情况是:当使用了Snd_ASync or snd_Resource参数以异步资源方式调用时,可以与界面显示不发生冲突,但连续的多次此函数调用,给用户反馈回来的只是最后一次调用的效果,其他先前的调用结果都被丢弃了。当使用了Snd_Sync or snd_Resource参数以同步资源方式调用时,连续调用的效果都可一一反馈给用户,但是基本上是独占了资源,直到它执行完毕系统才会响应其他系统消息,使界面显示呆滞不动。
我现在的一个笨办法是,在连续的PlaySound()之间加一句Application.processmessages;来处理系统消息。但这种方法太牵强了。当一个声音文件较大时,很明显没有任何处理效果。