Delphi - Componente TTREEVIEW

 
Vista:

Componente TTREEVIEW

Publicado por Arantxa (2 intervenciones) el 01/12/2004 18:39:20
Hola,

Estoy trabajando con el componente TTreeView(donde la información de los Nodos que voy insertando las saco de una BD; también guardo la estructura creada en la BD).

Mi problema es a la hora de repintar la información(tarda mucho tiempo), ya que mediante una sentencia SQL voy obteniendo la información de los Nodos(orden, identificador, texto,...). El procedure que realiza esta acción es recursivo(por si algún Nodo tiene descendientes).

Si hay alguién que haya manejado el componente o sepa algo, le agradecería me informará como poder agilizar las actualizaciones.

Gracias,
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Componente TTREEVIEW

Publicado por nadie (43 intervenciones) el 02/12/2004 08:15:32
Cuando he tenido que cargar información en un TreeView en el que, potencialmente, habrá muchos nodos, la técnica que utilizo para que el usuario no perciba la lentitud que tú dices es la siguiente:

1. Creo la raíz o raices del árbol con sus hijos y las dejo contraídas (Collapsed).
2. En el evento OnExpand del TreeView, creo e incluyo los nietos (hijos de sus hijos) del nodo que se está expandiendo (si no han sido creados ya).

La única complicación de esta técnica es determinar si es necesario obtener los nietos del nodo o ya han sido obtenidos.

La primera solución, que es la fácil y que no me gusta sería utilizar la propiedad Tag del TreeNode asignándole un valor que indique si ya hemos calculado sus nietos o no (ej: Tag:=1 para nodos por los que ya hemos pasado y dejamos Tag:=0 para los que tenemos pendientes).

La segunda, es añadir información adicionales al nodo a través de la propiedad Data, haciendo que apunte a un registro (record) en el que suelo guardar datos de interés del nodo.

Espero que esto te sirva para algo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Componente TTREEVIEW

Publicado por Arantxa (2 intervenciones) el 02/12/2004 10:49:54
Pues a quién corresponda gracias por la explicación e intentaré probarlo/estudiarlo para la aplicación que estoy realizando.

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar