![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
El caso es que delphi toma el primer formulario creado como formulario principal de la aplicación, y al cerrarse este formulario, la aplicación termina.
No hace falta rebuscar tanto... me parece que lo que procede hacer es un tercer formulario, y que sea este el formulario principal (el primero que se crea). Podrías ocultarlo al nomas iniciar la aplicación y cerrarlo por código cuando detectas que los dos formularios han sido cerrados, para que la aplicación termine. Hasta luego. ![]()
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
|
#2
|
||||
|
||||
|
Saludos
Cita:
Resulta que no siempre el 1er formulario que se crea es el principal pues tengo este codigo y como bien se ve, el 1ro en crearse es frmacceso y despues los demas. Al validar el acceso, este formulario se cierra y da paso a las demas lineas de codigo Donde si toma como principal el primer formulario que se crea con Application....... o me equivoco???:-s
__________________
Van Troi De León (Not) Guía, Code vB:=Delphi-SQL, ¿Cómo? Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto! Última edición por vtdeleon fecha: 01-12-2005 a las 22:32:12. |
|
#3
|
||||
|
||||
|
Cita:
Cita:
Cita:
He buscado un hilo donde se hablaba de esto pero no lo encuentro así que repito. Puede crearse una aplicación con dos formularios, ninguno de los cuales sea el principal y sin que la aplicación se cierre al cerrar uno de ellos. Para ello, alteren el archivo dpr de manera que se vea así:
El caso es que Application.CreateForm establece la propiedad MainForm de Application la primera vez que se usa y Application.Run es un ciclo como el de arriba que no termina sino hasta que Application.Terminated es true. El método Close de TForm (de hecho de TCustomForm) verifica sí es el MainForm y en caso afirmativo llama a Application.Terminate quien a su vez pone Application.Terminated en true, ocasionando que se termine el ciclo de Application.Run. Ahora, en el ejemplo que doy, hay entonces que dar una forma alternativa de cerrar la aplicación, alguna parte donde se llama a Application.Terminate. He hecho la prueba poniendo esto en el evento OnClose de ambos formularios:
Si ambos formularios están abiertos, Screen.FormCount será igual a 2, así que lo único que pasa es que el formulario que se cierra se destruye. Pero si ya se cerró uno, Screen.FormCount será igual a 1, de manera que se ejecutará Application.Terminate. Como mencioné (creo) en el hilo que no encuentro, desconozco qué efectos colaterales pueda tener el no ejecutar Application.Run, así que habrá que tomarlo con reserva. // Saludos Última edición por roman fecha: 01-12-2005 a las 22:56:58. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|