12

我想知道是否有可能实现这样的事情:

procedure waitandcall(time,@MyProcedureOrFunction)

哪个执行我创建的函数或过程?

我不确定它们是否被称为回调。

4

2 回答 2

25

这是绝对可能的,你甚至不需要 @ 在你的函数之前。

事实上,所有的事件都是基于此。

首先为您的函数/过程定义一个类型

type
  TMyProc = procedure(Param1: Integer);

然后,您可以在任何地方使用您的过程类型,只要您的过程的签名与您的类型匹配。

如果您使用的是对象方法而不是普通的过程/函数,则需要使用of object

type
  TMyMethod = procedure(Param1: Integer) of object;

要从内部调用回调,您可以使用以下内容:

procedure DoAndCallBack(MyProc: TMyProc)
begin
  MyProc(1);
end;
于 2012-12-28T05:18:15.783 回答
5

回调正是所谓的,Delphi 完全有能力创建和调用它们。它们也被称为函数指针。请参阅文档中的过程类型

于 2012-12-28T05:16:44.623 回答