单击顶级按钮时显示TActionToolBar的子按钮

时间:2012-11-15 19:56:54

标签: delphi c++builder vcl

我有一个使用TActionToolBar和TActionManager的工具栏。按钮具有可用的子按钮,单击按钮右侧的小向下箭头。全部由VCL管理,工作正常。

我想在单击顶级按钮时显示子按钮。现在,我需要单击小箭头,但我希望整个按钮的功能相同。

有可能吗?

谢谢

2 个答案:

答案 0 :(得分:0)

听起来你可以使用在选择项目时起作用的DropDown控件。除此之外,只需将代码放在OnButtonClick方法中即可模拟被点击的向下箭头。

答案 1 :(得分:0)

我设法让我的项目有以下工作。我找不到直接引用ActionBar上创建的按钮的方法。但是,ActionComponent设置为在运行时创建的按钮。

当然,这必须是一个动作本身,以连接动作栏上的主要按钮,其中所附的子项目。

procedure TReportPlugin.actMyDropdownExecute(Sender: TObject);
var
  ActionButton: TCustomDropDownButton;
begin
  inherited;

  if (Sender is TAction) then
  begin

    if (Sender as TAction).ActionComponent is TCustomDropDownButton then
    begin
      ActionButton := (Sender as TAction).ActionComponent as TCustomDropDownButton;
      ActionButton.DropDownClick;
    end;

  end;
end;