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

admin3个月前教程194

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

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 即可。

标签: delphi

相关文章

Delphi 泛型中数据内容比较

第一:你需要引入 System.Generics.Defaults 单元,系统默认实现的比较方法,都在该单元定义。第二:你要明确下你的需求,是只比较相等就可以,还是要比较大小。IEqualityCom...

高效处理在主线程中显示后台线程处理进度

先看经典的处理方法:TThread.CreateAnonymousThread(     procedure     ...

一个共享的计时器类封装

QDAC 4.0 中已经包含了此单元,名称改为qdac.timer.share,使用 TQShareTimer 来做相关处理。这个是一个精度为秒的共享定时器实现,可以秒为单位创建多个共享的定时器,这些...

运行时动态修改 FMX 样式

运行时动态修改 FMX 样式

简单说几个点:1、FMX 框架下,样式是通过名称来标志的。2、GetStyleObject 默认是克隆原始的样式,所以直接修改对象自身的 FResourceLink 实例,不会影响其它样式,如果要修改...