加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Delphi组件中的公共类型

发布时间:2020-12-15 09:15:43 所属栏目:大数据 来源:网络整理
导读:我已经子类化了FMX组件,我想要覆盖(虚拟)受保护的过程. 此过程有许多参数,在组件的类中声明为“公共类型”. 当我尝试覆盖该过程时,我得到一个错误,即虽然我的组件是原始类型的子类,但未声明其中一个类型.我不应该能够访问它吗? 该类定义如下: TTabControl
我已经子类化了FMX组件,我想要覆盖(虚拟)受保护的过程.

此过程有许多参数,在组件的类中声明为“公共类型”.

当我尝试覆盖该过程时,我得到一个错误,即虽然我的组件是原始类型的子类,但未声明其中一个类型.我不应该能够访问它吗?

该类定义如下:

TTabControl = class (...)
public type
  TTabBarButton = (Left,Right)
  TTabBarButtons = set of TTabButton;
  ....
protected
  procedure DoUpdate(const TabBarButtons: TTabBarButtons; ....); virtual;
  ...
end;

现在,我已经将这个类子类化,并希望覆盖DoUpdate.

TMyClass = class (TTabControl)
protected
  procedure DoUpdate(const TabBarButtons: TTabBarButtons; ....); override;  
  ....
end;

编译器抱怨我的类中没有定义TTabBarButtons.如果我在我的类中重新定义TTabBarButtons作为公共类型,那么它说定义与基类不同.

你能帮我解决这个问题吗?

非常感谢.

解决方法

这对我有用:

TMyClass = class (TTabControl)
protected
  procedure DoUpdate(const TabBarButtons: TTabControl.TTabBarButtons; ....); override;  
  ....
end;

还有其他参数可以用来做同样的事情;当您开始跟踪所有这些类型和声明时,就会产生乐趣.祝好运.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读