Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   Liberar memoria de un QR. (https://www.clubdelphi.com/foros/showthread.php?t=7635)

mlara 21-02-2004 15:32:05

Liberar memoria de un QR.
 
Hay dos formas de crear un reporte con Quick Report.

1. Creo una forma y arrastro el componente TQuickRep desde la paleta. En este caso la declaración del tipo en el archivo .pas se ve así:

Código:

type
  TForm2 = class(TForm)
    QuickRep1: TQuickRep;
  private
    { Private declarations }
  public
    { Public declarations }
  end;

2. Me voy por File | New | Other..., en la pestaña 'New' selecciono la opción Report, y doy click en OK. En este caso la declaración del tipo en el archivo .pas se ve así:

Código:

type
  TQuickReport1 = class(TQuickRep)
  private

  public

  end;

En el primer caso, para liberar completamente la memoria puedo usar en el evento OnClose de Form2 el siguiente código:

Código:

  Application.ProcessMessages;
  FreeAndNil(QuickRep1);
  Action := caFree;

Entonces visualizaría el reporte y luego lo destruiría así:

Código:

Application.CreateForm(TForm2, Form2);
QuickRep1.Preview;
Form2.Close;

En el segundo caso llamaría el reporte así:

Código:

Application.CreateForm(TQuickReport1, QuickReport1);
QuickReport1.Preview;

En este caso, cuál es la mejor manera de liberar la memoria?

jachguate 21-02-2004 18:31:16

asi:

Código:

Application.CreateForm(TQuickReport1, QuickReport1);
try
  QuickReport1.Preview;
finally
  QuickReport1.Free;
  QuickReport1 := nil;
end;


solo comento que en el primer caso no es necesario llamar a FreeAndNil en el OnClose, pues el Form2 es quien lo destruiría (al ser el owner del mismo).

Hasta luego.

;)


La franja horaria es GMT +2. Ahora son las 18:57:33.

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