Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Creacion de formas (https://www.clubdelphi.com/foros/showthread.php?t=37722)

Tauro78 21-11-2006 12:53:49

Creacion de formas
 
hola quisiera saber lo siguiente:

pienso que la aplicacion tendra unas 100 pantallas cuando este terminada, me gustaria saber lo siguiente: es mejor dejar que todas las formas se creen automaticamente (asi no me preocupo de liberarlas, etc) o deberia crearlas y destruirlas explicitamente o talvez dejar que algunas se creen automaticamente y otras no.
Mi duda se debe a que hice una aplicacion de 80 formas y deje que todas se crearan automaticamente, pero me parece que se le hace pesado si la maquina no tiene mucha memoria el cargar todas las pantallas.
De tener que crealas explicitamente como seria el codigo?, se que esto esta en Project-Options-Forms, entonces aqui pongo las que quiero manejar explicitamente.
Desde ya muchas gracias.

dec 21-11-2006 12:57:34

Hola,

Jesusito de mi vida, cien formularios... desde luego parecen muchos para que se creen "de entrada", porque, ¿van a utilizarse los cien formularios en una sesión de la aplicación? Parecen muchos, desde luego. O al menos a mí me lo parecen.

Yo creo que lo suyo sería que los formularios se crearan cuando fueran necesarios, y se liberaran cuando dejaran de serlo. Esto dependerá de la función de los formularios en cuestión. Por regla general, cuando se muestra un formulario "modalmente" se hace algo así:

Código Delphi [-]
var
  frm: TMiFormulario;
begin
  frm := TMiFormulario.Create(Self);
  try
    frm.ShowModal;
  finally
    frm.Free;
  end;
end;

O algo como esto, si se precisa el resultado del formulario "modal":

Código Delphi [-]
var
  frm: TMiFormulario;
begin
  frm := TMiFormulario.Create(Self);
  try
    if frm.ShowModal = mrOk then
    begin
      // Lo que te sea menester aquí
    end;
  finally
    // Pero, en todo caso
    frm.Free;
  end;
end;

Neftali [Germán.Estévez] 21-11-2006 13:26:23

Estoy de acuerdo con David, no crees 100 pantallas al inicio.
Añado que si las abres nomodales, puedes dejar que se liberen automáticamente añadiendo al evento OnClose:

Código Delphi [-]
  Action := caFree;

Tauro78 21-11-2006 14:03:43

Gracias por sus rapidas respuestas.


La franja horaria es GMT +2. Ahora son las 09:12:41.

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