gpt4 book ai didi

delphi - TToolbar 与 TForm.DoubleBuffered 不兼容?

转载 作者:行者123 更新时间:2023-12-03 14:52:42 25 4
gpt4 key购买 nike

我使用的是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 。从评论来看,您想要对抗的闪烁似乎是在油漆盒中。我显然不知道细节,但我的经验和直觉告诉我,你应该能够很容易地处理局部的闪烁。当然不需要全局表单宽双缓冲。

关于delphi - TToolbar 与 TForm.DoubleBuffered 不兼容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15611807/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com