【发布时间】:2012-09-22 12:05:56
【问题描述】:
当您启用应用程序样式并将 TListView 的 DoubleBuffered 属性设置为 True 时,它不起作用。当您更新列表项及其子项时,它会闪烁。有人对此有解决方案吗?
我其实很喜欢 Styles,但是仍然存在技术问题。现在我不能相信样式了。
谢谢, K.
【问题讨论】:
-
你是说VCL样式?不要使用双缓冲。任何地方。它总是会导致样式和主题出现问题。列表视图的最佳方法是虚拟模式。
-
在虚拟模式下,总是只渲染控件内容的可见部分,所以如果你在最后一个可见节点下添加新项目,则不会重新绘制。
-
不要调用刷新。您可以通过调用
UpdateItems使您更改的项目无效。如果它仍然闪烁,则提交 QC 报告并停止使用 VCL 样式。他们很烂。 -
嗯,XE2 VCL 样式是一个错误工厂。他们将修复 XE3 中的许多 VCL 样式错误。不知道它是否对你有帮助。
-
在 Delphi XE3(v.17.0.4625.53395 试用版)中运行一些测试后,我可以说以下内容。使用 10 毫秒更新计时器(我知道极端更新速率)我可以说我见过的唯一真正 smooth 显示使用双缓冲区的 Windows 风格(不管我使用的是 Windows 还是 VCL 风格,虚拟或非虚拟模式)。因此,作为您的问题的解决方法,我建议您对 VCL 样式实现双缓冲区(您可以通过覆盖样式挂钩来实现)忽略上述 cmets 说的不好关于双缓冲区:-)
标签: delphi delphi-xe2 vcl-styles