2012-11-15 57 views
4

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

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

可能吗?

谢谢

回答

0

听起来像是你可以使用当一个项目被选中充当一个下拉控件。除此之外,只需将代码放在OnButtonClick方法中即可模拟被单击的向下箭头。

0

我设法让我的项目工作如下。我无法找到直接引用在ActionBar上创建的按钮的方法。然而,ActionComponent被设置为在运行时创建的按钮。

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

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;