У меня очень интересная проблема.
фон
Я использовал TTreeView годами, но только сейчас использую его с библиотекой стыковки (от AutomatedQA). я узнал, что когда родительский элемент TTreeView изменяется, все дескрипторы воссоздаются. это то, что библиотека док-станции делает во время обычных активаций.
Я использовал свойство Data в TTreeNode для хранения объекта. я также сохранил связь с TreeNode в объекте. Короче говоря, используя TreeNode, я могу получить объект и также получить TreeNode от объекта.
до тех пор, пока в древовидном представлении никогда не изменился родитель (окно автоматического скрытия и отображения), мое приложение работает отлично.
проблема
я обнаружил, что после изменения родителя мой объект, присоединенный к свойству Data узла дерева, теперь содержит ссылки на неправильный узел дерева или устаревший указатель.
я попробовал его другим способом "MyTreeViewContainer.Parent: = SomewhereElse" и заметил ту же проблему.
перезагрузка дерева возможно сотнями объектов не будет очень эффективной.
Я не понимаю, как мне обойти эту проблему. я так долго мог загружать вид дерева и позволить объектам легко находить друг друга. это может действительно сломать мой хороший "шаблон" для использования вида дерева ...
спасибо за помощь!