Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Impresión
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-12-2009
amurrieta amurrieta is offline
Registrado
 
Registrado: feb 2005
Posts: 7
Poder: 0
amurrieta Va por buen camino
Question erro al cerrar segundo preview mdichild

Hola foro, estoy abriendo varias ventanas de reportes con quickreport desde una forma mdi por lo cual mis preview son mdichild. La idea es que el usuario pueda abrir varias ventanas del mismo reporte con parámetros diferentes y poder comparar. Los abro bien y varias veces, el problema es cuando intento cerrar la segunda ventana, me manda error de access violations, supongo que al cerrar el primero cierro los demas aunque sigan visibles o no se que estoy haciendo mal. La forma de abrir los reportes es la siguiente:

Código Delphi [-]
...
 If not Assigned(RptCte) then
 Begin
      RptCte := TRptCte.create(FPrincipal)
 End;

 RptCte.Preview;
...

Estaba poniendo el free después de abrirlos y lo quité pensando que los liberaba antes de cerrarlos pero aún así no me ha funcionado. Supongo que debería crear una instancia por cada llamda de reporte pero no se si sea lo correcto o como lo tendría que hacerlo.

Gracias por su ayuda..
Responder Con Cita
  #2  
Antiguo 08-12-2009
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Arrow

Si lo dejas asi como estas ,pues te cuento que se te va ir llenando la memoria mas y mas ,por la sencilla razon de que no estas liberando los objetos creados.
Por otro lado si abres el reporte en forma Modal,y luego lo destruyes, pues ya no vas a poder abrir (y comparar segun lo que comentas) otro reporte, mientras tengas alguno abierto o estado de Previsualizacion.... asi que lo unico que se me ocurre que puedas hacer es Personalizar tu reporte, es decir mostrarlo en un formulario diseñado por ti mismo, para que puedas usar el evento OnClose del mismo y decirle a Delphi que destruya el formulario al cerrarlo.
Código Delphi [-]
procedure MyFormPersonalizado.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree;//Hago que se destruya el formulario.
end;
De esa manera podrias abrir el formulario en forma normal(no modal)y evitarias las Fugas de memoria.
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #3  
Antiguo 08-12-2009
amurrieta amurrieta is offline
Registrado
 
Registrado: feb 2005
Posts: 7
Poder: 0
amurrieta Va por buen camino
Question

Oka, he hecho lo que propones de meter el preview en un formulario y hasta ahí todo bien, he reutilizado el reporte elaborado y sólo en el evento onpreview le mando el qrprinter al objeto preview de la forma para que al mostrar el preview del reporte se muestre en el preview personalizado. Ahora mi problema es cuando quiero volver a lanzar el formulario, ya que como lo había planteado, la idea es que el cliente pueda ver el mismo reporte en diferentes ventanas para comparar datos pues al intentar volver a mostrar el formulario me dice que ya existe y no me deja crearlo. Cómo hago para poder abrir varios formularios sin que me mande error y que se abran en diferentes ventanas, no sólo que se muestren en el formulario que ya se abrió previamente. Lo que tengo en código es:

Código Delphi [-]
...
procedure TFPrincipal.TestFormClick(Sender: TObject);
Var
 formatest : TFormReporte; // formulario Reporte
begin

      formatest := TFormReporte.Create(fprincipal);

      If not Assigned(Reporte) then
      Begin
         Reporte := TReporte.create(self) //QuickReport
       End;
         Reporte.Preview;

      formatest.Show;
End;
...

Qué estoy haciendo mal? cómo puedo abrir varias ventanas del mismo formulario?
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
cerrar preview del quickreport amurrieta Impresión 8 21-02-2019 22:06:49
Imprimir y cerrar preview automaticamente michel_2007 Impresión 2 04-12-2007 18:43:18
Cerrar todas las Ventanas MDIChild gluglu OOP 11 18-04-2007 20:12:56
Como cerrar preview de QuickReport despues de imprimir AndGaG Impresión 1 11-05-2006 10:30:54
necesito cerrar el preview despues de imprimir cristok Impresión 1 13-06-2003 00:35:35


La franja horaria es GMT +2. Ahora son las 20:31:21.


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
Copyright 1996-2007 Club Delphi