Delphi. Иерархические данные. DBTreeView своими руками. Копирование узлов в TreeView с сохранением структуры

Это продолжение статьи про копирование узлов. В прошлом посте копировали иерархические записи в БД, в данном посте – будем обновлять узел в который вставляли скопированные записи. Эти 2 части – БД и TreeView должны работать синхронно – в этом самая большая сложность при разработке DBTreeView.

3

Идея точно такая же как и с базами данных

-Собрать все копируемые узлы в списки  IDCheckedList и IDInsertedList

-Переместить в новый узел

-При перемещении, если у ID вставлямого узла есть родитель и этот родитель в списке IDInsertedList, то переподчинить его этому родителю. Поскольку родители в дерево вставляются всегда раньше чем дети (папка состоит из файлов), то родитель найдется в дереве.

Для этого нам понадобятся следующие процедуры

Вспомогательная процедура – поиск родительского узла в дереве по ID

Добавление иерархической структуры в узел при копировании

Процедура Execute изменится следующим образом

 

Ну и соответственно вызов в главном потоке

Вызов в главном потоке


Скачать файлы проекта

Дамп БД MySQL

This entry was posted in Delphi, Деревья. Bookmark the permalink.