在paintbox中显示动画,若在其前面来回移动别的窗口(或别的程序窗口),动画走的就很慢了,如何解决 ( 积分: 40 )

  • 主题发起人 主题发起人 yanggh
  • 开始时间 开始时间
Y

yanggh

Unregistered / Unconfirmed
GUEST, unregistred user!
在paintbox中显示动画,若在其前面来回移动别的窗口(或别的程序窗口),动画走的就很慢了,如何解决? 另外,若在笔记本电脑上运行,若拔调笔记本电脑外接电源,动画走的同样很慢,如何解决? (动画显示,是通过多媒体定时器,waitforsingleobject和线程实现的)
只有这么多分.不好意思
 
在paintbox中显示动画,若在其前面来回移动别的窗口(或别的程序窗口),动画走的就很慢了,如何解决? 另外,若在笔记本电脑上运行,若拔调笔记本电脑外接电源,动画走的同样很慢,如何解决? (动画显示,是通过多媒体定时器,waitforsingleobject和线程实现的)
只有这么多分.不好意思
 
???我被这个问题困惑了好长一段时间,难道delphi只能编写界面或数据库什么的。
delphi高手,在哪里呢???
 
1.窗口在paintbox上拖动,动画慢的原因是,paintbox不断在刷新
2.笔记本用外接电源,为了省电,cpu的工作频率会自动降低,如果你的动画过程很占cpu资源的话,也会慢。
 
上位老兄:我的paintbox是在线程中动态创建的,在线程中运行。怎么才能截获这方面的消息,当别的窗口在其上面移动时,不响应外来刷新信息呢。因为在动画运行时,我的paintbox本身就在不停的刷新自己(定时刷新)。
动画过程在笔记本电脑有外接电源时,CPU占用率很低的1%左右;为什么拔调外接电源,其占用率达到100%, 这是为什么?
 
1.动画显示用double buffer试试
2.多线程
肯定可以的
//难道delphi只能编写界面或数据库什么的
谬!
 
双缓冲,在程序中具备。
我的paintbox是在线程中动态创建的,在线程中运行。[blue]怎么才能截获这方面的消息,当别的窗口在其上面移动时,不响应外来刷新信息呢。因为在动画运行时,我的paintbox本身就在不停的刷新自己(定时刷新)。[/blue]
 
1。创建线程互斥量
2、你真想借截获消息就是hook了
3、与其截获,不如主动发消息通知简单
 
to uiit;
我试验过线程互斥量,结果还是如此。
对于-----“3、与其截获,不如主动发消息通知简单”
能否给出一些发消息的代码,非常感谢。
 
就是在线程之间发消息
postmessage
 
多人接受答案了。
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部