Ver Mensaje Individual
  #5  
Antiguo 27-05-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Reputación: 28
Lepe Va por buen camino
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); // no uso aplication porque yo mismo lo destruyo
// más que nada lo hago así por seguir una lógica contundente:
// Yo lo creo, yo lo destruyo.
// Delphi lo crea, Delphi lo destruye.
// Cuando se mezclan esas 2 cosas hay que atar cabos muy bien 
try
  frmImpresion.Report.Assign(qrTest);
  frmImpresion.Report.PreviewModal;
  finally
    FreeAndNil(qrTest);
end;
Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita