![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
|
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.
__________________
craven |
|
#2
|
||||
|
||||
|
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;
Código:
if Assigned(FOnMiEvento) then FOnMiEvento(Self); Código:
type
TFormaPadre = class(TForm)
private
procedure FormaHijaMiEvento(Sender: TObject);
end;
Código:
FormaHija.OnMiEvento := FormaHijaMiEvento; 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 |
|
#3
|
|||
|
|||
|
Hola Roman. Muchas gracias, funciona a la perfección. Un saludo.
__________________
craven |
![]() |
|
|
|