FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Cómo controlar donde se ha hecho doble click en un TTreeView
Hola,
tengo un componente TTreeView llamado Arbol en el cual hay un arbol con varios nodos y éstos con subnodos. El componente Arbol tiene en el evento OnDblClick un código que lo que hace es mostrar la pantalla asociada del subnodo sobre el que se ha hecho doble click. Para saber cual es el subnodo sobre el que se ha hecho doble click utilizo la propiedad Selected de Arbol que me dice cual es. El problema está en que si selecciono un subnodo y hago doble click en otro sitio del componente TTreeView que no sea un nodo o un subnodo, me muestra la pantalla asociada al nodo seleccionado. Por ejemplo, si selecciono el subnodo Nodo1_Subnodo1 y despliego y pliego rápidamente el nodo Nodo2, se cree que he hecho un doble click y me muestra la pantalla asociada al subnodo Nodo1_Subnodo1. Lo deseable es que no me mostrara esa pantalla. Si no me he explicado bien me lo decís. Un saludo y muchas gracias de antemano |
#2
|
||||
|
||||
Hola,
Tal vez pudieras encontrar una solución, pero, a mí me parece que el diseño (siempre quise decir esto) no parece muy adecuado. Es decir, que acaso no sea buena idea utilizar el "DoubleClick" para lo que quieres hacer y te convenga buscar otro camino. Pero puedo equivocarme, claro está. Además es la primera impresión que me da, nada más. |
#3
|
|||
|
|||
Hola dec,
tras hacer distintas pruebas en el evento DoubleClick, creo que llevas razón. Habrá que buscar la solución por otro camino. Probaré otros métodos del método TTreeView o de otro componente a ver si doy con una solución. Cuando la tenga la pondré aquí. Gracias. |
#4
|
||||
|
||||
Hola JM75
Puedes usar la función GetHitTestInfoAt del TreeView y tu le indicas en que momento quieres que haga algo, cuando se hace click en el Label en el icono, hay varias opciones. Ejemplo, muestra el mensaje cuando se ha hecho click sobre las etiquetas del TreeeView.
existe también htOnItem -> En un item, su texto, o su BITMAP htOnIcon -> En un Icono ........ Revisa la ayuda esta bien explicado. Espero te sirva. Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar. |
#5
|
|||
|
|||
Hola Caro,
gracias por tu respuesta. Voy a a utilizar tu solución con otra que he encontrado que resuelve algunos casos. Cuando hago doble click sobre un subnodo, en el evento "DoubleClick" le he quitado la selección a dicho subnodo, por lo que si vuelvo a hacer doble click en otra parte del TTreeView ya no muestra ninguna pantalla al no haber ningún subnodo seleccionado. El caso en que mi solución no es útil es si primero seleccionas un subnodo y después haces doble click en otro sitio del TTreeView. Como el subnodo sigue seleccionado, se muestra la pantalla asociada. Un saludo. |
#6
|
|||
|
|||
Hola,
la solución de Caro me ha solucionado el problema. He utilizado la función "MouseDown" de Caro tal y como la ha puesto, salvo que en vez de mostrar un mensaje lo que hace es guardar en una variable booleana si se se ha pulsado sobre un label del árbol o no. Y en evento "DoubleClick" compruebo la variable boolena, y solo se ejecuta el código que ya tenía si la variable booleana es true. Gracias por las respuestas. |
#7
|
|||
|
|||
Creo que puedes ahorrarte el paso por el evento OnMouseDown y la variable booleana:
Bye |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Doble click en CxGrid | El_Perrito | Varios | 3 | 30-03-2007 21:23:18 |
Doble Click en el título de la Ventana | nemo | API de Windows | 0 | 25-07-2006 19:56:39 |
Evento Doble Click en DBgrid | enecumene | Conexión con bases de datos | 1 | 03-07-2006 07:15:42 |
Doble click en titulo de grid | rafita | Varios | 4 | 13-06-2006 10:22:04 |
Como controlar contenido de TTreeView | FunBit | OOP | 2 | 22-07-2005 10:21:53 |
|