关于屏闪! (30分)

  • 主题发起人 主题发起人 wp531
  • 开始时间 开始时间
W

wp531

Unregistered / Unconfirmed
GUEST, unregistred user!
我编了一段程序,功能很简单,就是鼠标进入Panel,触发事件,离开Panel,又触发另
一事件。但是鼠标在Panel内移动的时候,Panel区域闪个不停,怎样编程让它不闪?
 
在事件完后,退出这事件程序
 
退出?是用Exit吗?不行。还是闪。
 
Form1.DoubleBuffered:=True;
 
在哪里加入此代码?
 
进入,离开,用cm_mouseenter,cm_mouseleave,应该不会闪吧
 
能在详细一些吗?
 
你的过程有问题,贴出来看看。应该是panel.mousemove吗
 
OnCreate中:
DoubleBuffered:=True;

 
在 FORM 的 OnCreate 事件中:
Form.DoubleBuffered:=True;
Panel.DoubleBuffered:=True;
 
谢谢大家。
还是闪。
再补充一下,Panel里有按钮,按钮也有类似编程。鼠标移到Panel里,Panel变个样式,
出来,就恢复原状;Panel里的按钮也是这样,移到按钮上面,字体变颜色,离开就恢复
原状。
 
是不是panel变颜色,
panel上的按钮上的字体同时变颜色?
我试过了,
就算不要DoubleBuffered:=True;也不会闪。
可能是颜色的改变得太大了吧!
 
是改变Panel的大小,有可能问题出在这儿:当鼠标移到按钮上,Panel的大小改变一下,
然后马上改回来,所以会闪。
 
设个标志变量,第一次进入panel时置1,修改颜色时判断标志,为0表示第一次进入,执行;
为1表示已修改过颜色不执行;退出panel时再将标志置0。
 
多人接受答案了。
 

Similar threads

回复
0
查看
1K
不得闲
D
回复
0
查看
909
DelphiTeacher的专栏
D
D
回复
0
查看
704
DelphiTeacher的专栏
D
后退
顶部