上のコードを実装している最中に、具象クラスを定義するところでコンパイルエラーになってはまったのでついでにメモ。
E2246 class は、抽象およびパブリックの、データを持たない単一の継承クラスの階層ではない
というエラー。意味が分からない。ヘルプによると、コンパイラがクラス階層に制約を強制する
、などとある。なぜに??
しばらくはまったあと、ふとルートクラスが意味もなく VCL のクラスを継承していることに思い当たり、調べてみるとこれが原因だった模様。 VCL のクラスや、そこから派生したクラスは多重継承することはできないと。
ということで、元々消す予定のものだったので、ばっさり関係を断ち切りました。しかしその影響で __property (BCB の独自拡張)) で VCL クラスから派生している時しか使えないオプションを使っていて、それらの修正もやる羽目に。うう……まあしかし、これもいずれやる予定だったのでちょうどよかったかな。