![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Генерация TreeView в runtime [D6, WinXP]
Sergey_R © (2005-09-24 14:10:00)Народ, подскажите как заполнить TreeView в runtime!
Ну, например, мне нужно создать такое дерево
-Исполнитель
-Группа1
Песня1
Песня2
...
-Группа2
Песня1
Песня2
...
-Жанр
-жанр1
-жанр2
...
Поля 'исполнитель' и 'жанр' я знаю как добавить, а как к ним добавить вложенные списки (типа как в медиаплеере 9)?
TStas (2005-09-24 20:26:00) [1]>То есть TTreeNodes это типа массив из TTreeNode?
Это не массив самих узлов, а указателей на них.
Eraser (2005-09-24 18:05:00) [2]
> Sergey_R © (24.09.05 16:30) [6]
Типа того... только не массив.
Согласно справки TTreeNodes это object and maintains the collection of nodes in the tree view.
Sergey_R (2005-09-24 16:30:00) [3]То есть TTreeNodes это типа массив из TTreeNode?
Eraser (2005-09-24 15:49:00) [4]
> Sergey_R © (24.09.05 15:40) [4]
>
> По-моему надо создавать указатель на node.Item[0], но как
> это сделать, не пойму!
Идентификатор объекта в делфи и есть указатель на объект.
> В хелпе нашел типы TTreeNode и TTreeNodes. А чем они отличаются?
TTreeNode - класс который ппредставляет узел в дереве иерархии.
TTreeNodes представляет собой класс для манипуляциями узлами (TTreeNode) дерева.
Чтобы создать указатель на любой класс, просто объяви его как переменую:
var
tn: TTreeNode;
> with TreeView1.Items do
> begin
> artist:=add(nil,'Исполнитель');
> addchild(node,'Группа1');
> addchild(node.Item[0],'Песня1');
> addchild(node.Item[0],'Песня2');
>
> addchild(node,'Группа2');
> addchild(node.Item[1],'Песня1');
> addchild(node.Item[1],'Песня2');
>
> end;
Можно так:
var
tn: TTreeNode;
...
tn := addchild(node,'Группа1');
addchild(tn,'Песня1');
addchild(tn,'Песня2');
...
Sergey_R (2005-09-24 15:40:00) [5]Допустим, пишу я вот так:
with TreeView1.Items do
begin
artist:=add(nil,'Исполнитель');
addchild(node,'Группа1');
addchild(node.Item[0],'Песня1');
addchild(node.Item[0],'Песня2');
addchild(node,'Группа2');
addchild(node.Item[1],'Песня1');
addchild(node.Item[1],'Песня2');
end;
А нельзя ли сделать так, чтобы вместо addchild(node.Item[0],'Песня1'); было
что-то типа addchild(group1,'Песня1')?
По-моему надо создавать указатель на node.Item[0], но как это сделать, не пойму!
И еще. В хелпе нашел типы TTreeNode и TTreeNodes. А чем они отличаются?
Eraser (2005-09-24 14:33:00) [6]
> Sergey_R © (24.09.05 14:31) [2]
>
> Просто я не понимаю иереархию этого чертового дерева!
Иерархия сама что есть иерархическая, какой же ей быть ещё...?
Что конкретно непонятно ?
Sergey_R (2005-09-24 14:31:00) [7]Список функций я мог бы посмотреть и по нажатию Ctrl+Space. Просто я не понимаю иереархию этого чертового дерева!
Eraser (2005-09-24 14:24:00) [8]
> Sergey_R © (24.09.05 14:10)
TreeView.Items.Add
AddChild
AddChildFirst
AddChildObject
AddChildObjectFirst
AddFirst
AddNode
и т.д.