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

jun*_*cia 7 delphi runtime

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

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

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

Dav*_*nan 13

从评论中可以清楚地看出,您没有TNotifyEventOnClick活动分配.声明TNotifyEvent是:

TNotifyEvent = procedure(Sender: TObject) of object;
Run Code Online (Sandbox Code Playgroud)

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

procedure TMyForm.ToolButtonClick(Sender: TObject);
Run Code Online (Sandbox Code Playgroud)

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

NewToolButton.OnClick := ToolButtonClick;
Run Code Online (Sandbox Code Playgroud)