我在设计时创建了一个没有ToolButtons的TToolBar。我的想法是在运行时创建ToolButtons并在创建表单时将它们放在那里,只是为了向用户显示打开哪些表单而无需在主菜单中打开“Windows”菜单。
我有一个名为NavigationUtils.pas的单元,用于存储有关导航的过程/函数(在创建表单时创建按钮)。
问题是:如何在创建ToolButtons时配置OnClick事件?
答案 0 :(得分:13)
从评论中可以清楚地看出,您没有为TNotifyEvent
事件分配OnClick
。 TNotifyEvent
的声明是:
TNotifyEvent = procedure(Sender: TObject) of object;
因此,您需要一个具有TObject
类型的单个参数的过程,并且该过程必须是对象的方法。所以,像这样:
procedure TMyForm.ToolButtonClick(Sender: TObject);
然后你可以像这样分配它:
NewToolButton.OnClick := ToolButtonClick;