【问题标题】:How to replace an image in TSpeedButton with another image in an ImageList?如何用 ImageList 中的另一个图像替换 TSpeedButton 中的图像?
【发布时间】:2019-08-15 15:16:13
【问题描述】:

在我的程序中,SpeenButton 的图像由 imagelist 设置。当我单击速度按钮时,我需要用图像列表中的另一个图像更改图像。我该怎么做?

【问题讨论】:

  • VCL 还是 FMX?他们都有一个TSpeedButton,它们彼此非常不同。 VCL 有一个 Glyph 属性,FMX 有 ImagesImageIndex 属性
  • 如果是 VCL,类似于 MyImageList.GetBitmap(..., MySpeedButton.Glyph) IIRC。
  • 我通常建议人们不要使用速度按钮,因为它们不是窗口控件。因此他们无法接收键盘焦点。因此,对于像我这样的键盘优先用户来说,它们变得更加难以使用:我无法将我的标签转到它们并使用 Enter 或 Space 激活它们。另外,我认为他们没有DefaultCancel 属性。但是,您可以为他们提供加速器(如 '&New hippogriff'),因此如果适用,我建议您这样做。否则,请确保您的 GUI 可以方便地仅通过键盘以其他方式使用。

标签: delphi timagelist


【解决方案1】:

如果您在谈论 VCL TSpeedbutton,您可以在表单上放置 TActionList 并将其连接到您的 TImagelist。然后在动作列表中创建一个动作,将其ImageIndex 设置为所需的图像。现在将TSpeedbutton 连接到该操作。在操作的OnExecute 事件中,将操作ImageIndex 属性更改为新值。速度按钮现在显示新图像。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-18
    • 2013-06-29
    • 2022-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-26
    • 2023-03-26
    相关资源
    最近更新 更多