PDA

Ver la Versión Completa : ¿Como saber si un TreeView se encuentra en una hoja?


judoboy
16-07-2003, 18:23:00
Hola tengo un treeview y quiero que me ejecute un código si hago doble click sobre un nodo que sea hoja, sino es hoja que se comporte normalmente el Treeview, es decir que me abra los hijos que dependen de él.

Gracias y un saludo.

roman
16-07-2003, 18:28:44
Node.HasChildren

// Saludos

andres1569
16-07-2003, 18:31:48
No entiendo lo que significa ser Hoja, si te refieres a un nodo sin hijos, puedes chequear la propiedad HasChildren de un TTreeNode

roman
16-07-2003, 18:39:22
Posteado originalmente por andres1569
No entiendo lo que significa ser Hoja

Significa sentirse liviano aunque también vulnerable. Significa sentirse libre volando por los aires aunque también sentirse a merced del entorno...

// Saludos

andres1569
16-07-2003, 18:49:58
La verdad es que nunca había oído esa expresión referida a un TreeView, pero mirando la analogía con el árbol, ser Hoja como final de rama, es una expresión muy acertada. Imagino que ser Fruta debe ser un nodo provechoso, es decir, cargadito de propiedades.

judoboy
17-07-2003, 10:20:41
Vaya veo que eso de la denominación de hoja ha traido cola, pues no sé yo creía que era normal utilizar esa expresión (todo me viene de utilizar los arboles binarios, pero bueno eso es otro tema).

El asunto es que, tengo un arbol formado por 4 niveles:
ArbDivision,ArbFamilia,ArbSumFamilia,ArbArticulo (son variables declaradas como TTreeNode), donde los datos los voy cogiendo en cada nivel de una consulta SQL.

Donde ArbArticulo es el nodo hoja, pues yo lo que quiero saber es si hago doble click sobre este nodo me realice un procedimiento, y si no pues que continue abriendose.

Y por ello no puedo utilizar la propiedad HasChildren. El nodo ArbArticulo, muestro un campo adicional [código] que no muestran los demás nodos, y cuando hago doble click en el treeview copio ese contenido codigo en un edit. Pues lo que hago es una comprobación si el edit esta vacio continuo abriendo el arbol, y si tiene el campo [codigo] realizo la acción.

Es una explicación por si a alguien le pasa lo que a mi.

Un saludo a todos.


P.D. Por cierto cuando os vais de vacaciones?:D

Ruben_Cu
17-07-2003, 22:49:17
Hola muchachos, dejando a un lado el tema 'hoja' y volviendo a la duda de judoboy quiero retomar la propuesta de Román.
Si utilizas algo como:

if not TreeView1.Selected.HasChildren then
begin
//llamas a tu procedimiento y otras declaraciones que desees
end;

Esto colocado, por ejemplo, en el evento OnChange del treeview te puede funcionar bien, la propiedad HasChildren del treenode devuelve verdadero cuando no es 'hoja' o 'fruta' en el caso del if negado te devolverá lo que sea 'hoja' o 'fruta'.
Espero te sirva la propuesta de Román con mi pequeña ampliación
Saludos