如何从按钮控件中删除焦点矩形?

时间:2013-03-09 22:51:52

标签: delphi delphi-7

我需要删除一个按钮焦点矩形,因为在单击按钮后,TBitBtn字形看起来很糟糕。

2 个答案:

答案 0 :(得分:6)

您可以为TBitBtn创建一个插入器类并覆盖SetButtonStyle,以防止设置其内部IsFocused变量:

type
  TBitBtn = class(Buttons.TBitBtn)
  protected
    procedure SetButtonStyle(ADefault: Boolean); override;
  end;

...
implementation

procedure TBitBtn.SetButtonStyle(ADefault: Boolean);
begin
  inherited SetButtonStyle(False);
end;

这将导致TBitBtn没有焦点矩形。 (经过D7测试 - 有/无主题支持)。

答案 1 :(得分:3)

作为一种解决方法,您可以使用TSpeedButton,它不会占据焦点,因此永远不会收到焦点矩形。