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

Mit*_*ath 6 delphi delphi-7

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

kob*_*bik 6

您可以创建一个Interposer类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;
Run Code Online (Sandbox Code Playgroud)

这将导致TBitBtn没有焦点矩形.(使用D7测试 - 有/无主题支持).


Ben*_*ela 3

作为解决方法,您可以使用 a TSpeedButton,它不获取焦点,因此永远不会接收焦点矩形。