如何使重画不闪烁?不用DoubleBuffered:=True(100分)

  • 主题发起人 主题发起人 xychun
  • 开始时间 开始时间
X

xychun

Unregistered / Unconfirmed
GUEST, unregistred user!
如何使重画不闪烁?不用DoubleBuffered:=True
 
如果把DoubleBuffered置为True都不行,那你就要优化一下运行代码了;
尽量避免重复运行的代码;
 
write function directly draw on XX's canvas, and you explicitly call it,
not in OnPaint event.
 
用DoubleBuffered有一个问题,如果把SpeedButton的Flat设为True,鼠标在几个连续的SpeedButton上移动时,就会有多个同时凸起,比较难看,DoubleBuffered=False时没这个问题,但改变大小时会闪烁
 
建立起另一个绘图板,一切操作都在它上面进行。最后把它复制到窗口或控件上,就可以了吗!
根本不需要重画。
 
创建一个TBITMAP,在上面画完毕后,一次性把TBITMAP画到屏幕上
 
后退
顶部