Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。
想改善这个问题吗?更新问题,以便将其作为on-topic用于堆栈溢出。
5年前关闭。
Improve this question
是否有人知道现有的Delphi组件,即
的主题类似于TButton(在Windows 7及更高版本中,当鼠标悬停时具有淡入/淡出效果) 支持像TBitBtn一样的字形,但不使用ImageLists(与TBitBtn相同)。
如果没有可用的此类组件,是否可以修改TBitBtn的主题行为以复制TButton的行为?我不是主题大师,但也许您可以从ThemeServices获得不同的淡入淡出阶段?还是您必须通过在热状态和非热状态之间进行平均来自己创建淡入淡出效果?
想改善这个问题吗?更新问题,以便将其作为on-topic用于堆栈溢出。
5年前关闭。
Improve this question
是否有人知道现有的Delphi组件,即
如果没有可用的此类组件,是否可以修改TBitBtn的主题行为以复制TButton的行为?我不是主题大师,但也许您可以从ThemeServices获得不同的淡入淡出阶段?还是您必须通过在热状态和非热状态之间进行平均来自己创建淡入淡出效果?
最佳答案
VCL TButton
使用图像列表实现图像支持的原因是底层Win32 BUTTON
控件支持图像的方式。如果要使用淡入/淡出动画获得完整的主题支持,则需要使用本机控件。好吧,您可以尝试自己复制这些效果,但是我认为成功的机会很低,而且您将来总是会遇到主题变化的情况。这是什么让TBitBtn
咬你。
因此,解决问题的方法是对图像列表使用TButton
控件。 TButton
的实现在任何情况下都使用私有映像列表,因为基础控件所需的索引是固定的。因此,TButton
控件仍然会获取图像的副本。因此,您可以轻松地根据TButton
或其祖先之一编写自己的按钮控件,以显示字形属性。然后将该字形推入图像列表,然后推入基础的Win32控件。
如果您的Delphi版本不支持ImageList
和ImageIndex
属性,则需要实现自己的包装Win32 BUTTON
控件的按钮控件。
10-05 22:16