![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Компонент "Дерево"
Beginner2010 © (2010-10-25 08:08:00)Посоветуйте, плиз, невизуальный компонент, содержащий данные в виде дерева и занимающий минимальный объем в памяти. Узлов очень много, поэтому не хочется использовать стандартные TTreeView и TVirtualTreeview.
brother (2010-10-25 12:10:00) [1]уже все сказал ;)
Медвежонок Пятачок (2010-10-25 11:50:00) [2]не скажу же сказал.
brother (2010-10-25 11:48:00) [3]> а я знаю, но не скажу какой подходит лучше всего
я догадываюсь) твой любимый XML? ))))
Медвежонок Пятачок (2010-10-25 11:46:00) [4]а я знаю, но не скажу какой подходит лучше всего
Игорь Шевченко (2010-10-25 11:42:00) [5]
> Посоветуйте, плиз, невизуальный компонент, содержащий данные
> в виде дерева
TComponent
Юрий Зотов (2010-10-25 10:29:00) [6]type
TMyTreeNode = class
public
Parent: TMyTreeNode;
Children: TObjectList;
Data: Pointer;
end;
Это все, что нужно для хранения данных в виде дерева при минимальных затратах памяти.
sniknik (2010-10-25 09:37:00) [7]> невизуальный компонент, содержащий данные в виде дерева
"это фантастика сынок" © реклама сыра.
данные в виде дерева можно только отобразить... а вот содержать... как ты себе это представляешь? память она вообще "в одну строку".
> ... указатель на родителя ...
ID записи, + указатель на родителя и все "вырождается" в плоскую структуру, такую, в которой хранят "деревья" в базе.
ну так если не нужно визуального представления, то может просто не "разворачивать" дерево, а хранить как есть в таблице/виртуальной таблице если уж нужно в памяти. а там уж и поиск есть, и фильтры и индексы для ускорения поиска (за счет памяти, но по другому не бывает).
George (2010-10-25 08:24:00) [8]
> И. Павел © (25.10.10 08:16) [2]
В этом плане как раз таки Virtual Tree View крут. Вряд ли автор быстро и хорошо напишет что-то альтернативное.
И. Павел (2010-10-25 08:16:00) [9]Если невизуальный и критична скорость и память, то, наверное, лучше всего самому сделать: каждый узел может содержать помимо своей информации, указатель на родителя. Ну и, если потребуется, для ускорения операций поиска что-нибудь добавить.
Еще можно использовать граф. Это удобно и быстро в обработке, но ресурсов съест много.
George (2010-10-25 08:15:00) [10]VirtualTreeView.
Скачать где-то тут: http://www.soft-gems.net/index.php?option=com_content&task=view&id=12&Itemid=33
Неплохой мануальчик для старта тут: http://forum.vingrad.ru/forum/topic-97620.html