FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Fichas compartidas entre varias opciones
Hola a todos!
Trabajo con Delphi 6, Interbase 6 e InterbaseExpress. Tengo el siguiente problema: Tengo un Datamodule y 3 ventanas que son de uso común. En la definición de la clase del datamodule tengo miembros public que son variables de totales, que se van leyendo y actualizando desde las 3 ventanas mencionadas. El problema es que desde varias opciones del sistema puedo usar este datamodule y las 3 ventanas. Estas varias opciones se pueden abrir simultáneamente en el mismo puesto de trabajo, por lo que necesito crear distintas instancias de las fichas de uso común, y además necesito pasar datos entre ellas (la referencia al Datamodule). Datamodule: se crea desde la opción en cuestión, antes de crear las 3 ventanas. Inicializa sus miembros en 0 (cero) Ventana 1: es llamada y creada desde la opción en cuestión, hace referencia a los miembros del datamodule Ventana 2: es llamada y creada desde ventana 1, hace referencia y actualiza los miembros del datamodule Ventana 3: es llamada y creada desde ventana 1, hace referencia y actualiza los miembros del datamodule No se como hacer para pasar parámetros entre las ventanas. Estuve leyendo sobre los constructores y en el manual de Delphi 4 leí que se puede crear un contructor con nombre distinto a Create donde le puedo pasar la cantidad de parámetros que desee, pero no logré hacerlo funcionar. También leí sobre constructores y referencias a clases en el help de Delphi 6, pero tampoco logré que funcionara. Si alguien puede ayudarme o darme alguna otra sugerencia de como hacer algo similar se le agradeceré mucho. Saludos. Marina |
#2
|
||||
|
||||
Usando constructores puedes hacerlo así:
Código:
TForm1 = class(TForm) public constructor CreateEx(AOwner: TComponent; DataModule: TDataModule); end; constructor TForm1.CreateEx(AOwner: TComponent; DataModule: TDataModule); begin Create(AOwner); { Código para usar la referencia al datamodule } end; Código:
TForm1 = class(TForm) public DataModule: TDataModule; end; Código:
var Form: TForm1; begin Form := TForm1.Create(..); Form.DataModule := DataModule; Form.ShowModal; Form.Free; end; |
#3
|
|||
|
|||
En caso de usar el Constructor como me indicás, como llamo la creación de la ventana, porque eso es lo que yo intenté hacer y no logré que funcionara
Marina |
#4
|
||||
|
||||
Cita:
Código:
var Form: TForm1; begin Form := TForm1.CreateEx(.., DataModule); end; Create(nil); // Saludos |
|
|
|