如何在运行时分配ToolButton的OnClick事件?

时间:2012-12-20 11:11:49

标签: delphi runtime

我在设计时创建了一个没有ToolButtons的TToolBar。我的想法是在运行时创建ToolButtons并在创建表单时将它们放在那里,只是为了向用户显示打开哪些表单而无需在主菜单中打开“Windows”菜单。

我有一个名为NavigationUtils.pas的单元,用于存储有关导航的过程/函数(在创建表单时创建按钮)。

问题是:如何在创建ToolButtons时配置OnClick事件?

1 个答案:

答案 0 :(得分:13)

从评论中可以清楚地看出,您没有为TNotifyEvent事件分配OnClickTNotifyEvent的声明是:

TNotifyEvent = procedure(Sender: TObject) of object;

因此,您需要一个具有TObject类型的单个参数的过程,并且该过程必须是对象的方法。所以,像这样:

procedure TMyForm.ToolButtonClick(Sender: TObject);

然后你可以像这样分配它:

NewToolButton.OnClick := ToolButtonClick;