書いた後で気づいたけど、これはdelギコの要求を満たしてないなぁ。

テンプレートでスーパークラスを抽象化してみると……。
 template<class T> class MyForm : public TForm, public T
 [C++ エラー] Unit1.cpp(18): E2278 VCL クラスでは複数の基本クラスはサポートされない
C++BuilderでもVCLだけは多重継承できないように制限されているのか…。

ObjectPascalは多重継承ができないから、
Javaのようにインターフェイスと実装を分けなければならなかったのに、
VCLは実装継承でライブラリのツリーを作ってしまった。
ここに問題があるのでは?
たぶんDelphiが元からC++だったら問題はなかったと思うよ。

だとするとやはりDecoratorパターンを使って誤魔化すしかないか。
多重継承できないんだからしょうがないよ。