为什么Delphi 2010 TRibbon在Windows XP上控制“闪烁”,而不是Vi
发布时间:2020-12-15 04:12:55 所属栏目:大数据 来源:网络整理
导读:我注意到当我使用Delphi 2010附带的TRibbon控件时,它在我的 Windows 7系统上运行完美.但是,应用程序在具有“经典主题”的Windows XP系统上有一些奇怪的绘画问题(我没有尝试过playschool主题). 我知道DevExpress和TMS Software还有其他功能区组件,但购买第三
我注意到当我使用Delphi 2010附带的TRibbon控件时,它在我的
Windows 7系统上运行完美.但是,应用程序在具有“经典主题”的Windows XP系统上有一些奇怪的绘画问题(我没有尝试过playschool主题).
我知道DevExpress和TMS Software还有其他功能区组件,但购买第三方控件不是此项目的选项. 有没有人有这个问题,或者知道解决方案? 解决方法
很可能是因为Windows 7使用“桌面合成”,这实际上意味着将组件绘制到屏幕外位图,然后复制到显示器上.在XP中,组件通常直接绘制到显示器上(如果组件首先擦除那里的内容并覆盖“干净的平板”,则可能导致闪烁).
Delphi支持双缓冲,它完成了同样的事情.如果你将功能区的DoubleBuffered属性设置为True(在代码中,因为它没有发布)那么这应该避免闪烁(以额外的内存为代价,在绘制时分配和移动) – 但是,我应该说,我没有’实际上用TRibbon试了一下. 请注意,如果将DoubleBuffered设置为True,则在Windows 7(或Vista)上运行时不会产生额外开销.在运行桌面合成的Windows版本上运行时,VCL的代码会跳过屏幕外位图业务. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |