http://d.hatena.ne.jp/lethevert/20050902/p3
そもそも私が思ったのは「TreeViewのデータに対するインタフェースが提供されていて、自前の木クラスをそのまま表示できることがそんなにうれしいとは思えない」ということです。理由は「木クラスがTreeViewのことを意識して実装されているのは、一般的には好ましくない」と考えるからです。Delphiのインタフェースは、木クラスとTreeViewを関連付けるには、密接に関連付けすぎます。

実際にはケースバイケースでしょうし、自前の木クラスをそのまま表示したい場合もあると思います。そういうときにはVCLのTreeViewは使いにくいでしょう。あるいは、私の判断は、クラスを最小にすることを目的としているので、画面描画や木そのものの機能を全て一箇所にまとめて実装することを目的とするならば、そういう判断も妥当だとも思います。

しかし、少なくとも、全体として見れば「TreeViewに対応する専用の木クラスが提供されているVCLのクラス構成」は「最悪」と言うほど悪いものではないと思います。また、正しい(VCLが意図しているであろう)利用方法は私の考えているものと近いと感じました。

とはいえ、私はDelphiでプログラミングしたことはないので、もしかしたらDelphiではそうする*1ことが妥当なのかもしれません。

*1:Viewに対応するインタフェースを定義しておいて、モデルではそれを実装する