私は非常に興味深い問題を抱えています。
バックグラウンド
私は何年も TTreeView を使用してきましたが、ドッキング ライブラリ (AutomatedQA から) と共に使用するようになったのは今だけです。TTreeView の親が変更されると、すべてのハンドルが再作成されることを学びました。これは、通常のアクティビティ中にドッキング ライブラリが行うことです。
オブジェクトを保持するために TTreeNode の Data プロパティを使用しています。オブジェクト内の TreeNode へのリンクも保持しています。つまり、TreeNode を使用してオブジェクトを取得でき、オブジェクトから TreeNode を取得することもできます。
ツリー ビューの親が変更されていない限り (ウィンドウの自動非表示と表示)、私のアプリケーションは完全に機能します。
問題
私が見つけたのは、親が変更されると、ツリー ノードの Data プロパティにアタッチされたオブジェクトに、間違ったツリー ノードまたは古いポインターへの参照が含まれるようになったことです。
別の方法で「MyTreeViewContainer.Parent:=SomewhereElse」を試してみたところ、同じ問題が発生しました。
おそらく何百ものオブジェクトでツリーをリロードするのはあまり効率的ではありません。
この問題を回避する方法がわかりません。私は長い間ツリービューをロードすることができ、オブジェクトはお互いを簡単に見つけることができました. これは、ツリービューを使用するための私の素敵な「パターン」を本当に壊す可能性があります...
ご協力ありがとうございました!