不知道該標題是否正確,但我需要做的是在某個集合中存儲指向指定函數的指針。我這樣做,很像聲明一個變量在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