gpt4 book ai didi

delphi - 如何让透明图像出现在菜单项上

转载 作者:行者123 更新时间:2023-12-03 15:58:59 25 4
gpt4 key购买 nike

我最近从图像列表转换为虚拟图像列表和图像集合控件。我的所有图像都以透明的 png 文件形式存储在 TImageCollection 中。它们在工具栏工具按钮上呈现良好,但这些相同的图像不会通过 TMainMenu 呈现为透明图像。我需要使用 Owner Draw 渲染所有菜单吗?

最佳答案

Embarcadero 仅添加了 TImageCollection 和 TVirtualImageList 组件(旧组件不变)。许多旧组件不会从 TImageList 或 TVirtualImageList 组件调用 DoDraw 方法(几乎每个组件都使用自己的透明方法)。即使从 TImageList 调用 DoDraw 方法的组件也并不总是正常工作(样式问题)。

他们还对透明图像使用“过时”的方法(几乎在所有旧组件中都不使用 alpha 混合)。

我制作了自己的降序组件(透明图像、速度按钮、工具栏、 TreeView 、选项卡控件)、TImageCollection 和 TVirtualImageList。但不是 TMenu 组件(仅使用我的 TImageCollection 和 TVirtualImageList 版本),因为 TMenu 从 TImageList/TVirtualImageList 调用 DoDraw 方法来绘制图标。

我认为Embarcadero必须改变组件中的绘制图片。他们需要在所有带有图片的组件中从TImageList/TVirtualImageList调用DoDraw方法。

关于delphi - 如何让透明图像出现在菜单项上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59287998/

25 4 0