Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-10-2003
Carlos Claveria Carlos Claveria is offline
Registrado
 
Registrado: oct 2003
Ubicación: Alicante (España)
Posts: 3
Poder: 0
Carlos Claveria Va por buen camino
TList y TDBGrid juntos...?

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.
Responder Con Cita
  #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
Poder: 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
  #3  
Antiguo 23-10-2003
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Cool

Si no estoy mal, las rusas tienen un TrxMemoryDataSet.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


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


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