Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   ¿cuál es mejor: "close" o "application.terminate"? (https://www.clubdelphi.com/foros/showthread.php?t=15711)

unreal4u 02-11-2004 20:37:53

¿cuál es mejor: "close" o "application.terminate"?
 
he revisado en montones de sitios; y algunos dicen que es mejor ocupar "close"; mientras que otros dicen que es mejor ocupar "application.terminate"; también he leido en muchos sitios que son exactamente lo mismo, puesto que cuando uno pone close en un form principal, éste llama a no se qué método que "des"inicializa todas las variables; pero si fueran lo mismo; ¿por qué reciben dos nombres distintos? ¿o acaso es lo mismo que por ejemplo abrir una tabla donde table1.active := true es lo mismo que table1.open?

creo que es una duda bastante técnica; puesto que no he podido encontrar información al respecto... (por lo general, a lo último que recurro es a los foros); así que espero que me puedan ayudar...

de antemano, muchas gracias...

__hector 02-11-2004 22:29:53

Es lo mismo. Cuando el formulario principal invoca el metodo close, este a su vez envia ciertos mensajes al sistema operativo e invoca application.terminate (segun dice la ayuda de delphi)

Diferencias? Imagino que con el metodo close puedes disparar algunos eventos que no estan disponibles para el application.terminate

Mick 03-11-2004 10:08:08

Conceptualmente y el la practica no es exactamente lo mismo:

Application.terminate destruye (que no cierra) todos los forms creados y a continuacion se finaliza la aplicacion.

Close "en principio" no tiene que ver con cerrar la aplicacion, esto es una metodo de los objetos TForm y su intencion es cerrar el form actual, como ya se ha explicado en el primer post. El hecho de que si el form a cerrar es el form principal internatemente llame a aplication.terminate es un efecto secundario por asi decirlo.

No es lo mismo destruir un form que cerrarlo, de modo que Application.Terminate, hace un .free de los forms, pero no un .close, eso significa que los eventos OnClose, OnCloseQuery etc no se ejecutan, de modo que el form no tendra opcion de hacer la tipica pregunta: ¿ Hay cambios quiere salir sin guardar las modificaciones ? en el evento onCloseQuery.


Saludos
Miguel

unreal4u 03-11-2004 15:07:40

muchìsimas gracias Mike, la verdad es que la ayuda de delphi es un poco extensa.

Ahora bien, lo que yo habìa hecho hasta el momento, era lo que sigue:
1.- Al cerrar la aplicaciòn, ya sea por "salir" o por presionar la X; llama al evento OnClose.
2.- Verifico si alguno de los archivos ha sido modificado.
3.- Si es si, entonces guardo, y llamo a un procedimiento que me hace application.terminate.
4.- Si es no, entonces guardo, y llamo a un procedimiento que me hace application.terminate.
5.- Si es cancelar, entonces aborto. (mediante abort;), y no llamo al procedimiento antes mencionado.

segùn de lo que me dices; el hecho de que llame a ese procedimiento està demàs, y podrìa perfectamente obviarlo.

Confìrmame si estoy en lo correcto o corrìgeme (por favor) si estoy mal.

Atte. Camilo Sperberg

mahlon 25-08-2006 18:00:05

close
 
Cita:

Empezado por unreal4u
muchìsimas gracias Mike, la verdad es que la ayuda de delphi es un poco extensa.

Ahora bien, lo que yo habìa hecho hasta el momento, era lo que sigue:
1.- Al cerrar la aplicaciòn, ya sea por "salir" o por presionar la X; llama al evento OnClose.
2.- Verifico si alguno de los archivos ha sido modificado.
3.- Si es si, entonces guardo, y llamo a un procedimiento que me hace application.terminate.
4.- Si es no, entonces guardo, y llamo a un procedimiento que me hace application.terminate.
5.- Si es cancelar, entonces aborto. (mediante abort;), y no llamo al procedimiento antes mencionado.

segùn de lo que me dices; el hecho de que llame a ese procedimiento està demàs, y podrìa perfectamente obviarlo.

Confìrmame si estoy en lo correcto o corrìgeme (por favor) si estoy mal.

Atte. Camilo Sperberg


ves k en los foros se encuentra ayuda;)
-------
Saludos

unreal4u 05-03-2007 11:01:19

Cita:

Empezado por mahlon
ves k en los foros se encuentra ayuda;)
-------
Saludos

claro .. subiendo temas de hace dos años atrás xD

que recuerdos de cuando programaba *sigh*


La franja horaria es GMT +2. Ahora son las 22:36:34.

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