Delphi中有没有办法为按钮事件分配匿名方法?

sav*_*sav 8 delphi events anonymous-function

我想知道Delphi中是否有一种方法可以为表单控件事件分配匿名方法.

例如:

Button1.OnClick := procedure (Sender: TObject) begin ShowMessage('') end;
Run Code Online (Sandbox Code Playgroud)

当然这给了我一个错误

[dcc32错误] Control.Controller.pas(51):E2009不兼容的类型:'方法指针和常规程序'

这是因为该方法必须属于一个对象,但它不再是匿名的.

也许有一些解决方法

Dav*_*nan 12

这是不可能的.您必须使事件处理程序成为方法类型而不是匿名方法.

您需要将匿名方法包装在方法中.实例方法(记录或类)或类方法.例如: