我正在使用Delphi XE3。
当我创建一个新的VCL项目并在其上放置一个TToolbar
时,一切正常-除了激活Form1.DoubleBuffered
之外。
从那时起,工具栏的图形被破坏了-在设计时,它是黑色的,透明的,或者将部分IDE(状态栏,工具栏等)复制到其中。当我单击它,并更改为源代码(F12)并返回时,它会在这些选项之间切换。
在运行时,它始终为黑色。
使用DrawingStyle=dsGradient
,一切都会按预期进行。切换回dsNormal
会再次破坏它。
停用Form1.DoubleBuffered
可以修复它。
任何提示如何解决该问题?
最佳答案
我认为解决方案是将TForm.DoubleBuffered
设置为False
。使用值True
会导致各种其他问题。在XP主题之前,此属性运行得相当不错,但是在我看来,使用TForm.DoubleBuffered
自从它们出现后就不可行。
除了您遇到的问题外,使用Windows Basic主题时,我还遇到了许多绘画缺陷。我知道这还不是主流,但是我碰巧看到很多远程访问。还有更多。当您双缓冲窗体时,将停止主题动画的工作。例如,默认按钮跳动以指示它是默认按钮。
如果在没有双重缓冲表格的情况下调整大小闪烁,请使用ideas from my answer to another question。从评论看来,您想消除的闪烁是在油漆盒中。我显然不知道细节,但是我的经验和直觉告诉您,您应该能够轻松应对本地的闪烁。肯定不需要全局形式的双缓冲。