【问题标题】:Transparent PNG image with TImageList带有 TImageList 的透明 PNG 图像
【发布时间】:2011-01-27 10:05:48
【问题描述】:

我正在使用 Delphi XE。

我在表单上添加了一个 TAdvGlowButton 并添加了一个 TImageList,其中一个透明 PNG 图像作为其图像源。当我在设计模式下查看表单时,按钮看起来完全正确并且图像是透明的。但是,当我运行程序时,图像的背景变为纯黑色。如果我没有正确理解,这不是 TAdvGlowButton 的错误,而是 TImageList 的错误。

有没有办法在不使用任何第三方组件的情况下解决这个问题?

【问题讨论】:

  • 您是否将图像列表ColorDepth属性设置为cd32bit?我可以看到 PNG 图像的透明图像,保存在图像列表中,并显示为工具栏按钮。所以我觉得TImageList可以处理这样的图片。
  • 是的,ColorDepth 设置为 cd32bit,DrawingStyle 设置为 dsTransparent。

标签: delphi


【解决方案1】:

我通过从项目管理器中打开项目设置并选中应用程序 -> 启用运行时主题来解决此问题。这是什么愚蠢的选择?什么时候有人想要启用运行时主题?

【讨论】:

  • 由于要检查此选项的默认设置,您应该问自己一个问题,“什么时候有人想要启用运行时主题?”如果您使用启用主题时未运行的其他组件,我认为您可能会禁用运行时主题。
  • 可能是之前的开发者没有勾选。我刚刚开始使用这个新代码库。
  • 它可能是来自早期版本的 Delphi 的端口,在该版本中此选项不可用。 IIRC,升级这些项目时的默认设置是将此开关设置为 false。
猜你喜欢
  • 2011-10-26
  • 2019-03-18
  • 2015-11-12
  • 2011-10-19
  • 2018-10-09
  • 2015-07-10
  • 1970-01-01
  • 2012-09-23
  • 2021-03-28
相关资源
最近更新 更多