PDA

Ver la Versión Completa : multiples hijos en un TTreeView


bustio
23-11-2005, 09:04:10
HOla a todos:

Esta vez acudo aqui por que necesito crear un arbol donde voy a tener multiples hijos.. y no se como crearlos. O el TTreeView es un componente muy dificil de utilizar o yo soy muy bruto!!!

Veran.....
Basicamente, lo que deseo lograr es un arbol como este:

|
+ RAIZ
|
+TClase1
|
+Atributos
| |
| +Attr1
| | .....
| +Attr N
+ Metodos
| |
| +Funciones
| | |
| | +Func1
| | | .....
| | +Func N
| +Procedimientos
| |
| +Proc1
| | .....
| +Proc N
+Propiedades
|
+Prop1
|
+Prop N

Y asi para varias clases. La informacion a poner en el TTreeView la Obtengo de una multilista y no es dificil de obtener. Lo que me cuesta trabajo es hacer las inserciones correspodientes en la estructura.....

Alguien seria tan amable de indicarme alguna idea valida??

Neftali [Germán.Estévez]
23-11-2005, 09:42:03
Básicamente se trata de insertar los hijos sabiendo su correspondiente padre.
Cuando insertas un nodo con AddChild, si no recuerdo mal el parámetro que devuelve la función es el nodo insertado; Debes recogerlo y utilizarlo para insertar los hijos.

A partir de ahí es cuestión de ser ordenado. Pon en un form un TTreeview y un botón y programa ésto en el OnClick:


var
tr, tc, ta, tn, tf:TTreeNode;
begin

// comenzar
tr := tv.Items.AddChild(nil, 'RAIZ');
// Lo hijos de éste, si no tuiene, nada...
tc := tv.Items.AddChild(tr, 'TClase1');
// los hijos
ta := tv.Items.AddChild(tc, 'Atributos');
// Los hijos de éste
tv.Items.AddChild(ta, 'Attr1');
tv.Items.AddChild(ta, 'Attr2');
// funciones
tf := tv.Items.AddChild(tc, 'Funciones');
// hijos
tv.Items.AddChild(tf, 'Func1');
tv.Items.AddChild(tf, 'Func2');
...

// Lo hijos de éste, si no tuiene, nada...
tc := tv.Items.AddChild(tr, 'TClase2');
...


// Expandir
tr.Expand(True);