Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.10.16;
Скачать: CL | DM;

Вниз

Генерация TreeView в runtime   Найти похожие ветки 

 
Sergey_R ©   (2005-09-24 14:10) [0]

Народ, подскажите как заполнить TreeView в runtime!
Ну, например, мне нужно создать такое дерево

-Исполнитель
 -Группа1
    Песня1
    Песня2
    ...
 -Группа2
    Песня1
    Песня2
    ...
-Жанр
 -жанр1
 -жанр2
 ...



Поля "исполнитель" и "жанр" я знаю как добавить, а как к ним добавить вложенные списки (типа как в медиаплеере 9)?


 
Eraser ©   (2005-09-24 14:24) [1]


> Sergey_R ©   (24.09.05 14:10)

TreeView.Items.Add
AddChild
AddChildFirst
AddChildObject
AddChildObjectFirst
AddFirst
AddNode
и т.д.


 
Sergey_R ©   (2005-09-24 14:31) [2]

Список функций я мог бы посмотреть и по нажатию Ctrl+Space. Просто я не понимаю иереархию этого чертового дерева!


 
Eraser ©   (2005-09-24 14:33) [3]


> Sergey_R ©   (24.09.05 14:31) [2]
>
>  Просто я не понимаю иереархию этого чертового дерева!

Иерархия сама что есть иерархическая, какой же ей быть ещё...?
Что конкретно непонятно ?


 
Sergey_R ©   (2005-09-24 15:40) [4]

Допустим, пишу я вот так:

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 15:49) [5]


> 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 16:30) [6]

То есть TTreeNodes  это типа массив из TTreeNode?


 
Eraser ©   (2005-09-24 18:05) [7]


> Sergey_R ©   (24.09.05 16:30) [6]

Типа того... только не массив.
Согласно справки TTreeNodes это object and maintains the collection of nodes in the tree view.


 
TStas ©   (2005-09-24 20:26) [8]

>То есть TTreeNodes  это типа массив из TTreeNode?
Это не массив самих узлов, а указателей на них.



Страницы: 1 вся ветка

Текущий архив: 2005.10.16;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.056 c
3-1126023296
suharew
2005-09-06 20:14
2005.10.16
Блокировка записи


1-1127820657
ZeroDivide
2005-09-27 15:30
2005.10.16
О самоуничтожении объекта.


2-1127214337
I231
2005-09-20 15:05
2005.10.16
beep


2-1127201435
Tab
2005-09-20 11:30
2005.10.16
"правильное" выполнение запросов


14-1127455888
Hellion
2005-09-23 10:11
2005.10.16
Delphi 2005