Public 类型 Delphi 组件
Public Types in Delphi Components
我已经子class了一个 FMX 组件,我想覆盖一个(虚拟)受保护的过程。
这个程序有一些参数,在组件的class中声明为"public type"。
当我尝试覆盖该过程时,我收到一个错误,指出其中一种类型未声明,尽管我的组件子class是原始类型。我不应该能够访问它吗?
class的定义是这样的:
TTabControl = class (...)
public type
TTabBarButton = (Left, Right)
TTabBarButtons = set of TTabButton;
....
protected
procedure DoUpdate(const TabBarButtons: TTabBarButtons; ....); virtual;
...
end;
现在,我已经子class编辑了这个 class 并且想覆盖 DoUpdate。
TMyClass = class (TTabControl)
protected
procedure DoUpdate(const TabBarButtons: TTabBarButtons; ....); override;
....
end;
编译器抱怨我的 class 中的 TTabBarButtons 没有定义。如果我在我的 class 中将 TTabBarButtons 重新定义为 public 类型,那么它会说该定义不同于基础 class.
你能帮我解决这个问题吗?
非常感谢。
这对我有用:
TMyClass = class (TTabControl)
protected
procedure DoUpdate(const TabBarButtons: TTabControl.TTabBarButtons; ....); override;
....
end;
您还需要使用其他参数来执行相同的操作;当您开始跟踪所有这些类型和声明时,乐趣就来了。祝你好运。 :-)
我已经子class了一个 FMX 组件,我想覆盖一个(虚拟)受保护的过程。
这个程序有一些参数,在组件的class中声明为"public type"。
当我尝试覆盖该过程时,我收到一个错误,指出其中一种类型未声明,尽管我的组件子class是原始类型。我不应该能够访问它吗?
class的定义是这样的:
TTabControl = class (...)
public type
TTabBarButton = (Left, Right)
TTabBarButtons = set of TTabButton;
....
protected
procedure DoUpdate(const TabBarButtons: TTabBarButtons; ....); virtual;
...
end;
现在,我已经子class编辑了这个 class 并且想覆盖 DoUpdate。
TMyClass = class (TTabControl)
protected
procedure DoUpdate(const TabBarButtons: TTabBarButtons; ....); override;
....
end;
编译器抱怨我的 class 中的 TTabBarButtons 没有定义。如果我在我的 class 中将 TTabBarButtons 重新定义为 public 类型,那么它会说该定义不同于基础 class.
你能帮我解决这个问题吗?
非常感谢。
这对我有用:
TMyClass = class (TTabControl)
protected
procedure DoUpdate(const TabBarButtons: TTabControl.TTabBarButtons; ....); override;
....
end;
您还需要使用其他参数来执行相同的操作;当您开始跟踪所有这些类型和声明时,乐趣就来了。祝你好运。 :-)