Voy a hacer una sugerencia con respecto al ListView aunque está un poco de más ya que definitivamente el control que te sugiere Héctor es el mejor.
El problema con el ListView no es de BeginUpdtae y EndUpdate, aunque ayudan en algo. Simplemente no está hecho para grandes cantidades de datos. Y desde luego el StringGrid no sirve de nada. Muy pocas veces lo he usado para algo, es un control verdaderamente horrible.
Sin embargo el ListView maneja lo que se llama modo virtual (OwnerData = true) y en este modo es igual de rápido que el VirtualTreeView que menciona Héctor, pero sin todas las bondades de presentación que este último presenta. En modo virtual tú no llenas al ListView de datos sino que simpleente le indicas cuántos elemento hay y programas su evento OnData. El ListView, conforme el usuario se desplaza por él, genera el evento OnData indicando el índice del item que debe desplegarse y es cuando asignas valores para ese ítem.
Yo he usado esto para desplegar resultados de consultas sql con miles de registros y funciona perfectamente bien.
Pero como te digo, además de que el VirtualTreeView funciona, por construcción, en modo virtual, se acerca más a lo que deseas (combinación de TreeVirew con ListView) y te permite insertar gráficos y sobre todo una presentación que puede ser muy impresionante (basta que veas los ejemplos que trae).
// Saludos
|