Windows XP SP3(XP模式Windows 7)中Tbutton上的恶意PNG。

5

我已经在Windows XP模式(SP3)上尝试了我的应用程序(在Windows 7上进行开发),但是我的TButton(和其他)与TImageList相关的图片非常糟糕(黑色圆角)。你有解释吗?或者解决方案?

enter image description here

非常感谢,祝您有愉快的一天!

编辑:

@Ken 使用D2009在Windows XP或Windows 7上编译的同一EXE文件给我带来了相同的结果。在XP模式SP3上没有透明度(也许这是虚拟机的问题,但很奇怪),而在Windows 7上有透明度...

@Ken Delphi 2010也有同样的问题: 测试文件(源代码+Exe):http://www.onkeysoft.com/Test.zip

@David: 其中一个使用Facebook,另一个不知道为什么,我只输入了我的姓名和电子邮件...我以为我已经登录了,但实际上没有...(这是我第一次使用stackoverflow,对造成的问题很抱歉)


2
您使用的是哪个版本的Delphi?(我假设是2009+,因为您在问题中提到了“png”)。您是否在ImageList上设置了正确的ColorDepth(cd32Bit,如果我没记错的话)? - Ken White
@Ken He 必须使用带有cd32bit的现代Delphi才能使win7版本正常工作。我猜这是XP/透明PNG不匹配的问题。 - David Heffernan
6
@David:XP SP2及以上版本的TButton支持通过TImageList使用图片。(我刚刚使用Delphi XE附带的GlyFX PNG图片在XP SP2上进行了验证,使用XE专业版SKU。)这是对ComCtrls的一个补充,在早期版本中由于向后兼容性问题,TButton并没有暴露这个功能;D2009及以上版本放弃了对早期Windows版本的支持,并增加了这个支持。 - Ken White
@Ken 哇塞,我还以为我已经什么都知道了呢!原来我只是在过去的六个月里从D6迁移到了D2010,所以我想我还没有发现所有的新功能。我会去探索一下的。非常感谢! - David Heffernan
@David:可能是新版本,但是哪一个呢?我刚刚在Delphi XE上测试了TButton上的透明PNG(来自GlyFX的Vista兼容按钮库之一),一切看起来都很好。因此,Delphi的版本可能很重要。 :-) - Ken White
显示剩余5条评论
3个回答

1

答案:

Windows 7 Pro:没有问题 Windows XP模式(SP3)(Win7Pro):有问题!

而且....在VirtualBox仿真中的Windows XP SP3:没有问题!

所以问题出在Windows XP模式上,问题已经解决...

(这里有图片:http://i.stack.imgur.com/LwCtq.png


不是要刻意挑剔,但我们期望有兴趣的用户能够做好代码格式化。 - Camilo Martin

0

默认情况下,Windows 7 XP 模式仿真以 16 位色彩模式运行。历史上,Delphi PNG 透明度支持对于除了 32 位之外的颜色深度并不太友好。

尝试在显示器设置为 16 位的真实 XP 计算机上运行相同的应用程序,我预计您会遇到完全相同的问题。


0

你是否检查了选项 启用运行时主题 是否在项目菜单 > 选项 > 应用程序中启用。

同时尝试将 ImageList 的 DrawingStyle 属性设置为 dsTransparent


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接