Ich versuche, eine Reihe von Steuerelementen zu entwickeln, die alle eine Reihe von gemeinsamen Verhaltensweisen in Bezug auf die Größe haben. Ich denke, dass dies ein Fall ist, wo Mehrfachvererbung erforderlich ist (obwohl ich bereit bin, jeden gegenteiligen Rat zu akzeptieren). Was ich tun möchte, ist im Grunde ein Mixin-Muster
class Sizable {
...
public:
ResizeMe();
ResetText();
...
};
class sizeButton : public Sizable, public TButton {
...
};
class sizeEdit : public Sizable, public TEdit {
...
};
und so weiter...
Ich habe eine nicht-triviale Menge an Sizing-Code in der Sizable-Klasse geschrieben und getestet, und es ist schön, aber jetzt habe ich den Rest der Struktur (ja, ich hätte wahrscheinlich zuerst ein Skelett für die Klassen schreiben sollen) und habe entdeckt, dass leider:
[BCC32 Error] szButton.h(15): E2278 Multiple base classes not supported for VCL classes
Ich habe alle Funktionen herausgenommen, die keine Mitgliedsfunktionen sein müssen (z. B. die Messung der Länge von Zeichenketten), aber es gibt immer noch eine Menge Funktionen, bei denen dies nicht möglich ist.
Hat jemand irgendwelche Design-Ratschläge, so dass ich nicht haben, um eine Tonne von Code zu duplizieren?