VCL TButton
使用图像列表实现图像支持的原因在于底层Win32 BUTTON
控件如何支持图像.如果您希望使用淡入/淡出动画获得完整的主题支持,则需要使用本机控件.好吧,你可以尝试自己复制这些效果,但我认为成功的机会很低,你总是会受到未来主题变化的影响.这是咬你的原因TBitBtn
.
因此,解决问题的方法是使用TButton
带有图像列表的控件.TButton
在任何情况下,实现都使用私有映像列表,因为底层控件所需的索引是固定的.因此,TButton
无论如何,控件都会拍摄您的图像副本.因此,您可以轻松编写自己的按钮控件,基于TButton
其祖先或其中一个祖先,公开一个字形属性.然后将该字形推入图像列表,然后进入底层的Win32控件.
如果您的Delphi版本不支持ImageList
和ImageIndex
属性,则需要实现自己的包含Win32 BUTTON
控件的按钮控件.