我有一个正在构建的应用程序,它有一个带有几个创建的TabSheets的PageControl,我在其上放置了几个预定义的帧。每个框架中都有一个名为“GetValue”的例程,它将其控件的内容解析为字符串并返回结果。在主要表格(RGMain)上我有:
Type
TGetValueFunction = Function: String;
...
Private
fGetValueFunction: TGetValueFunction;
...
Public
Property GetValueFunction: TGetValueFunction Write fGetValueFunction;
在我拥有的每个框架中:
Public
Constructor Create(AQwner: TComponent);
...
Interface
Constructor TBooleanChoiceFrame.Create(AOwner: TComponent);
Begin
Inherited Create(AOwner);
RGMain.GetValueFunction := GetValue; <<<< compile error on this line
End;
E2009不兼容的类型:'常规程序和方法指针'
除了纠正问题之外,这是解决每个帧中访问GetValue例程问题的正确方法吗?
答案 0 :(得分:6)
如果你想使用类的方法,你必须声明这样的函数类型:
Type
TGetValueFunction = Function: String of object;