![]() |
Cierre de Formularios
Hola
Compañeros, tengo una aplicación que se conecta a una base de datos por lo tanto en principio solicita el usuario y la clave para poder seguir adelante, luego de ese primer formulario cuando el usuario hace clic en ok yo verifico la conexión a SQL mediante un connectiostring, y si la conexión es exitosa muestro el siguiente formulario y cierro la pantalla original donde se solicitaron los datos del usuario sin embargo al cerrar el formulario lo hago mediante un evento Free ejemplo form1.free y luego muestro el formulario form2.show y funciona, pero cuando estoy ejecutanto el programa en Delphi al cerrar la aplicacaón haciendo clic sobre la equis de la ventana del form2 y no mediante la opción dentro del formulario terminar programa (el famoso Exit del menú File), el programa queda todavía corriendo, y ya no hay nada visualmente. Que puedo hacer para evitar esto pues al correr la aplicación desde el .exe ocurre lo mismo sólo que esta vez no tengo delphi para detener la aplicación y esta queda ejecutándose en memoria así que tengo que ir al administrador de tareas para eliminarlo. |
Este tópico e Sarko Gojic te puede servir mucho, explica como hacer precisamente lo que queires mediante métodos de clase.
|
Hola Jorge Rojas M., supongo que tu Main form es el formulario donde esta el usuario y la clave, digamos que se llame FormLogin, en vez de liberar este formulario cuando presiona en OK porque no lo escondes (con hide o visible) ya que es tu form principal, y en el evento OnClose del siguiente formulario digamos que se llame FPrincipal no cierras este formulario sino el Main Form que seria FormLogin (FormLogin.Close).
Saluditos |
Desde mi punto de vista, la solución más fácil es cambiar en delphi el From Principal (en Projects --> Options).
Un formulario de login no debe ser el principal, ya que su vida es demasiada corta (crear, verificar password y liberar). El Form2 parece tener todas las papeletas de ser la ventana principal de tu aplicación y por ende, el Main Form de delphi. El truco, es que Delphi identifica cual formulario se crea primero y lo asigna como MainForm de la aplicación. Cuando lo cierras, Delphi automáticamente termina la aplicación al completo. Ahora mismo tendrás el de Login como MainForm, por eso al cerrar el Form2 no se cierra la aplicación al completo. El link de AzidRain, es una buena forma de crear y destruir la ventana de login. |
Muchísimas gracias a todos por sus sugerencias...
|
La franja horaria es GMT +2. Ahora son las 09:31:03. |
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