Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Cerrar la aplicacion (https://www.clubdelphi.com/foros/showthread.php?t=16567)

llonigualker 02-12-2004 10:14:52

Cerrar la aplicacion
 
Me pasa algo muy curioso y no consigo ver porque ocurre.

Resulta que al cerrar la aplicacion, en la barra de abajo de windows se queda el botoncito de la aplicacion y no desaparece

Alguien me puede decir a que puede deberse esto?

Neftali [Germán.Estévez] 02-12-2004 10:45:46

Revisa éste hilo.

llonigualker 02-12-2004 11:10:32

y cual es la USES de esa funcion?

llonigualker 02-12-2004 11:13:50

me da error en @notifyinfo

Neftali [Germán.Estévez] 02-12-2004 11:35:36

Cita:

Empezado por llonigualker
y cual es la USES de esa funcion?

Añade ShellAPI

Neftali [Germán.Estévez] 02-12-2004 11:36:21

Cita:

Empezado por llonigualker
me da error en @notifyinfo

Revisa éste post que es el original. Esa es la estructura de datos que se usa para visualizar el icono en el System Tray.

http://www.clubdelphi.com/foros/showthread.php?t=13338

llonigualker 02-12-2004 12:31:59

Pues no, no funciona.

Y lo que se queda no es el icono sino el boton de la aplicacion en la barra de tareas del boton inicio del escritorio.

tengo que utilizar alt+ctrl+supr para finalizar el proceso.

a alguien se le ocurre como finalizar el proceso por codigo?

llonigualker 02-12-2004 12:49:33

He conseguido que el boton desaparezca con

ShowWindow(Application.Handle, SW_HIDE);

antes de cerrar, pero....

el proceso sigue activo. ¿Como puedo finalizar el proceso por código?

Neftali [Germán.Estévez] 02-12-2004 13:59:08

OK, perdón y olvida todo lo anterior; Lo que pensaba es que estabas refiriendo a un pequeño icono al lado del reloj y como veo no te refires a eso.

El que tu aplicación no desaparezca significa que no la has terminado, sino que sólo la has ocultado (de ahí que no desaparezca de la lista de tareas), o que no se cierra correctamente debido a algun error. Debe ser lo que estabas haciendo antes desde el programa y lo que haces con la llamada a ShowWindow(Application.Handle, SW_HIDE);

Lo que debes corregir es que tu aplicación se cierre correctamente.

¿Qué código utilizas para cerrar tu aplicación?
Prueba con: Application.Terminate.

llonigualker 02-12-2004 14:06:52

Parece increible pero cierto es

Mi aplicacion la cierro con un

close;

normal y corriente.

en el Onclose tengo un Action := cafree; normal y corriente.

Todas mis palicaciones se cierran normalmente pero esta puñetera aplicacion NO.

Ahora mismo y despues de muchas pruebas infructuosas el codigo que tengo para cerrar es el siguiente

Session1.Close; (cierro la sesion) (todas mis tablas estan cerradas)
ShowWindow(Application.Handle, SW_HIDE);
Application.terminate;
Close;


... pero sigue igual, no lo entiendo.

llonigualker 02-12-2004 14:09:18

Tambien tengo que decir que en el form principal tengo 90 componentes pero no creo que sea por eso ya que en otras aplicaciones he tenido mas y no ha pasado esto.

llonigualker 02-12-2004 14:12:40

Tambien os tengo que decir que cuando estoy en delphi, ejecuto la aplicacion y la termino, me aparece una ventana de la CPU como si fuese un debugger con codigo ensamblador y tengo que terminar la aplicacion haciento un Program Reset.

Saludos.

Yosuun 02-12-2004 14:53:07

Pues yo lo hago con Application.Terminate; en Form Principal de la aplicacion y no me da problemas.

Un Saludo.

llonigualker 02-12-2004 16:24:17

Y yo me lo creo, ya que en mis otras aplicaciones es lo normal, que se cierre todo.

Pero en fin, aver si hay algun lumbreras que aporte un poquito de luz al asunto.

Saludos.

Neftali [Germán.Estévez] 02-12-2004 17:29:56

Cita:

Empezado por llonigualker
Tambien os tengo que decir que cuando estoy en delphi, ejecuto la aplicacion y la termino, me aparece una ventana de la CPU como si fuese un debugger con codigo ensamblador y tengo que terminar la aplicacion haciento un Program Reset.

Me da la impresión (y ésto que añades lo confirma) de que hay alguna parte en tu programa que no se cierra correctamente; Eso pasa cuando estás cerrando la aplicación, de ahí que posiblemente al programa no le de tiempo de sacar ningun mensaje de error. Ese error provoca que la aplicación no se cierre correctamente.
Revisa los Destroy de los elementos que tienes abiertos en el momento de cerrar.
Alguna vez que me ha pasado, para saber qué elemento da el error, probar diferentes ejecuciones. Ha realizar diferentes acciones a ver si el error sigue un patrón.


La franja horaria es GMT +2. Ahora son las 21:18:29.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi