![]() |
Abrir MDIChild desde otro
Buenas gente del foro :D
Estoy realizado mi primer proyecto MDI, y venia bien hasta que me encontre con este problema. Necesito ejecutar una ventana MDIChild desde otra, pero que la segunda no dependa de la primera sino que dependa del formulario principal. Les cuento un poco más para que me entiendan. Los formualrios MDIChild se crean a partir de un formulario base donde tienen todas las propiedades, además tienen un ID interno, y cada vez que creo uno le asigno un ID ques el que le corresponde en un vector del tipo Boolean para saber si está creado o no, esto es para que los formularios se creen solamente una vez y si están creados no lo haga de nuevo sino que lo muestre. hasta ahí vamos bien, porque a cada formulario lo creo desde el formulario principal, el problema surge cuando necesito crear un formulario MDIChild desde otro MDIChild y que dependa del formulario principal, ya que cuando cierro el primer fomulario también lo hace el segundo. Espero que me puedan entender y ayudar Saludos :D |
Hola totote, seguramente cuando creas el formulario lo haces de esta forma:
donde con Self le estas indicando que su dueño sera el formulario del cual lo estas llamando es por eso que al cerrar ese formulario también se cierra (libera) el otro. En vez de Self puedes utilizar Application.
Saluditos |
Cita:
|
Hola Caro y Neftali, primero gracias por contestar.
Les cuento que buscando un poco mas justo de Parent que me imagino que hace referencia a que el dueño será el mismo que su dueño, probe con los tre (Parent, Application, Application.MainForm) y funciona con los tres, ya que estamos en tema, cual de los tres les parece mejor o mas eficiente. Saludos y nuevamente gracias por contestar :D |
Cita:
Parent: Estarás asignando el parent del formulario actual como owner del nuevo; En tu caso el parent del primer form, que dependerá de cómo lo hayas creado. Application: Asigna como owner este objeto. Application.MainForm: Asignas como owner el form principal de la aplicación. Al cerrar la aplicación y cerrar el formulario principal creo que van siempre juntos (ahora mismo no se me ocurre otra cosa a no ser que hayas hecho cosas muy raras supongo), de forma que ambas son equivalentes. El primer puede ser equivalente a los otros dos, dependiendo de cómo hayas creado el primer formulario. |
Gracias Neftali por la respuesta son cosas para tener en cuenta en el futuro
Saludos |
Cita:
Cuando el dueño es Application, una vez que finaliza la aplicación liberara el formulario que te has creado o lo que hayas creado. Cuando el dueño es Application.Main, una vez que se libere tu form principal se libera también tu formulario si es que no lo has liberado ya. Con el Parent, la verdad nunca lo habia hecho. ¿Neftali cual llegaría a ser el padre de un formulario, es Application? Saluditos |
Cita:
He corregido en rojo los cambios. Cita:
Perdón por el lío. :o |
Cita:
Saluditos |
Entonces creo que lo haré con Application.Main.
Gracias por la ayuda :D Saludos |
La franja horaria es GMT +2. Ahora son las 21:41:47. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi