Злоба дня ( Загузка данных на ветки TTreeView )

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
Alex2013
долгожитель
Сообщения: 3237
Зарегистрирован: 03.04.2013 11:59:44

Злоба дня ( Загузка данных на ветки TTreeView )

Сообщение Alex2013 »

Два дня убил - сделал но с какими-то "литературными излишествами"...
Нужно было одновременное чтение имени ветки и данных записанных в поле TTreeNode. DATA... С записью никаких проблем (Обычная рекурсия )
А как начал пытаться читать ... Особенно много неприятностей доставила ситуация когда ветки идут "ступеньками" то есть сразу после ветвления идет следующие ... (Глюк побежден но впечатлении от кода как от шкафа под который засунут толстый том вместо ножки .) :wink:

Отсюда вопрос есть ли способ роботы с деревом как с двухмерным массивом или как минимум есть ли возможность вставки уже собранной ветки целиком ?
Ps
Код который штатно читает дерево из файла для прямого сдирания и модификации не годится из совсем другой структуры входящих данных ...
Аватара пользователя
Лекс Айрин
долгожитель
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград
Контактная информация:

Сообщение Лекс Айрин »

Alex2013, так как содержимое TTreeView легко записывается в обычный текстовый файл, то и работать с ним, после этого, можно как с текстом. А потом просто записать в дерево. А ступеньки это обычные табы, которые можно, при желании, преобразовать в пробелы т обратно.
Аватара пользователя
B4rr4cuda
энтузиаст
Сообщения: 693
Зарегистрирован: 28.12.2007 06:48:35

Сообщение B4rr4cuda »

Может вам посмотреть на VirtualTreeView? Я его люблю за возможность представлять свои структуры, не маясь загрузкой/выгрузкой в дерево.. т.е актуальные данные отображаются со стороних структур.
Alex2013
долгожитель
Сообщения: 3237
Зарегистрирован: 03.04.2013 11:59:44

Сообщение Alex2013 »

Лекс Айрин писал(а):так как содержимое TTreeView легко записывается в обычный текстовый файл, то и работать с ним, после этого, можно как с текстом.

Это разумеется понятно, но нужно писать по сути ЕЩЕ один TTreeView но проще действительно свой написать с нуля (Или выдрать например из КОЛ где реализация вроде попроще ...) И даже если применять TMemoryStream вместо файла будет на редкость тупо
ЗЫ
B4rr4cuda писал(а): VirtualTreeView
:?:
Гм Спасибо... Не сталкивался надо посмотреть ....
Аватара пользователя
Лекс Айрин
долгожитель
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград
Контактная информация:

Сообщение Лекс Айрин »

Alex2013 писал(а):Это разумеется понятно, но нужно писать по сути ЕЩЕ один TTreeView но проще действительно свой написать с нуля


В принципе, если речь идет о загрузке в ветку , то это довольно легко и сделать и стандартными средствами... сложнее следить за вложенностью данных.

function Add

function AddChild
Аватара пользователя
B4rr4cuda
энтузиаст
Сообщения: 693
Зарегистрирован: 28.12.2007 06:48:35

Сообщение B4rr4cuda »

Alex2013 писал(а):Гм Спасибо... Не сталкивался надо посмотреть ....

Посмотрите, не пожалеете. У этого компонента высокий порог вхождения, требуется сначала разобраться как с ним работать, но потом эффективность на очень высоком уровне.

http://wiki.freepascal.org/VirtualTreeview

Русская документация по этому компоненту
Ответить