Я пытаюсь разработать набор элементов управления, которые имеют ряд общих поведений в отношении размеров. Я думаю, что это тот случай, когда требуется множественное наследование (хотя я полностью готов принять любой совет об обратном). То, что я хотел бы сделать, это в основном миксиновый паттерн
class Sizable {
...
public:
ResizeMe();
ResetText();
...
};
class sizeButton : public Sizable, public TButton {
...
};
class sizeEdit : public Sizable, public TEdit {
...
};
и так далее ...
Я написал нетривиальный объем кода для определения размера в классе Sizable и протестировал его, и это хорошо, но теперь я изложил остальную часть структуры (да, я, вероятно, сначала должен был написать скелет для классов ) и обнаружили, что печально:
[BCC32 Error] szButton.h(15): E2278 Multiple base classes not supported for VCL classes
Я вытащил все функции, которые не обязательно должны быть функциями-членами (например, измерение длины строк), но есть еще много функций, где это невозможно.
У кого-нибудь есть советы по проектированию, чтобы мне не пришлось дублировать тонну кода?