如何在TToolbar上混合图标的图像列表?

时间:2012-12-08 20:52:29

标签: delphi toolbar delphi-xe imagelist

我有一个显示操作按钮的TToolbar,它有一些内置按钮和自己的TImageList来为它们提供图标。

我还有一个插件,可以在工具栏中添加按钮。它有自己的TImageList和自己的TActionList,动作列表使用图像列表中的图标。但是当我创建按钮并将它们添加到工具栏时,它们不会显示插件内图像列表中的图像;他们似乎在动作上使用了ImageIndex属性,但工具栏中使用了TImageList,因此图像都被搞砸了。

如何制作以便在这种情况下显示的图像是来自插件内TImageList的图像?

1 个答案:

答案 0 :(得分:4)

工具栏具有对单个图像列表的引用。这是底层Windows控件的一个属性,只是由VCL反映给您。

结论是您必须将所有图像放入同一图像列表中。您不能拥有由单个工具栏引用的两个不同的图像列表。

一种解决方案是将图像列表传递给插件,并允许它将字形添加到图像列表中。

请注意,我在谈论主图像列表。当然,您可以为禁用的图像和热图像使用不同的图像列表。但那些实际上并不包含不同的字形 - 它们包含相同的字形但呈现在不同的状态。