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