[教程]Delphi 函数的内部函数在匿名回调函数中无法使用的一种解决办法

这个问题很简单,将对应的函数改写赋值到一个匿名函数变量即可。

function test;
  function add(x,y:Integer):Integer;
  begin
    Result:=x+y;
  end
begin 
...
end

上面的代码改写成:

type
  TfnAdd=reference to function (x,y:Integer):Integer;
function test;
var
  add:TfnAdd;
begin 
add:=function add(x,y:Integer):Integer;
  begin
    Result:=x+y;
  end;
...
end

然后在后面的直接调用 add 即可。

分享到: