Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   Problemas al cerrar quickreport con la X !! (https://www.clubdelphi.com/foros/showthread.php?t=7013)

Hallenbeck 30-01-2004 10:28:23

Problemas al cerrar quickreport con la X !!
 
Hola!!, este problema, basicamente, lo he visto en el foro pero no con esta variante. He conseguido que cuando se cierra el quickreport con el boton Close que incorpora se me cierra todo estupendamente, peeeeeeero si se le da al boton de cerrar estandar de windows, la X de la esquina derecha de todos los formularios, ME DAN TODO TIPO DE ERRORES.

Es un quickreport que saco a pelo, sin meter dentro de ningun form, los datos los obtengo de una IBquery, los listados que saco pueden tener cienes y cienes de paginas, facilmente. Utilizo Delphi 6 y por si acaso me he actualizado a la version 3.5.1 de Quickreport, pero nada.


Paso a describir como tengo estructurado el listado:

informe.IBqryListados.Prepare;
informe.IBqryListados.Open;
informe.IBqryListados.FetchAll;

if imprimir = True then
informe.Print
else
informe.PreviewModal;

informe.IBqryListados.Close;
informe.IBqryListados.UnPrepare;
application.ProcessMessages;
informe.Free;
Close;


Por que el resultado es distinto si se le da a Close o a la X ? Como podria evitar los Access Violation ?

Gracias

Gydba 30-01-2004 12:36:35

No estoy del todo lúcido así que es muy probable que esté equivocado, pero ¿no estas haciendo un free y luego un close verdad?

Lo mejor en este caso es ejecutar línea por línea para ver en que parte te tira el error.

Hallenbeck 30-01-2004 13:40:43

Gracias por responder, pero no, el close que se ve al final es el que cierra un formulario donde se filtran los datos que llevará el quickreport y que es el que llama al quickreport. He seguido la ejecucion paso a paso pero el error me lo da al final, cuando termina la ejecucion...

jachguate 30-01-2004 14:28:41

Has actualizado tu versión de Quick Report.... el que venía con Delphi3 y con Delphi4 solia tener algunos bugs...

http://www.qusoft.com/

Si no haces nada raro.. como aseguras, pue'que con eso se arregle.

Hasta luego.

;)

Hallenbeck 30-01-2004 16:02:50

Si, como ya he dicho antes, tenia delphi 6 con quickreport 3.0 y actualicé a 3.5 pero sigue fallando

marcoszorrilla 30-01-2004 22:58:16

Yo hago esto que sigue y nunca me hada ningún tipo de problema.
Código:

procedure TfrLstAgenda.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Application.ProcessMessages;
FreeAndNil(ListaAgenda);
Action:=CaFree;
end;


procedure TfrConAgenda.SpVpreviaClick(Sender: TObject);
begin
Application.CreateForm(TfrlstAgenda, frlstAgenda);
frlstAgenda.listaAgenda.Preview;
frlstAgenda.Close;
end;

Un Saludo.

Gydba 31-01-2004 01:03:27

Justamente pensaba en un close como el que plantea marcoszorrilla, pero se me adelantó :)

Deberías revisar bien el código, me parece que el problema viene dado por una clase que o bien fue liberada o nunca se instanció y se hace referencia.

Lo extraño es eso de que ejecutando un close te anda perfecto :(


La franja horaria es GMT +2. Ahora son las 03:35:02.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi