¿Como cerrar todos los módulo de una aplicacion?
Hola amigos!!!
Tengo una aplicación que carga un menu principal y desde éste se cargan los demás módulos del sistema mediante la sentencia WinExec, asi: por ejemplo WinExec('C:\sistema\nomina.exe', 1);, ejecuta a nomina. Lo que quiero es que cuando cierre el menu principal tambien se cierren los módulos que esten abiertos. Gracias desde ya... ElCherchu.... |
Pues me parece que tendrás que cambiar el WinExec por ShellExecute (un poco más complicado de usar) que devuelve un handle a la aplicación lanzada.
Te guardas el Handle en algún sitio y luego haces un PostMessage(HandleDeLaAplicacion, WM_CLOSE, 0, 0) o algo así. (Vamos, le mandas un mensaje de cierre). Lo que no se es que pasará si la aplicación ya se cerró... |
No sé si es la manera más óptima pero así lo tengo yo:
a:= 0 ; a:= FindWindow(nil,'Polizas') ; if a<>0 then begin ShowMessage('Debe cerrar primero el módulo de Pólizas') ; SendMessage(a,WM_CLOSE,0,0) ; end ; Debes tener presente que si, en este caso Pólizas, tiene una Dialog por el estilo de "Seguro quiere Salir? S/N" Se va a mostrar.... Saludos, |
Creo que ya te han contestado tu pregunta, pero igualmente te recomiendo que leas este link, donde se propone una forma mas "elegante" y práctica de modularizar aplicaciones.
http://www.clubdelphi.com/foros/show...ht=modularizar |
La franja horaria es GMT +2. Ahora son las 11:34:58. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi