¿Quien es mi Form Padre?
Hola amigos de la Comunidad:
Tengo un formulario principal que es normal no MDI. En este formulario tengo un menú y cuando llamo a alguna opción de éste, quiero abrir una ventana MDI con sus respectivas hijas Esto lo hago sin problemas, pero cuando llamo a las hijas de este MDI, me da el error de 'No MDI Form are Currently active'. Mi pregunta es: ¿Como le especifico al formulario hijo que se abra en un MDI específico?, algo así como: 'Tu padre es este...' Desde ya, muchas gracias |
Pues si la cosa esta como dices deberia funcionarte correctamente, de todas formas ¿Te funciona asi al crear el formulario en ejecución?
|
¿Quen es mi Padre?
Asi es, mira, en el Menú principal tengo:
'Padre' es MDI y se crea perfectamente y dentro de éste:
Y me manda el error de 'No MDI are currently active' ¿Estoy haciendo algo mal? |
Hola Gabrio,
Todos los formularios tienen un array que almacena los Formularios hijos que pueda tener: MainForm.MDIChildCount Puedes recorrerlo asi: Código:
Quiero aclararte que en el codigo de ejemplo que pones el parametro que se pasa en el método create, no es precisamente el padre del objeto. Código:
Hijo := THijo.Create(Padre); La moyoria de lso objetos tienen una propiedad llamada Parent (este si es el padre)... Lo normal sería que pudieras hacer esto: Código:
FormHijo.parent:=FormPadre Por Otro lado una aplicación solo puede tener un Formulario tipo MDI Y al crear un Formulario tipo MDIChild, el compilador lo asigna automáticamente al unico MDI que debe haber... No tengo un Delphi a la mano para reproducir tu error, pero deberia funcionarte, a menos que al crearse el formulario no lo este haciendo como tipo MDI, o que exista una restricción adicional en Delphi que Obligue a que el MDI sea siempre el Form Principal... Entiendo que tu Form MDI no es el principal.... Bueno, son solo ideas, revisa y nos cuentas... |
¿Quien es mi padre?
Ok, desde el Padre, hago lo siguiente:
Funciona, pero el efecto visible no es lo mejor, esto debido a que cuando el formulario se crea, se muestra al centro, luego, al cambiar el Parent, se visualiza dentro del Padre, dando un efecto como de aparición - desaparición. Intenté esto:
Pero al cerrar el Formulario Principal, lanza un error que dice más o menos: 'El Identificador de la Ventana no es válido'. Y estoy casi seguro que esto es porque no se libera de memoria al hijo desde el padre. ¿Otra Idea? Gracias por tu excelente explicación y consejos gatosoft |
La franja horaria es GMT +2. Ahora son las 09:53:35. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi