Ver Mensaje Individual
  #3  
Antiguo 09-04-2025
oscjae oscjae is offline
Miembro
 
Registrado: may 2005
Posts: 77
Reputación: 22
oscjae Va por buen camino
Gracias por contestar, es un poco mas complicado, te pongo en situación, tengo un formulario desde el que llamo a otro, es un tema de fastreport, en ese formulario (Form2) recién creado tiene un componente frxDesigner que se utiliza para diseñar un informe, con sus eventos, SaveReport, etc... que capturo y tengo cierto código, cuando cierro ese formulario abro otro (Form3), que también tiene ese componente frxDesigner, y lo mismo que el anterior tiene sus eventos, el problema está que cuando se abre el tercer formulario esta cogiendo la instancia del componente del segundo formulario, y no pasa por los eventos del componente del propio formulario, espero estar explicándome bien, por eso necesito saber cuando se ha destruido "Form2" para poder crear "Form3"

Por cierto, el "form2" es ShowModal

Desde el "form1"....

Código Delphi [-]
procedure TForm1.CreateForm2;
begin
  Form2:=TForm2.Create;
  Form2.ShowModal;

  Form3:=TForm3.Create
  Form3.Show;
end;

Lo he solucionado con "Notifications", he creado en el Form1 ...

Código Delphi [-]
 

procedure Notification(AComponent: TComponent;  Operation: TOperation);override; 

...

procedure TForm1.Notification(AComponent: TComponent; Operation: TOperation);
begin
  if (Operation = opRemove) and (AComponent is TForm2) then
    CrearForm3;

end;

Me aseguro de que el formulario se ha eliminado y creo el "form3", y funciona, no se si habrá otra forma mas elegante, jeje
O si ves algún posible problema por utilizar ese método.

Gracias.
Responder Con Cita