Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   comunicar Form y DataModule (https://www.clubdelphi.com/foros/showthread.php?t=57563)

FGarcia 19-06-2008 21:55:58

comunicar Form y DataModule
 
1 Archivos Adjunto(s)
Hola!
Aqui con una duda existencial...!

La recomendacion para una aplicacion de BD es que un Form puede referenciar a un DataModule; sin embargo el DataModule no debe referenciar al Form.

En una aplicacion en el form se tienen varios editbox el contenido de ellos se guarda en la bd (post) ¿como hacer que el form se entere que el post fue exitoso? Si uso el evento AfterPost del Dataset tendria que referenciar el datamodule al form, lo cual NO DEBE hacerse.....:rolleyes:

Agradesco sus sugerencias, opiniones y comentarios.

coso 19-06-2008 22:55:44

pues no sabia yo de esta recomendacion. Uso multiples referencias a otras forms del proyecto en funciones generales del datamodule (la mayoria de las veces, eso si, pasandolas como argumento de las funciones o bien estableciendo anteriormente variables generales). Creo que la mejor manera, por eso, es establecer relaciones en el datamodule con procedimientos y variables de otras forms... por ejemplo, para cambiar un label de cierta form
si se produce un error en post y ejecutar una funcion de esa form.

Código Delphi [-]
public
    ejecutar_si_error_externa : procedure of object;
    variable_externa : Pstring;
    ...
procedure Tdatamodule.Table1postError(...)
begin
        variable_externa^ := mensaje_de_error;
        ejecutar_si_error_externa;
end;
...

Código Delphi [-]
procedure TForm1.Ejecutar_si_error;
begin 
   ... 
end;
 
procedure TForm1.Hacer_post;
begin
      datamodule.Ejecutar_si_error_externa :=  Ejecutar_si_error
      datamodule.variable_externa := PString(Label1.Caption);
      ...
      datamodule.Table1.Post;
end;

asi se hacen referencia a otras forms desde el datamodule, estando el codigo de cada cosa (mas o menos) en su sitio.

movorack 19-06-2008 23:04:36

primera vez que veo esa recomendación...

En los datamodules referencio tambien a los forms (Cuando los necesito)...

si coso y yo estamos equivocados pls... alguien nos explique porque y como salir del error.

coso 19-06-2008 23:13:32

bueno, no es un error, es una recomendacion...mas limpio y entendible si que queda

FGarcia 19-06-2008 23:56:06

Bueno el asunto viene a colacion por unos articulos que descargue hace un tiempo de Danysoft: "Aplicaciones de Bases de datos con Delphi" en el que se hace la recomendacion. Como siempre estaban en el rincon, me puse a leerlos y encontre esa recomendacion; tambien en unos post de hace unas semanas Al Gonzalez hace referencia a eso de "mantener el modulo de datos libre de informacion del form" (palabras mas, palabras menos, mientras no se desate una guerra) asi que jugando me puse a tratar de hacer algo asi y ¡oh, sorpresa! ¡se me trabaron las neuronas!:D:D
Como siempre pues busco mas informacion y sobre todo opiniones a favor y en contra.

Como siempre los ejemplos de los libros y demas es la misma "para hacer mas sencilla la explicacion solo tomaremos un form y ahi colocaremos los componentes de acceso a datos y los de conexion con la BD ":(


La franja horaria es GMT +2. Ahora son las 15:38:35.

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