无法将函数引用传递给框架中的表单

时间:2012-09-30 12:31:34

标签: delphi

我有一个正在构建的应用程序,它有一个带有几个创建的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例程问题的正确方法吗?

1 个答案:

答案 0 :(得分:6)

如果你想使用类的方法,你必须声明这样的函数类型:

Type
   TGetValueFunction = Function: String of object;