不知道该标题是否正确,但我需要做的是在某个集合中存储指向指定函数的指针。我这样做,很像声明一个变量在Delphi中保存一个指向指定函数的指针
SomeFunctionName: string
当然这种类型不能是字符串,问题是什么,应该是准确?
不知道该标题是否正确,但我需要做的是在某个集合中存储指向指定函数的指针。我这样做,很像声明一个变量在Delphi中保存一个指向指定函数的指针
SomeFunctionName: string
当然这种类型不能是字符串,问题是什么,应该是准确?
您通常会使用函数指针变量。例如:
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主题。
SO formatter错误? +1 – TLama 2012-03-14 09:46:29
@TLama是的,我不时看到它。我已经报告过它:http://meta.stackexchange.com/questions/125587/please-can-this-markdown-bug-be-fixed – 2012-03-14 09:51:47
@JacekKwiecień请参阅David提到的页面中名为“Method Pointers”的部分。 – 2012-03-14 12:10:15
您实际上并不存储过程/函数,而是存储方法。
所以你应该使用TMethod来代替。 TMethod有一个对象指针和一个过程指针。
可以在另一篇文章中看到更多的细节: Save and restore event handlers
编辑:这似乎显示出一些贮藏TControl.onClick事件请求后,问题一直是编辑回到原来.....
'型TGetSomeString = function:string; //读取文档中的过程类型 – OnTheFly 2012-03-14 13:43:23
通常,对于方法(属于类的过程或函数),您可以使用object的对象或函数(args)类型的“过程(args):对象的结果类型”类型声明。 http://stackoverflow.com/questions/4626614/delphi-please-explain-this-type-procedure-of-object – 2012-03-15 13:04:40