Главная страница
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.049 c
1-1127585260
Fostr
2005-09-24 22:07
2005.10.16
Преобразование картинок


2-1126443994
Серёга
2005-09-11 17:06
2005.10.16
Сохранить в файл(Pascal)


14-1127452073
DelphiN!
2005-09-23 09:07
2005.10.16
Разграничение сетевого канала по приоритетности


11-1108497834
VNavigator
2005-02-15 23:03
2005.10.16
Cursor


3-1125772095
Eagle Owl
2005-09-03 22:28
2005.10.16
Подключение к MySQL при помощи ADO + MyODBC