如何在禁用状态下显示位图图像于Tspeedbutton?

5

我正在动态创建快速按钮的选项卡更改过程中,我想要禁用速度按钮,当禁用它时,不显示加载的图像。如何在速度按钮处于禁用状态时显示图像。我正在使用以下代码 SpeedButton,SpeedButton.Glyph.LoadFromFile(Path) 并使用 SpeedButton.numGlyphs =1

您可以尝试使用以下代码将速度按钮设置为禁用状态并显示已加载的图像:
SpeedButton.Enabled := False; SpeedButton.Glyph.LoadFromFile(Path); SpeedButton.NumGlyphs := 1;

1个回答

3

Glyph中使用的图像可以包含最多4个图像,每个SpeedButton状态都有一个(up, down, disabled, selected)。

这些图片放置在单个位图文件中相邻,该文件用于SpeedButton的Glyph属性。使用NumGlyphs指示在Glyph中使用多少个图像(例如,您可以仅使用2个或仅使用3个图像)。

请阅读SpeedButton Glyph属性的文档。


11
顺序实际上是 UpDisabledClickedDown。一个图片意味着它用于所有状态,两个用于 UpDisabled 状态,以此类推。最新文档的链接(仍适用于 D7,因为 TSpeedButton 没有太大变化)在这里。如果只提供一个图像,则 VCL 会创建其掩模版本用于禁用状态,该状态通常被隐藏(不可见)或仅部分绘制。 - Ken White
当字形来自操作时,这并不能起到作用。我甚至在操作管理器上分配了DisabledImages(我已将其指向与常规图像相同的位置),因此Glyph会自动分配。然而,它并不适用于禁用的图像。将GlyphCount设置为1也没有任何作用。 - Jerry Dodge

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接