Agilizar la carga de tu aplicación

5164 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



delphi
  1. Implementation
  2.  
  3. uses
  4.   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
  1. begin
  2.   Form2 := TForm2.Create(self);
  3.   try
  4.     Form2.ShowModal;
  5.   finally
  6.     FreeAndNil(Form2);
  7.   end;
  8. end;



Si no mostraramos el nuevo formulario como modal, entonces tendremos que controlar la destrucción des del propio formulario en el OnClose



delphi
  1. procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
  2. begin
  3.   Action := caFree;
  4. end;