Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Responder a enventos (https://www.clubdelphi.com/foros/showthread.php?t=530)

craven 17-05-2003 13:19:58

Responder a enventos
 
Hola amigos. Tengo una preguntilla que haceros, a ver si me podeis ayudar. En mi proyecto MDI tengo la ventana padre y una ventana hija que creo en tiempo de ejecución. En algun momento de la ejecución, la ventana hija puede realizar una determinada acción y lanza un evento tras ella... ¿Puede la ventana padre responder a dicho evento cuando se produzca? ¿Cómo? Gracias de antemano. Un saludo.

roman 17-05-2003 17:33:50

Se me ocurre que lo puedes hacer agregando un evento a la forma Hija:

Código:

type
  TFormaHija = class(TForm)
  private
    FOnMiEvento: TNotifyEvent;

  public
    property OnMiEvento: TNotifyEvent read FOnMiEvento write FOnMiEvento;
  end;

Cuando la hija decida mandar el evento lo hará así:

Código:

if Assigned(FOnMiEvento) then
  FOnMiEvento(Self);

La forma padre debe crear un método para recibir el evento:

Código:

type
  TFormaPadre = class(TForm)
  private
    procedure FormaHijaMiEvento(Sender: TObject);
  end;

Y asignárselo a la propiedad OnMiEvento de la forma hija:

Código:

FormaHija.OnMiEvento := FormaHijaMiEvento;
Debes tener cuidado con lo siguiente:

No puedes hacer esta asignación sino hasta después de que se cree la forma hija. Es decir, si tratas de hacer esta asignación en el evento OnCreate de la forma padre y la forma hija se crea automáticamente entonces te lanzará un error de violación de acceso.

Si utilizas varias instancias de la forma hija deberás asignar el procedimiento FormaHijaMiEvento a todas ellas.

// Saludos

craven 17-05-2003 20:12:41

Hola Roman. Muchas gracias, funciona a la perfección. Un saludo.


La franja horaria es GMT +2. Ahora son las 13:50:16.

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