Ver Mensaje Individual
  #3  
Antiguo 30-05-2018
bucanero bucanero is offline
Miembro
 
Registrado: nov 2013
Ubicación: Almería, España
Posts: 208
Reputación: 11
bucanero Va camino a la fama
hola ethangio

Cita:
Empezado por ethangio Ver Mensaje



Código Delphi [-]

....
procedure TForm2.FormActivate(Sender: TObject);
begin
  Form3.ShowModal; // Desde aqui NO funciona cerrar desde Form3
end;
Realmente si que funciona, lo que ocurre es que al cerrar el Form3 el form2 recupera nuevamente el foco y te vuelve a ejecutar el evento FormActivate, volviendo a lanzar otra vez el Form3, por lo que entras en bucle. Si deseas ejecutar el form3 al abrir el form2 usa el evento OnShow, que solo lo realiza una vez


En cuanto a tu código, si realmente en el botón del form3 quieres cerrar los dos formularios y para evitar vinculos cruzados de unidades yo lo pondría así:
Unit2
Código Delphi [-]
procedure TForm2.Button1Click(Sender: TObject);
begin
  //muestra el formulario 3
  Form3.showModal;
  // cierra el formulario 2
  Close;
end;

Unit3
Código Delphi [-]
procedure TForm3.Button1Click(Sender: TObject);
begin
  // cierra el formulario 3 
  Close;
end;
De esta forma cada formulario controla su propio cierre, sin que otro formulario intervenga.


Saludos!!
Responder Con Cita