我想知道是否有可能实现这样的事情:
procedure waitandcall(time,@MyProcedureOrFunction)
哪个执行我创建的函数或过程?
我不确定它们是否被称为回调。
这是绝对可能的,你甚至不需要 @ 在你的函数之前。
事实上,所有的事件都是基于此。
首先为您的函数/过程定义一个类型
type
TMyProc = procedure(Param1: Integer);
然后,您可以在任何地方使用您的过程类型,只要您的过程的签名与您的类型匹配。
如果您使用的是对象方法而不是普通的过程/函数,则需要使用of object
type
TMyMethod = procedure(Param1: Integer) of object;
要从内部调用回调,您可以使用以下内容:
procedure DoAndCallBack(MyProc: TMyProc)
begin
MyProc(1);
end;
回调正是所谓的,Delphi 完全有能力创建和调用它们。它们也被称为函数指针。请参阅文档中的过程类型。