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