Me he encotrado un ejemplo muy sencillo y claro del Modelo-Vista-Controlador en java (Enlace) y lo estoy pasando a Gambas3.
En principio no he tenido ninguna difilcutad en pasarlo, pero me he "tropezado" con un problema, os explico.
-La clase "controlador", tiene entre sus propiedades los objetos clase formularios "miVentanaPrincipal", "miVentanaRegistro",y "miVentanaBuscar".
El problema se me plantea cuando cierro (usando me.close()) una de esas ventanas, ya que se "borra" el objeto, y cuando intento volver a abrir con "controlador.miVentanaRegistro.show()", me dice que el objeto es nulo. Por lo tanto entiendo que cuando cierro la ventana (le doy a la X del borde de la ventana, o uso me.close() ), se borra el objeto "miVentanaRegistro".
Intentando solucionar este problema (que no se borre el objeto), y para evitarlo, se me ha ocurrido "ocultar" (usando la propiedad visible del formulario) en vez de usar me.close(). Funciona perfectamente, pero si le doy a la X del borde de la ventana, se vuelve a producir el fallo (Error: objeto NULL, o algo parecido pone el Ide de gambas) cuando lo intente mostrar de nuevo.
Para evitar esto, se me ocurre quitar el borde del formulario, para que no aparezcan los botones, y asi el usuario solo podrá salir del formulario de la manera que no me de problemas ( cambiando la propiedad visible del formulario).
Me parece una solucion "chapucilla", ¿puede ver otra solucion? ¿es posible cambiar la forma de actual del evento _close cuando se activa pulsando la X del borde formulario?
Saludos
Nota:
Lo que estoy intentando hacerlo de la forma más parecida (sino casi "igual") a como se hace en el ejemplo de java.
En java usa el evento:
this.dispose();
que por lo que he leido es similar a me.close()
Nota2:
Java tambien existe el evento this.close(), pero este se parece mas a ocultar el formulario como lo haria me.visible=false en Gambas3 (por lo que he leido)