我有一个TAction,既用于菜单项又用于TButton。我希望菜单项显示标签,而TButton仅显示图标。然而,当指定一个Action时,Vcl会自动设置TButton的Caption属性,我无法去掉它。
有什么建议吗?
我有一个TAction,既用于菜单项又用于TButton。我希望菜单项显示标签,而TButton仅显示图标。然而,当指定一个Action时,Vcl会自动设置TButton的Caption属性,我无法去掉它。
有什么建议吗?
ImageIndex
设置为-1
。在按钮上,将Caption
设置为''
。您必须在运行时执行此操作。Hint
、OnExecute
、OnUpdate
等。type
TButton=Class(Vcl.StdCtrls.TButton)
procedure SetText(var Message:TWMSETTEXT); message WM_SETTEXT;
End;
TForm4 = class(TForm)
ActionList1: TActionList;
ImageList1: TImageList;
Action1: TAction;
BitBtn1: TBitBtn;
Button1: TButton;
Button2: TButton;
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form4: TForm4;
implementation
{$R *.dfm}
{ TMyButton }
procedure TButton.SetText(var Message:TWMSETTEXT);
begin
if Tag<>22 then inherited else Message.Result := 1;
end;
OnExecute
和OnUpdate
事件处理程序。 - Ondrej KelleOnExecute
和OnUpdate
处理程序,您仍然不需要关心哪个控件执行它们。您可以(在其他情况下)在共享的OnUpdate
处理程序中仅禁用这些操作,并且无需担心任何事情。 - Ondrej Kelle