ESG*_*ESG 22
这绝对是可能的,在你的功能之前你甚至不需要@.
事实上,所有事件都是基于此.
首先定义函数/过程的类型
type
TMyProc = procedure(Param1: Integer);
Run Code Online (Sandbox Code Playgroud)
然后,您可以在任何地方使用您的过程类型,只要您的过程的签名与您的类型匹配即可.
如果您使用的是对象方法而不是普通的过程/函数,则需要使用 of object
type
TMyMethod = procedure(Param1: Integer) of object;
Run Code Online (Sandbox Code Playgroud)
要从内部调用回调,您可以使用以下内容:
procedure DoAndCallBack(MyProc: TMyProc)
begin
MyProc(1);
end;
Run Code Online (Sandbox Code Playgroud)