图像抖动 ( 积分: 50 )

  • 主题发起人 主题发起人 oer_2001
  • 开始时间 开始时间
O

oer_2001

Unregistered / Unconfirmed
GUEST, unregistred user!
MDI时候,(一定要MDI,那个死客户一定要这样)
左边是Panel(alLeft), splitter(alLeft), image(alclient)
当我move splitter的时候,image图像会抖动,怎么解决??
把image放在一个panel是可以解决了,但是子窗体会被panel覆盖掉,然后用什么setwindowpos(..)之类的都不行

怎么解决??
 
MDI时候,(一定要MDI,那个死客户一定要这样)
左边是Panel(alLeft), splitter(alLeft), image(alclient)
当我move splitter的时候,image图像会抖动,怎么解决??
把image放在一个panel是可以解决了,但是子窗体会被panel覆盖掉,然后用什么setwindowpos(..)之类的都不行

怎么解决??
 
图像里有个属性是DoubleBuffered,把它设为True试试。
 
楼主把Splitter的ResizeStyle设置成rsUpdate了吧,改成rsPattern就没问题了,
如果非要rsUpdate,把image所在的Form的DoubleBuffered设置成True就可以了。
 
windows.lockupdatewindow(handle)
try
......
finally
windows.lockupdatewindow(0)
end;
 
form的DoubleBuffere设为True,打开双缓冲应该可以
 
我遇到过此类问题,开始用Delphi6处理动画图片时总会有闪动,开了双缓冲也没有用,后来用Delphi7基本上没有这个问题。但是有一个关键,显示图片的TImage组件的大小和你在其中显示的图片大小一定要大小一样,否则刷屏时就会闪炼
 
1.MDI也可以自己模拟实现,未必一定用系统默认的实现.
2.采用代码绘制而不是使用TImage,因为TImage会完整覆盖,所以对WM_EARSEBK(???)这个消息可以直接屏蔽而不会导致其他问题。
 
我用的是delphi7.0了,将form DoubleBufferer设为True了,图像还是会抖动啊
 
后退
顶部