Ver Mensaje Individual
  #2  
Antiguo 23-10-2003
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Posteado originalmente por Carlos Claveria
Bueno esta es algo complicadilla. En una lista dinámica tengo un record del tipo:

a: integer;
b: string[20];
c: string[20];

Mediante las fuciones propias de la clase, inserto, borro, etc. Ahora el tema: ¿Podría modificar un dbgrid para que me mostrará el contenido de la lista como si de una tabla se tratara?

¿Se puede crear un manejador para que la lista pueda vincularse a un DataSource?


¿Existe un componente de esas características?. Un stringgrid no me sirve pues tengo hacer un tratamiento dinámico de los datos.
Desconozco si existe una componente grid con tales características aunque podrías intentar usar un ListView en modo virtual. Este tipo de listview (OwnerData = true) se alimenta dinámicamente de una forma similar a como internamente se comporta un dbgrid. En un principio lo único que le indicas al listview es la cantidad de items que hay. Con este dato y conforme el usuario se desplaza por la lista el listview sabe qué ítemes deben mostrarse (es decir, sabe qué número de ítem debe mostrar) y lo pide en el evento OnData. En este evento tú determinas el contenido del ítem basado en el número que toca.

Otra manera de atacar el problema es usando DataSets personalizados que, dependiendo de tus necesidades, puede ser lo más adecuado ya que se trata de ver a tu lista dinámica como un dataset que puede enlazarse con datasources y por tanto con cualquier control de edicion "db aware".

Sin embargo, mienras el método del listview virtual es más sencillo el del dataset personalizado es bastante más difícil sobre todo porque existe muy poca documentación acerca de cómo implementarlos.

No obstante, sí dispones de tiempo puedes leerte este artículo de Gerald Nunn que explica en detalle cómo crear un dataset personalizado. Como dije, no se trata de algo sencillito pero creo que vale la pena ya que se obtiene una herramienta que puede ser muy útil en muchas circunstancias. De hecho Nunn comienza creando un dataset genérico (la parte fuerte de la lectura) apartir del cual es más sencillo crear nuevos. Como ejemplo él construye uno para manejar correo de Outlook como si fuera un dataset y pudes consruir para muchas otras cosas como por ejemplo, ver los archivos de tu disco duro como un dataset o, desde luego, listas dinámicas.

// Saludos
Responder Con Cita