我有一个显示操作按钮的TToolbar
,它有一些内置按钮和自己的TImageList
来为它们提供图标。
我还有一个插件,可以在工具栏中添加按钮。它有自己的TImageList
和自己的TActionList
,动作列表使用图像列表中的图标。但是当我创建按钮并将它们添加到工具栏时,它们不会显示插件内图像列表中的图像;他们似乎在动作上使用了ImageIndex属性,但工具栏中使用了TImageList
,因此图像都被搞砸了。
如何制作以便在这种情况下显示的图像是来自插件内TImageList
的图像?
答案 0 :(得分:4)
工具栏具有对单个图像列表的引用。这是底层Windows控件的一个属性,只是由VCL反映给您。
结论是您必须将所有图像放入同一图像列表中。您不能拥有由单个工具栏引用的两个不同的图像列表。
一种解决方案是将图像列表传递给插件,并允许它将字形添加到图像列表中。
请注意,我在谈论主图像列表。当然,您可以为禁用的图像和热图像使用不同的图像列表。但那些实际上并不包含不同的字形 - 它们包含相同的字形但呈现在不同的状态。