Cita:
Empezado por luisgutierrezb
si delphi auto crea la forma qrTest y luego la pones en freeandnil, la aplicacion no tendra manera de manejarla y manda la excepcion,
|
Tiene toda la lógica del mundo tu afirmación, pero se da el caso de que .Free mira si la variable es igual a nil y en ese caso, no hace nada, por tanto delphi no intenta destruir el objeto 2 veces.
Si se usa solamente Objeto.Free, entonces delphi no puede saber si la variable es igual a nil o no, y en este caso, si se obtiene errores de acceso a memoria.
Report.Preview, aunque no continua la ejecución de código, algunas veces me ha dado algún que otro fallo colateral, porque precisamente no es una ventana modal real, sino simulada. Como digo, algunas veces he tenido que usar Report.PreviewModal.
Resumiendo todo lo dicho:
Código Delphi
[-]
qrTest := TqrTest.Create(nil); try
frmImpresion.Report.Assign(qrTest);
frmImpresion.Report.PreviewModal;
finally
FreeAndNil(qrTest);
end;
Saludos