Ver Mensaje Individual
  #3  
Antiguo 15-09-2007
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.025
Reputación: 27
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Confirmo lo que dice dec porque lo he comprobado en mis propias carnes. Hace años me encargaron mejorar un programa. Era completísimo y tenía como 200 ventanas, fichas, paneles y formularios o más. El que había hecho el programa había dejado que se crearan todos estos objetos automáticamente, así que nada más empezar el programa se tiraba media hora (reloj en mano) parado hasta abrir la primera ventana.

Cuando terminé la remodelación (un año más tarde) mi programa tenía tantas o más ventanas y paneles pero sólo los cuatro o cinco más importantes (la principal, un datasource y alguna cosilla más) eran creados al arrancar mientras que el resto se creaban y destruían cuando procedía.

Mi jefe se quedó flipando porque el anterior programador le dijo que no podía cargar más rápido y mi versión cargaba en 30 segundos o poco más (y por culpa de la base de datos, que se las traía).

Así que pregunta, pregunta:

Cita:
2- ¿ Como se libera la aplicación ?
Cuando se cierra la "ventana principal" (mira el código fuente del archivo "dpr" de tu proyecto). Esto lo hace el objeto Application, el cual mantiene una lista con todas las ventanas que se crean, tanto automáticamente como a mano, a través del objeto "Screen" que ha descrito dec. Cuando se destruye la "ventana principal" el objeto Application entiende que se quiere terminar el programa así que coge la lista de ventanas y las va destruyendo una a una.

(nota: Lo cierto es que hace mucho que no hago programas "visuales" en Delphi, así que si estoy equivocado ruego me disculpen).

Última edición por Ñuño Martínez fecha: 15-09-2007 a las 14:40:56. Razón: Añado una respuesta
Responder Con Cita