![]() |
Cargar tabla Access en un TListView
Como se podría hacer para cargar una tabla de Access de tres campos (entero largo, char(120), doble) en un TLisView con la mayor rapidez posible.
Yo lo hacía registro por registro pero el listview cambia al hacer click y ralentiza un poco. Por lo menos, ¿cómo puedo hacer que no se vea nada hasta que esten realmente cargados?. Gracias por vuestro tiempo. Hasta otra. |
Cita:
Código:
ListView.Items.BeginUpdate; Sin embargo esto no quiere decir que no se pueda usar el listview. Lo que tienes que hacer es ponerlo en modo virtual. Un listview virtual carga los datos conforme los va necesitando, esto es, conforme el usuario se desplaza por los items de manera que la visualización de los datos es inmediata. De hecho este modo virtual es lo que utiliza un DBGrid a final de cuentas. Hice una pequeña prueba abriendo una tabla de Access con 74000 registros y el despliegue comienza en 2 segundos pero en realidad es el tiempo que tarde la conexión ADO en abrir. Tanto el listview como el dbgrid que usé en la prueba desplegaron los datos al mismo tiempo. Una vez abierta la conexión el despliegue y desplazamiento por el listview son inmediatos. Para usar el listview en modo virtual tienes que poner en true su propiedad OwnerData e indicarle cuántos items va a tener (o sea, el número de registros en la tabla). Los datos se los proporcionas en el evento OnData que pasa un parámetro Item que debes llenar según el registro que le toque (que será el marcado por la propiedad Index de Item): Código:
procedure TForm1.AbrirTabla; // Saludos |
Gracias, me ha ayudado mucho
|
La franja horaria es GMT +2. Ahora son las 18:31:20. |
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