PDA

Ver la Versión Completa : Problema con Ventasnas / Formas DMI


Alexander
06-05-2005, 19:01:57
Hola foro.Tengo una aplicación donde quiero implementar ventanas MDICHild pero no me funciona.Tengo una Forma normal, a la que le cambio su FormStyle a fsMDIForm. Tengo otra forma a la que le cambio su FormStyle a fsMDIChild.
Desde mi primera forma llamo a la segunda de las siguientes maneras:

if FrmVer = nil then
begin application.CreateForm(TFrmVer,FrmVer);
FrmVer.Show;
end;


Application.CreateForm(TFrmVer, FrmVer);
with FrmVer do Begin
ShowModal;
Free;
End;


try
FrmVer := TFrmVer.Create( Self );
FrmVer.Show;
except
end;


El problema es que me dice que no se puede crear la ventana por que no hay ventanas MDI activas.

Que puedo hacer?

Muchas gracias por sus consultas.

Alexander

dec
06-05-2005, 20:37:57
Hola,

¿Es posible que estés utilizando el evento OnCreate del formulario "padre"? Creo que el problema está en que cuando tratas de mostrar el formulario "hijo" dentro del "padre" este último no se ha creado todavía, o, de algún modo, no está disponible para acoger dicho formulario "hijo".

Prueba con el evento OnShow del formulario "padre", o, de otra forma en la que sea seguro que dicho formulario "padre" se haya creado, como pueda ser desde un botón, un "item" de algún menú, etc.

Alexander
06-05-2005, 22:09:56
Ok. La creación de forma MDI la estoy haciendo desde la forma padre, en este sentido ya esta creado el padre.

En el momento que se ejecuta la creación de la ventana manda el error.

Application.CreateForm(TFrmVerIngresosEmp, FrmVerIngresosEmp);

No se puede crear la forma. Actualmente no hay formas MDI activas.

Que más puedo hacer?

p.d. Muchas gracias por tu ayuda

roman
06-05-2005, 22:28:31
No estás contestando a lo que te cuestiona dec. Si TFrmVerIngresosEmp es el formulario principal y en su evento OnCreate intentas crear el formulario hijo entonces te mandará el error. Crea los formularios hijos en otra parte. Además, crearlos en el OnCreate del formulario principal no tiene sentido pues para tal caso mejor déjalos en "AutoCreate".

Por otro lado, es innecesario llamar al método Show del formulario hijo. Los formularios MDIChild no pueden esconderse, siempre están visibles, de manera que apenas lo crees se harán visibles.

// Saludos

Alexander
06-05-2005, 22:35:05
Gracias por tu aclaración. No tengo experiencia en el tema de MDI, no sabia que no necesito, el Show.
Gracias.