在Delphi中保存指向指定函数的指针

时间:2012-03-14 09:36:49

标签: delphi function function-pointers

不确定tittle是否正确但我需要做的是在某个集合中存储指向指定函数的指针。我这样做非常像声明一个变量

SomeFunctionName: string

当然这种类型不能是一个字符串,问题是它究竟应该是什么?

2 个答案:

答案 0 :(得分:6)

您通常会使用函数指针变量。例如:

type
  TProcedure = procedure;

procedure MyProc1;
begin
end;

procedure MyProc2;
begin
end;

var
  Proc: TProcedure;

.....
Proc := MyProc1;
Proc();//calls MyProc1
Proc := MyProc2;
Proc();//calls MyProc2

这是可以想象的最简单的例子。您可以指定具有参数列表,对象类型方法等的过程类型。请阅读语言指南的Procedural Types主题。

答案 1 :(得分:1)

您实际上并不存储过程/功能而是存储方法。

所以你应该使用TMethod。 TMethod有一个对象指针和一个过程指针。

您可以在另一篇文章中看到更多细节: Save and restore event handlers

编辑:在显示一些存储TControl.onClick事件请求之后,问题似乎已经编辑回原版.....