Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Arrastre TreeNode (https://www.clubdelphi.com/foros/showthread.php?t=63126)

falete24 30-01-2009 09:09:22

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.

Neftali [Germán.Estévez] 30-01-2009 09:48:13

Cita:

Empezado por falete24 (Mensaje 336543)
...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.:o

Un saludo.

falete24 30-01-2009 10:06:56

Cita:

Empezado por Neftali (Mensaje 336544)
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.

Neftali [Germán.Estévez] 30-01-2009 10:53:19

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.

falete24 30-01-2009 10:57:34

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.

Neftali [Germán.Estévez] 30-01-2009 12:37:23

Cita:

Empezado por falete24 (Mensaje 336555)
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...


La franja horaria es GMT +2. Ahora son las 03:09:19.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi