• Viernes 26 de Abril de 2024, 02:38

Autor Tema:  como evtar la acomulacion de formularios en tiempo de ejecuc  (Leído 1549 veces)

jhohancho

  • Nuevo Miembro
  • *
  • Mensajes: 1
  • Nacionalidad: co
    • Ver Perfil
como evtar la acomulacion de formularios en tiempo de ejecuc
« en: Jueves 15 de Octubre de 2009, 16:30 »
0
yo estoy trabajando en mi proyecto de grado en la media tecnica y cuando ejecuto el programa se abre l primer formulario eso  esta bien pero cuando abro el segundo,el primero continua abierto.y asi sucesivamente.


soy jhohan jose gallego gallego
mi correo es jhohansito@hotmail.com
gracias

ok... :D

Nebire

  • Miembro HIPER activo
  • ****
  • Mensajes: 670
    • Ver Perfil
Re: como evtar la acomulacion de formularios en tiempo de ejecuc
« Respuesta #1 en: Viernes 16 de Octubre de 2009, 11:28 »
0
Imagina que un proyecto es una casa... entonces en este símil imaginario, cada formulario se entendería como una habitación...

Tantas habitaciones tiene tu casa, tantos formularios tiene tu aplicación... Ahora imagina quieres pasar de una habitación a otra, al respecto decimos que hay habitaciones con puerta y habitaciones sin puerta.

Tu queja es que cuando accedes a otra habitación no se cierra la puerta... piensa, al acceder a otra habitación que haces ?... desde la habitación en la que estás, abres la puerta para acceder a la otra habitación, luego una vez dentro es tu responsabilidad cerrar o no la puerta desde esa habitación. Si se cerrara automáticamente, la queja y el remedio sería peor... cómo puede el sistema saber si tudeseas que la puerta se cierre  o no ?. No puede, luego eres tu quien si lo necesitas debe cerrar la puerta.

La habitaciones sin puerta diríamos que son formularios modales y las habitaciones con puerta son no modales (formularios asíncronos). Una habitación sin puerta debe entenderse como una estancia (alacena, almacén, armario) al que accedes haces lo que quieras y luego necesariamente tienes que regresar por donde has entrado, normalmente recoges algo y regresas... for ejemplo un msgbox, un inputbox o un commondialog para elegir colores, fuente, fichero ú opciones de impresión... formulario del progreso de una acción, formularios 'about' y en general todos los formularios de opciones, que actúan como una caja de herramientas (donde sólo tienes que elegir cosas, seleccionar detalles, etc... pero que por si mismo sólo tienen una funcionalidad específica y claramente delimitada).  Las habitaciones con puerta son habitaciones en las que entras y te quedas en ellas.

Depende de ti decir si una habitación tiene o no tiene puerta formX.show (??????) y por tanto si es síncrono o no, si es síncrono (no tiene puerta no puedes cerrarla, es como si se cerrara automáticamente sola alsalir de ella), si es síncrono, puedes cerrarla pero lo tienes que hacer tú.

Al cerrar la puerta debemos entender que cierras el formulario del que provienes y al abrirla que abres un formulario al que deseas ir desde el que estás.

Abrimos una puerta, estás en form1
formX.show
Cerramos la puerta tras entrar: ahora estás en formX, pero el código es mejor que lo pongas en form1 justo después del formX.show
unload me (ó me.hide, sólolo ocultamos)
Si el código lo pones en formX , debes saber que puerta estás cerrando, imagina que tienes 10 formularios (en esta casa imaginaria, cada habitación está comunicada con todas las demás en teoría, luego según tu proyecto, esto será verdad o no, según el diseño). si accedes desde el form3, y deseas cerrarlo desde el FormX debes saber desde que puerta has entrado, en realidad nuestra casa imaginaria sólo tiene  1 única puerta vengas de donde vengas, es más como en un hotel donde sales al pasillo te diriges a la habitación deseada y la abres, sabes que entras, pero la habitación en la que entras no sabe de donde vienes (no le consta ninguna referencia), por eso lo mejor es que desde la habitación que sales una vez salido, cierres ....  no cerrar desde la habitación en la que entras.

Hay otro caso aparte, un formulario MDI , es como el hotel entero, y particularmente actúa como el recibidor de un hotel. Esto es desde las habitaciones del hotel no puedes cerrar el hotel... desde los formularios hijos del Formulario MDI, no puedes cerrar el formulario MDI, o mejor dicho si lo haces se cierra también todos los formularios hijos... incluído él.

Si no lo acabas de entender dime donde te pierdes...

p.d.: yo no mando emails a nadie y no es buena práctica ir dejando colgado tu email al público... ¿¿¿ tu dejas copia de tu tarjeta de identidad y/o tu teléfono por toda la ciudad en tu quehacer diario ?????.
«Ma non troppo»
----> ModoVacaciones = False<----