搞了我几天的闪烁问题??还是没出来(90分)

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

cbdiy

Unregistered / Unconfirmed
GUEST, unregistred user!
两个panel控件,每个panel控件上又有几幅图片,通过按钮实现两个panel在显示和隐藏之
间的切换;代码如下:
procedure TFrmMain.buttonClick(Sender: TObject);
begin
panel4.Visible:=true;
panel3.Visible:=false;
end;
(类似速达的主界面那样的功能)可panel闪烁非常严重,如何解决?
或有没有别的方法?
本人对图象方面处理了解不深,请各位大虾细说。谢谢!!
 
不会的;
我在D5下使用,没有什么闪烁。

或者发给我你的程序,我试试看。

forevertyn@263.net
 

我去做个试验试试!

以前我让FORM移动,很平滑的~
 
使用BrintToFront或SendToBack
 
我用的是delphi6,panel只是作图片的容器控件,且上面图片较多
 
在你认为会出现闪烁的地方加下面的代码:
锁屏幕: SendMessage(Handle, WM_SETREDRAW, 0, 0);

解锁: SendMessage(Handle, WM_SETREDRAW, 1, 0);
RedrawWindow(Handle, NULL, 0, RDW_FRAME + RDW_INVALIDATE +
RDW_ALLCHILDREN + RDW_NOINTERNALPAINT);

 
同样经历,关注
 
在Panel上放一个Paintbox,
先创建一个Bitmap调入位图,
再用Paintbox.Canvas.CopyRect交替替换那个图像,
这样肯定不闪烁。
 
这个问题我回答了很多次了: Self.DoubleBuffered:=true;就可以解决了
如果panel不是直接放在Form上,那只要设置 panel1.Parent.DoubleBuffered:=true
就可以了,绝对没有问题.(D6一定要设置)

另,请关注本人的问题:
http://www.delphibbs.com/delphibbs/dispq.asp?lid=839228
http://www.delphibbs.com/delphibbs/dispq.asp?lid=835707
谢谢
 
多人接受答案了。
 

Similar threads

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