Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-01-2009
falete24 falete24 is offline
Registrado
 
Registrado: mar 2007
Posts: 4
Poder: 0
falete24 Va por buen camino
Arrastre TreeNode

Ante todo buenos días.

Tengo un ligero problema con la clase TTreeNode. Os expongo mi caso.
Estoy en el desarrollo de una aplicación que en una de sus pantallas usa el componente Treeview para mostrar una estructura en forma de árbol.

El tema es que las especificaciones de la pantalla me obligan a poder arrastrar un TreeNode fuera del TreeView hacia una "zona de arrastre (TPanel)" y que en ella se cree un icono y el TreeNode en cuestión desaparezca del TreeView.

Tengo mi propia clase TIcono a la que le agregue una propiedad en forma de TTreeNode. Desarrolle el arrastre y todo perfecto el problema viene que cuando apunto el TreeNode del Treeview al TreeNode del TIcono no tengo forma de desasociar el TreeNode del TreeView sin eliminarlo, ya que estaría liberando la zona de memoria y la propiedad TreeNode del TIcono quedaría también limpia.

Espero que se me entienda después de la parrafada y si alguien tiene alguna idea será muy bien recibida.

Muchas gracias a todos de ante mano.
Responder Con Cita
  #2  
Antiguo 30-01-2009
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.293
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por falete24 Ver Mensaje
...el problema viene que cuando apunto el TreeNode del Treeview al TreeNode del TIcono no tengo forma de desasociar el TreeNode del TreeView sin eliminarlo, ya que estaría liberando la zona de memoria y la propiedad TreeNode del TIcono quedaría también limpia.
Creo que deberías replicar la estructura que arrastras en el TIcono, en lugar de asignar directamentete la del TreeView. Es decir, crear un Treenode nuevo y copiarle todas las propiedades; Así luego podrás liberar el del Treeview.

No se me ocurre otra forma de solucionarlo.

Un saludo.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 30-01-2009
falete24 falete24 is offline
Registrado
 
Registrado: mar 2007
Posts: 4
Poder: 0
falete24 Va por buen camino
Cita:
Empezado por Neftali Ver Mensaje
Creo que deberías replicar la estructura que arrastras en el TIcono,....
Gracias por una respuesta tan rápida Neftali. Entiendo la solución que me das, pero lo que pasa es que lo he intentado y no he sido capaz de llevarlos a cabo. El tema es que lo TreeNode destino es una property publica RW de la clase TIcono y no tengo ni idea de como replicar la estructura del Origen.

He buscado hasta en la biblioteca del infierno y nada.

La verdad es que estoy algo perdido.
Responder Con Cita
  #4  
Antiguo 30-01-2009
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.293
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Bueno, sin ver código es difícil, pero supongo que en el Create de TIcono creas el objeto TTreeNode que tengas definido, en el Destroy de TIcono lo liberas.
Y para asignar los valores de uno a otro, simplemente asigna el valor de las propiedades que te interesen (no hacen falta todas).
Supongo que el Text, ImageIndex,... y alguna más.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #5  
Antiguo 30-01-2009
falete24 falete24 is offline
Registrado
 
Registrado: mar 2007
Posts: 4
Poder: 0
falete24 Va por buen camino
Ok ahora te pillo mejor.

Perfecto, pero hay un problema añadido que se me olvidó comentar y es que de ese nodo pueden colgar más nodos hijos y aquí es cuando se me jode el invento.
Responder Con Cita
  #6  
Antiguo 30-01-2009
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.293
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por falete24 Ver Mensaje
Perfecto, pero hay un problema añadido que se me olvidó comentar y es que de ese nodo pueden colgar más nodos hijos y aquí es cuando se me jode el invento.
No se jode el invento, se trata de hacer un procedimiento recursivo (o iterativo, como más rábia te de) que vaya creando el resto de "hijos" que tiene ese nodo dentro.
Un poco más complejo, pero es lo que hay...
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problemas con TReeNode jmlifi Varios 4 10-08-2005 13:20:16


La franja horaria es GMT +2. Ahora son las 04:10:50.


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
Copyright 1996-2007 Club Delphi