Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-11-2004
Avatar de unreal4u
unreal4u unreal4u is offline
Miembro
 
Registrado: nov 2004
Ubicación: Temuco, Chile
Posts: 105
Poder: 20
unreal4u Va por buen camino
¿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...
Responder Con Cita
  #2  
Antiguo 02-11-2004
Avatar de __hector
[__hector] __hector is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Santo Domingo, Rep. Dom.
Posts: 1.075
Poder: 22
__hector Va por buen camino
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
__________________
Héctor Geraldino
Software Engineer
Responder Con Cita
  #3  
Antiguo 03-11-2004
Mick Mick is offline
Miembro
 
Registrado: may 2003
Posts: 405
Poder: 21
Mick Va por buen camino
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
Responder Con Cita
  #4  
Antiguo 03-11-2004
Avatar de unreal4u
unreal4u unreal4u is offline
Miembro
 
Registrado: nov 2004
Ubicación: Temuco, Chile
Posts: 105
Poder: 20
unreal4u Va por buen camino
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
Responder Con Cita
  #5  
Antiguo 25-08-2006
mahlon mahlon is offline
Miembro
 
Registrado: ago 2006
Posts: 62
Poder: 18
mahlon Va por buen camino
Talking 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
Responder Con Cita
  #6  
Antiguo 05-03-2007
Avatar de unreal4u
unreal4u unreal4u is offline
Miembro
 
Registrado: nov 2004
Ubicación: Temuco, Chile
Posts: 105
Poder: 20
unreal4u Va por buen camino
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*
__________________
Código Delphi [-]
procedure Gracias; 
begin
 if Respuesta_a_Mensaje = TRUE then showmessage('Ojalá que te sirva')
 else showmessage('Gracias por responder... :-)');
end; // (c) unreal4u
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 14:51:54.


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
Copyright 1996-2007 Club Delphi