Cita:
|
Empezado por bbjb
Tengo una aplicación con un formulario fsMDIForm, que al pulsar una opción de menu genera un formulario fsMDIChild a través del siguiente código
Código Delphi [-]If Fchild = NIl Then
Begin
Application.CreateForm(TFdevol_cobros,FChild);
FChild.FreeNotification(Self);
FChild.Show;
FChild.Free;
End;
|
Si lo crea, pero lo destruye inmediatamente. Recuerda que si el formulario no es modal, el hilo de ejecución no se detiene en el show. Reemplaza todo tu código por:
Código Delphi
[-]If Fchild = nil Then
begin
Application.CreateForm(TFdevol_cobros,FChild);
end;
Cita:
|
Empezado por bbjb
Pués no me crea el formulario auxiliar, sólo lo hace si previamente a la linea Application.Create... coloco esta otra:
Fchild := TFdevol_cobros.Create(Self);
|
En este caso te queda un form porque estas creando dos instancias de la clase y liberando solo una.
Cita:
|
Empezado por bbjb
Algo también curioso es que cuando me muestra el formulario hijo, lo hace con unas dimensiones distintas a las establecidas en tiempo de diseño, algo extraño verdad?
|
No, no es extraño es así. Los MDIChild tiene un default size, que es el tamaño que ves cada vez que se crea uno, si queres que tu TForm no adopte ese tamaño y mantenga el de diseño, puedes cambiar el valor de la propiedad Position, por ejemplo ponerlo en poDefaultPosOnly para que mantenga el tamaño de diseño pero no la posición.
Saludos!