Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   ¿Como saber si un TreeView se encuentra en una hoja? (https://www.clubdelphi.com/foros/showthread.php?t=2276)

judoboy 16-07-2003 18:23:00

¿Como saber si un TreeView se encuentra en una hoja?
 
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

Cita:

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:
Código:

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


La franja horaria es GMT +2. Ahora son las 00:55:51.

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