Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Evento OnActivate no responde (https://www.clubdelphi.com/foros/showthread.php?t=71645)

Hamizura 31-12-2010 08:52:00

Evento OnActivate no responde
 
Hola a todos.

Aprovecho a saludarlos en mi primera consulta como miembro, (aunque no como visitante).

Tengo 3 forms: Form1(MDIForm), Form2(MDIChild) y Form3(Normal).

En Form1:
Código Delphi [-]
...
interface

uses Unit2;

procedure TForm1.Button1Click(Sender: TObject);
begin
  with TForm2.Create(nil) do Show;
end;

En Form2:
Código Delphi [-]
...
interface

uses Unit3;

procedure TForm2.Button1Click(Sender: TObject);
begin
  with TForm3.Create(nil) do ShowModal; 
end;

procedure TForm2.FormActivate(Sender: TObject);
begin
  ShowMessage('OnActivate');
end;

procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action:= caFree;
end;

Mi problema es el siguiente: Si muestro a Form3 con ShowModal, al cerrarse este y volver a Form2,
no ejecuta el evento OnActivate de Form2. Pero si lo muestro con Show se dispara correctamente.

¿ Alguien sabe si se puede cambiar ese comportamiento ?

Saludos y muchas gracias.

Neftali [Germán.Estévez] 31-12-2010 12:20:23

Una opción es que "ejecutes" de forma manual el OnActivate después justo de hacer el ShowModal.

Código Delphi [-]
FormActivate(nil);

La otra opción es crear un evento en el form1 que "salte" cuando se cierre el form2. Esta un poco más elaborada.

Hamizura 31-12-2010 18:51:24

Muchas gracias Neftali.

Usé la segunda opción que sugeriste y funciona ok.

Saludos.


La franja horaria es GMT +2. Ahora son las 01:56:34.

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