4

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

4

1 回答 1

6

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

Type
   TGetValueFunction = Function: String of object;
于 2012-09-30T12:37:33.393 回答