これはとてもシンプルに聞こえますが、タマネギのようなものです。皮をむくとたくさんの層ができます。私は独自のオブジェクト クラスの階層を持っています。これはフォーム上のコンポーネントに少し似ていますが、どのコンポーネントも子と親を持つことができます。上部にルート オブジェクトがあります。他のコードがこの階層を管理しており、ブランチまたはリーフがいつでも作成、削除、または名前変更される可能性があります。この階層のビューを提供するツリー ビュー (何らかの種類、おそらく仮想) が必要です。これらのツリー ビューを複数持つことができ、それぞれが必要に応じてオブジェクト階層から自分自身を描画します。
私はすでに Delphi の TTreeView を使用したソリューションを持っていますが、「変更済み」フラグが発生したときに階層を反復処理し、変更されたツリー ビュー ブランチを再構築することに依存しています。これは遅い (1000 以上のオブジェクトを持つことができる) ため、1 つのオブジェクトの挿入または削除に対して 1 つのツリー ビューの変更を管理するアルゴリズムが必要です。
これは可能ですか?