In meiner Anwendung muss die Steuerelemente von Drittanbietern um zusätzliche Funktionen erweitert werden.Hinzufügen von Feldern und Methoden zu Klassen, die von derselben Basis erben, ohne die Basisklasse zu ändern
Ein Beispiel wäre TcxLabel und TcxDBLabel (von DevExpress). Beide erben von der gleichen Basisklasse.
Für diese Steuerelemente möchte ich einige Felder und Methoden hinzufügen.
Die Art, wie ich es heute tun:
TMycxLabel = class(TcxLabel)
private
FMyField1: string;
FMyField2: Integer;
public
procedure DoSomething;
end;
TMycxDBLabel = class(TcxDBLabel)
private
FMyField1: string;
FMyField2: Integer;
public
procedure DoSomething;
end;
Also im Grunde muss ich alles doppelt schreiben.
Eine Möglichkeit, dies zu erreichen, wäre die Änderung der Basisklasse, von der 2 Steuerelemente erben. Aber das ist keine Option - die DevExpress-Klassen/-Pakete sollten nicht geändert werden.
Gibt es eine Möglichkeit, dies zu erreichen?
AFAIK gibt es keinen sauberen Weg, dies zu tun. –
@MartynA Klassenhelfer erlauben es mir nicht, neue Felder, nur Methoden zu deklarieren. – Thomas
Ach ja, tut mir leid, ich hatte einen "Senior Moment". – MartynA