关于 TRegExpr 里的一个回调函数的问题(100分)

  • 主题发起人 主题发起人 Rainux
  • 开始时间 开始时间
R

Rainux

Unregistered / Unconfirmed
GUEST, unregistred user!
TRegExpr 有个方法 RepaceEx,其原型是
function ReplaceEx (AInputStr : RegExprString;
AReplaceFunc : TRegExprReplaceFunction) : RegExprString;
这里需要一个回调函数 AReplaceFunc,这个函数的类型在 RegExpr.pas 里的定义如下
TRegExprReplaceFunction = function (ARegExpr : TRegExpr): string
of object;
偶试着把 of object 去掉,使其变成普通的函数指针,使用完全正常。
搜索过 RegExpr.pas,他自己也并没有使用这个类型。

请教为什么这个函数被定义成一个方法指针?
而这种方法指针又该怎么使用?
 
如果带object 则表示这个参数需要一个类的成员函数作为参数
如果不带,则表示用一个普通的函数作为参数

回调函数一般都声明为指针,定义成方法的指针有个好处,
就是,这个方法,可以写到窗体类的内部,
而不必写成一个全局的方法

用的时候,将 对象.方法 作为参数就可以了
 
方法指针和对象(类的实例)密切相关,这样可以实现信息隐藏
 
原来是这样,多谢两位了。
 
多人接受答案了。
 
后退
顶部