Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Problema con DataModule (https://www.clubdelphi.com/foros/showthread.php?t=48944)

cartmanrules 08-10-2007 20:57:41

Problema con DataModule
 
Hola!

Tengo una aplicación a medias para llevar un control de stock y gestión de presupuestos, y tengo el siguiente problema: He metido todos los componentes de acceso a datos (BDE) en un DataModule, que cargo antes que los demás formularios para comprobar que las tablas estén bien etc. Una vez hecho esto, se carga la pantalla principal, en la que se ve un DBGrid con un TPicture (imgArticulo) al lado en el que mostrar la imagen (si tiene) de los artículos a medida que recorremos el grid. He pensado que para mostrar la imagen puedo utilizar el evento OnDataChange del DataSource de los artículos, pero como éste está en el DataModule, no puedo actualizar el componente de la imagen imgArticulo ya que el formulario principal lo cargo después... ¿Se os ocurre qué podría hacer? He pensado mover todos los componentes de datos al formulario principal, pero antes de hacerlo me gustaría saber alternativas...

Espero haberme explicado, gracias de antemano!

poliburro 08-10-2007 22:18:49

prueba en el evento OnAfterScroll


para que cargue la imagén una vez que ha terminado de posicionarse en la fila

brakaman 09-10-2007 09:52:19

Cita:

Empezado por cartmanrules (Mensaje 237007)
Hola!

Tengo una aplicación a medias para llevar un control de stock y gestión de presupuestos, y tengo el siguiente problema: He metido todos los componentes de acceso a datos (BDE) en un DataModule, que cargo antes que los demás formularios para comprobar que las tablas estén bien etc. Una vez hecho esto, se carga la pantalla principal, en la que se ve un DBGrid con un TPicture (imgArticulo) al lado en el que mostrar la imagen (si tiene) de los

Hola amigo:

Yo creo que el datamodule deberias crearlo por codigo en el evento Oncreate del formulario principal que esta creado de forma automatica(Auto create forms).

De esta manera no tendrias problemas de actualizacion.

Saludos.

basti 09-10-2007 10:39:49

Puedes poner el DataSource en el form en vez de en el datamodule. Si es necesario que el DataSource esté en el DataModule (ej. maestro-detalle), puedes hacer una copia en el Form.

gluglu 09-10-2007 11:11:07

Tendrías otra solución fácil y no tienes que cambiar prácticamente nada.

Dejas el evento OnDataChange en blanco en el DataModule, aunque crees el evento con el código necesario.

Cuando creas el formulario, en el evento OnActivate del Form pones
Código Delphi [-]
TuDataModule.TuDataSource.OnDataChange := TuDataModule.TuRutinaDataChange;

y en el evento OnClose del Form deberás poner :
Código Delphi [-]
TuDataModule.TuDataSource.OnDataChange := nil;

De esta manera te debería funcionar sin problemas. ;)

cartmanrules 09-10-2007 21:25:21

Solucionado
 
Gracias a todos por vuestras ideas, desde luego no todo se aprende en los libros! Al final he utilizado el consejo de gluglu, no he tenido que cambiar nada y funciona de maravilla :)


La franja horaria es GMT +2. Ahora son las 17:19:24.

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