Показать сообщение отдельно
  #6  
Старый 14.11.2018, 19:22
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,003
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну, как ты понимаешь, заложиться на все варианты не получится.
Как вариант, можно попробовать в случае, если ParentID только один, то располагать под соотв. родителем. Правда тут могут быть проблемы, если у других квадратиков паренты будут с разных сторон от того, у которого парент один. Сумбурно немного, но, надеюсь, понятно.

Вариант - центровку делаем все равно так же (по крайней мере для 1-го уровня). Потом пытаемся центровать квадратики по родителям. Только учти вариант, когда детей больше, чем родителей. В принципе, я бы в памяти просто строил бы это дерево, сохраняя координаты, потом бы просто по построенному дереву "выплевывал" бы на канву.
Ответить с цитированием