![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|
|
#1
|
||||
|
||||
|
Hola,
En realidad no es complicado, es cuestión de que le cogas el Hilo al asunto. Verás. A un "TTreeView" se le pueden añadir "items" por ejemplo con el método "AddChild" conque cuenta su propiedad "Items", que es de tipo "TTreeNodes" (los nodos del "TTreeView"). Esto es más o menos así:
Fíjate que el primer parámetro del método "AddChild" lo dejamos como "nil", ¿y eso porqué? Porque ese parámetro indica, precisamente, el nodo "padre" del nodo que vamos a añadir, pero, como en este caso queremos añadir un nodo "padre" que no tenga "padre" a su vez, ese parámetro vale "nil". Ahora bien, el propio método "AddChild" nos devuelve una referencia al nodo que acabamos de añadir con el mismo, esto es, el método "AddChild" devuelve un "TTreeNode" que se corresponde con el "nodo" que acabamos de añadir, en este caso "Nodo padre", pero, no nos estamos aprovechando de esta circunstancia. Habría varias formas de lograr la referencia del nodo al que queremos añadir "hijos", pero, siguiendo con el ejemplo anterior podríamos haber hecho algo como esto:
Es decir, primero recogemos una referencia del "Nodo padre" que añadimos al "TTreeView" sin que él mismo pertenezca a ningún otro nodo (parámetro "nil" como sabes). A continuación ya podemos añadir nodos "hijos" en el nodo "padre", sencillamente, pasando la referencia al propio nodo "padre" en el método "AddChild", en lugar de un valor "nil". ¿Para qué declaramos la variable "nodoHijo"? Porque "nodoPadre" está claro (para guardar en ella la referencia al nodo "padre" y poder así añadirle "hijos"), pero, ¿para qué la variable "nodoHijo"? Pues únicamente para hacer notar que, de la misma forma que añadimos nodos "hijos", podemos añadir nodos "nietos". La técnica es la misma, se guarda una referencia al nodo "hijo" y ya se le pueden añadir a su vez "hijos", que serán "nietos"... del nodo "padre":
Date cuenta de que tratamos con nodos ("TTreeNodes" y "TTreeNode") y que podríamos añadir nodos "hijos" a un determinado nodo "padre" siempre que tuviéramos acceso a su referencia "TTreeNode". Por ejemplo, a continuación añadiremos un nodo "padre" a un "TTreeView":
Ahora, puesto que el "TTreeView" cuenta al menos con un "nodo" ya podríamos hacer algo como esto, a modo de pruebas:
Es decir, cuando se pulse el botón "Button2" se comprobará si hay algún nodo seleccionado en el "TTreeView". Si no lo hay no se hace nada, pero, si hay un nodo "seleccionado" ya tenemos su "referencia" ("TTreeNode"), que podemos utilizar para añadirle nodos "hijos". En el ejemplo he utilizado una variable de tipo "TTreeNode" por claridad, pero, perfectamente, podríamos haberlo hecho de este modo, lo mismo da, en este caso, puesto podemos utilizar la propiedad "Selected", de tipo "TTreeNode", como ya sabes:
Última edición por dec fecha: 09-09-2006 a las 23:02:06. |
|
#2
|
|||
|
|||
|
Muchas Gracias con la Ayuda del TreeView esta funcionando muy bien y ahora si ya lo entiendo...
Gracias y Saludos. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Copiar un treeview a otro treeview | mierda | OOP | 0 | 26-07-2006 12:29:17 |
| TreeView | Caro | OOP | 12 | 12-10-2005 12:05:52 |
| treeview | arana | Varios | 1 | 28-10-2004 10:29:47 |
| Como utilizar el Treeview, desplegar la info del arbol binario al treeview | leo21 | Varios | 2 | 08-04-2004 22:47:30 |
| Como utilizar el Treeview, desplegar la info del arbol binario al treeview | leo21 | OOP | 1 | 08-04-2004 22:42:44 |
|