How can I assign the OnClick event of a ToolButton at runtime?

巧了我就是萌 提交于 2019-12-01 01:20:21

问题


I have a TToolBar created in design time with no ToolButtons. My idea is to create ToolButtons in runtime and place them there when my forms are created, just to show the user what forms are opened without needing to open a "Windows" menu in the main menu.

I have an unit named NavigationUtils.pas that I use to store the procedures / functions about navigation (as the creation of the buttons when my forms are created).

The question is: How can I configure the OnClick event when the ToolButtons are created?


回答1:


From the comments it is clear that you are not assigning a TNotifyEvent to the OnClick event. The declaration of TNotifyEvent is:

TNotifyEvent = procedure(Sender: TObject) of object;

So you need a procedure, with a single parameter of type TObject, and the procedure must be the method of an object. So, something like this:

procedure TMyForm.ToolButtonClick(Sender: TObject);

And then you can assign it like so:

NewToolButton.OnClick := ToolButtonClick;


来源:https://stackoverflow.com/questions/13970907/how-can-i-assign-the-onclick-event-of-a-toolbutton-at-runtime

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!