No MDI forms are currently Active

Ya Busque la causa y no la encuentro, tengo un formulario con grid, botones y frames y no entiendo la causa, al parecer solo funciona con ventanas que no usen esos objetos.
Si alguien me puede ayudar

1 respuesta

Respuesta
1
Con lo poco que describes tu problema es difícil acertar, pero voy a probar a ver si doy en el clavo.
El error "no MDI forms are currently Active" surge cuando defines formularios MDIchild y no tienes un MDI.
Antes de seguir te diré que si defines un MDI y los demás como MDIchild, los formularios hijos, los MDIchild, estos están limitados a la ventana del MDI, algo parecido a lo que ocurre por ejemplo con Word cuando no esta maximizado, que los documentos que tengas abiertos no se quedan ocupando todo el espacio que les corresponde, sino que no salen del borde de la ventana principal. Si no se definen MDIchild, los formularios no están limitados, por lo que puedes tener la ventana principal a un lado y uno de los formularios al otro de la pantalla.
Por defecto, cuando creas un nuevo proyecto, tienes un único formulario, este no es un MDI, es un formulario normal, si quieres un formulario MDI tienes que agregarlo en Proyecto/Agregar formulario MDI, que será el formulario principal del proyecto. Simplemente con establecer la propiedad MDIChild de los formularios a TRUE, ya son hijos.
Prueba a crear un MDI a ver si es por esto por lo que no te funciona el formulario.
Bien gracias por tu respuesta y he hecho dicha prueba, el problema es que si creo un mdiform por código, no lo activa, mientras que si lo crea delphi
En autocreate si funciona, mi meta es crear un mdiform por código y que quede activo, pero no encuentro la causa, ejemplo frmAcceso en autocreate es la pantalla de inicio y luego frmmain con application.createform no funciona, si tienes alguna orientación te lo agradecería.
Saludos y un millón de gracias.
Ante todo, perdona la tardanza en contestar, ha habido ciertos problemas que me impedían estar.
En cuanto a lo que me preguntas, yo tampoco sabía como crear de forma dinámica un MDI, pero al parecer en Delphi es así:
La propiedad FormStyle puede contener uno de cuatro valores indicando el estilo del form, que habitualmente es "fsNormal". Este estilo normal se corresponde con un form de carácter independiente, que no puede contener otras ventanas en su interior ni ser a su vez contenido en otra ventana.
Es posible crear un form que actúe como marco para utilizar múltiples forms relacionados entre sí. Al primero se le llama ventana marco o principal, cuyo estilo será "fsMDIForm", mientras que a los distintos forms que existan en su interior les llamaremos ventanas hija, siendo el estilo correspondiente "fsMDIChild".
El cuarto valor que es posible dar a FormStyle nos permite crear una ventana que no será ocultada cuando otra ventana se active, siempre estará sobre las demás, este estilo es "fsStayOnTop".
Solo necesitas comprobar si se puede editar esta propiedad en tiempo de ejecución, si es así, entonces ya esta resuelto.
Todo esto lo he sacado de un manual de Delphi. No lo he probado, porque no he conseguido encontrar en Delphi, pero espero que sea así.
No lo he probado, pero sigo en busca de dicha solución, el tip es bueno muchas gracias lo probare de ante mano muchísimas gracias, saludos y éxitos en tus labores.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas