PDA

Ver la Versión Completa : TCheckTreeView y nodos


walito
11-01-2008, 12:25:31
Buenas.

Tengo un problema que es un tontera pero me lleva 2 dias y no lo resuelvo.

En runtime lleno un TCheckTreeview:

+Padre1
|->Hijo1
|->Nieto1
|->Hijo2
|->Nieto1
|->Nieto2
+Padre2


nodoPadre := nodo.Add(nil, 'Padre1');
nodoHijo := nodo.AddChild(nodoPadre, 'Hijo1');
nodoNieto := nodo.AddChild(nodoHijo, 'Nieto1');

nodoHijo := nodo.AddChild(nodoPadre, 'Hijo2');
nodoNieto := nodo.AddChild(nodoHijo, 'Nieto1');
nodoNieto := nodo.AddChild(nodoHijo, 'Nieto2');


nodoPadre := nodo.Add(nil, 'Padre2');



Despues por codigo quiero checkear el Padre1->Hijo2->Nieto2.

Tengo la referencia de todos, los nodos hasta el checktreeview, pero no logro llegar al nodo padre.

Lo que estoy probando es asi:


showmessage(nodoHijo.Parent.Item[y].Text+' -> '+nodoHijo.Item[z].Text);


De esta forma llego desde atras para adelante hasta el nivel del medio osea el hijo, pero no puedo llegar al padre.

Que estoy haciendo mal?
Algun TIPs?

Gracias

jachguate
11-01-2008, 19:07:07
Despues por codigo quiero checkear el Padre1->Hijo2->Nieto2.

nodo.Items[0].Items[1].Items[1].Checked := True;

:D

Esto si no lo entendí... ¿que es?


showmessage(nodoHijo.Parent.Item[y].Text+' -> '+nodoHijo.Item[z].Text);



Hasta luego.

;)

xEsk
13-01-2008, 14:56:18
Para estos casos es mejor usar funciones recursivas (http://es.wikipedia.org/wiki/Algoritmo_recursivo).

Saludos.