简体   繁体   中英

Is there a way in Delphi to assign an anonymous method to a button event?

I was wondering if there is a way in Delphi to assign an anonymous method to a form control event.

For example:

Button1.OnClick := procedure (Sender: TObject) begin ShowMessage('') end;

Of course this gives me an error

[dcc32 Error] Control.Controller.pas(51): E2009 Incompatible types: 'method pointer and regular procedure'

This is because the method must belong to an object, but then it would not be anonymous any more.

Perhaps there is some work around for this

This is not possible. You have to make the event handler be a method type rather than an anonymous method.

You'll need to wrap your anonymous method in a method. Either an instance method (of a record or a class), or a class method. For instance:

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM