我有一个显示操作按钮的 TToolbar
,它有一些内置按钮和它自己的 TImageList
来为它们提供图标。
我还有一个可以向工具栏添加按钮的插件。它有自己的 TImageList
和自己的 TActionList
,并且操作列表使用图像列表中的图标。但是,当我创建按钮并将它们添加到工具栏时,它们不会显示插件内图像列表中的图像;他们似乎在操作上使用了 ImageIndex 属性,但在工具栏上使用了 TImageList
,因此图像都搞砸了。
如何才能使在这种情况下显示的图像是插件内 TImageList
中的图像?
最佳答案
工具栏具有对单个图像列表的引用。这是底层 Windows 控件的一个属性,VCL 简单地反射(reflect)给您。
结论是必须将所有图像放入同一个图像列表中。一个工具栏不能引用两个不同的图像列表。
一种解决方案是将您的图像列表传递给插件并允许其将字形添加到您的图像列表中。
请注意,我正在谈论主图像列表。当然,您对禁用图像和热门图像使用不同的图像列表。但它们并不真正包含不同的字形——它们包含相同的字形,但以不同的状态呈现。
关于delphi - 如何在 TToolbar 上混合图标的图像列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13781831/