移动面板的动画/重绘非常闪烁 - 建议?

时间:2012-12-14 14:19:56

标签: delphi delphi-xe2 tms animatewindow

希望你们中的一些人能够指出我正确的方向来处理闪烁/撕裂/重绘问题,当我“动画”时应用程序中的一些组件。

我必须通过说出动画'在不是全屏模式时似乎工作正常(没有闪烁等) - 即1024 * 768,borderstyle = bsSingle。当应用程序接管整个监视器并且bordertyle变为bsNone时,这个问题变得非常明显。

有2种动画':

1 - 面板使用Winapi AnimateWindow方法从左向右滚动

2 - TmsAdvPolyPager逐步浏览其中的每一项,然后显示其页面'

滚动面板时,面板即可退出'离开了一条小道。动画似乎不寒而栗,它不再流畅。

当单步执行TmsAdvPolyPager项目时,下一个项目有时不会突出显示,并且它显示的页面通常具有“残差”'来自上一个小组。

这两个动画都是由计时器触发的 - AnimateWindow在其自己的线程中,而PolyPager步进不是。

所以,基本上 - 关于如何平滑这些动画并强制正确重绘TmsAdvPolyPager组件的任何想法?第一次尝试这种东西,所以不完全确定要调查它。

一如既往,非常感谢帮助!

1 个答案:

答案 0 :(得分:3)

TPaintBox是您所需要的,可能在TScroller上。

转储面板并在TPaintbox画布上绘制矩形。

您显然已经编写了99%的代码,因此移动到定义的矩形应该不是问题:)