【发布时间】:2016-06-22 11:27:35
【问题描述】:
在我的应用程序中,我需要向 3rd 方控件添加一些额外的功能。
例如 TcxLabel 和 TcxDBLabel(来自 DevExpress)。 两者都继承自同一个基类。
对于这些控件,我想添加一些字段和方法。
我今天的做法:
TMycxLabel = class(TcxLabel)
private
FMyField1: string;
FMyField2: Integer;
public
procedure DoSomething;
end;
TMycxDBLabel = class(TcxDBLabel)
private
FMyField1: string;
FMyField2: Integer;
public
procedure DoSomething;
end;
所以基本上我必须写两次。
实现它的一种方法是修改这两个控件继承自的基类。 但这不是一个选项 - 不应修改 DevExpress 类/包。
有没有办法添加实现这个?
【问题讨论】:
-
AFAIK 没有干净的方法可以做到这一点。
-
@MartynA 类助手不允许我声明新字段,只能声明方法。
-
啊,是的,对不起,我有一个“高级时刻”。
-
有人似乎对答案不满意......但是,OP 想要的东西是不可行的。
-
您可以编写一个包含这些字段和方法的 TcxLabelExt 类,并将这样的 TcxLabelExt 添加到两种 tMycx... 类型,而不是添加这些字段和方法到这两种标签类型.然后你只需要编写一次扩展功能。您必须手动处理包含的扩展,但这可能要容易得多。