Agilizar la carga de tu aplicación
Artículo por Club Developers · 31 diciembre 2005
5167 vistas
Si tenemos una aplicación con muchos formularios y éstos los creamos todos al inicio de la misma, es muy probable que nuestra aplicación tarde en arrancar (y a veces, incluso, que nos quedemos sin recursos en el sistema).
Para poder evitar este problema tendremos que evitar crearlos al arrancar la aplicación y hacerlo de forma dinámica cuando lo necesitemos. También tendremos que acordarnos de destruirlos cuando ya no nos hagan servicio.
Para evitar su "auto-creación" tendremos que quitarlos de la lista de Autocreate forms que se encuentra en Project|Options y ponerlos en la de Available forms. De hecho sólo tendrÃamos que tener el formulario principal en la lista de Autocreate forms.
Veamos un ejemplo de cómo crearÃamos por código un formulario
1.- Primero añadimos en la cláusula uses la unit del formulario que vamos a usar
2.- Desde el lugar que sea (el clic de una opción de menú, un botón,....) hacemos la creación y controlamos su destrucción
Si no mostraramos el nuevo formulario como modal, entonces tendremos que controlar la destrucción des del propio formulario en el OnClose
Para poder evitar este problema tendremos que evitar crearlos al arrancar la aplicación y hacerlo de forma dinámica cuando lo necesitemos. También tendremos que acordarnos de destruirlos cuando ya no nos hagan servicio.
Para evitar su "auto-creación" tendremos que quitarlos de la lista de Autocreate forms que se encuentra en Project|Options y ponerlos en la de Available forms. De hecho sólo tendrÃamos que tener el formulario principal en la lista de Autocreate forms.
Veamos un ejemplo de cómo crearÃamos por código un formulario
1.- Primero añadimos en la cláusula uses la unit del formulario que vamos a usar
delphi
Implementation uses  Unit2;
2.- Desde el lugar que sea (el clic de una opción de menú, un botón,....) hacemos la creación y controlamos su destrucción
delphi
begin  Form2 := TForm2.Create(self);  try   Form2.ShowModal;  finally   FreeAndNil(Form2);  end; end;
Si no mostraramos el nuevo formulario como modal, entonces tendremos que controlar la destrucción des del propio formulario en el OnClose
delphi
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction); begin  Action := caFree; end;