Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Cierre de Formularios (https://www.clubdelphi.com/foros/showthread.php?t=54474)

Jorge Rojas M. 20-03-2008 02:04:17

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.

AzidRain 20-03-2008 02:20:16

Este tópico e Sarko Gojic te puede servir mucho, explica como hacer precisamente lo que queires mediante métodos de clase.

Caro 20-03-2008 13:43:23

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

Lepe 20-03-2008 18:07:51

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.

Jorge Rojas M. 25-03-2008 01:46:04

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