Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   multiples hijos en un TTreeView (https://www.clubdelphi.com/foros/showthread.php?t=27517)

bustio 23-11-2005 09:04:10

multiples hijos en un TTreeView
 
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:

Código Delphi [-]
 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);


La franja horaria es GMT +2. Ahora son las 08:24:38.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi