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 12-03-2007
Avatar de vpepen
vpepen vpepen is offline
Miembro
 
Registrado: nov 2003
Ubicación: Higüey
Posts: 104
Poder: 21
vpepen Va por buen camino
Error al salir del preview.

Hola a todos.

Tengo que el siguiente problemita del cual les agradecería la ayuda que me puedan prestar. Tengo una apliación en Delphi (Claro está ) y en la cual utilizo el QuickReport para generar los informes, pero el problema se presenta cuando presento el Preview, ya que al salir al form desde donde es invocado el Preview, me presenta el siguiente error:

Access violation at address 004DFB54 in module 'SGECE.exe'. Read of address 6f747584.

Lo extraño en todo esto es que dicho error no siempre se presenta y no sabría decir con qué frecuencia aparece, sólo que cuando se presenta es en algunas ocasiones después de generar el preview de cualquier reporte de los que tengo en la aplicación.

Otra cosa, esto no causa ningún problema (hasta donde creo) , pero es bastante molestoso ese mensaje de error, el cual el usuario tiene que hacer clic para que desaparezca la ventana.

Vpepen.-
Responder Con Cita
  #2  
Antiguo 12-03-2007
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
Pues tendrías que revisar tu código para ver en que parte se presenta ese error y porque estas tratando de acceder a algo que ya no existe; es por eso que te aparece ese error.
__________________

Responder Con Cita
  #3  
Antiguo 12-03-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
¿Usas delphi 6 y QuickReport 3 (el que viene con delphi)?
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #4  
Antiguo 12-03-2007
Avatar de vpepen
vpepen vpepen is offline
Miembro
 
Registrado: nov 2003
Ubicación: Higüey
Posts: 104
Poder: 21
vpepen Va por buen camino
Cita:
Empezado por Lepe
¿Usas delphi 6 y QuickReport 3 (el que viene con delphi)?
Disculpa que no especifiqué esos datos. Uso Delphi 5 y el QuickReport que viene con él.

Vpepen.-
*************
Responder Con Cita
  #5  
Antiguo 12-03-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
En windows 2000/XP tienes que cambiar la variable de entorno TEMP y TMP de windows y ponerle una ruta de menos de 31 caracteres. Actualmente usará "c:\documents and settings\.....". Intenta con "c:\windows\temp" y "c:\windows\tmp" (creando las carpetas primero.

Ten cuidado al liberar los informes de quickreports o las ventanas, usa freeAndNil(Form1) en lugar de Form1.Free, es más seguro.

Una Violación de Acceso a Memoria puede dejar la aplicación en un estado inestable, es decir, si es un error grave. Está intentando acceder a una posición de la memoria que no le pertenece.

Suele ocurrir con código de este estilo:
Código Delphi [-]
Form1.Free;
Form1.Show;
Puede que se llamen en ese orden, pero desde diferentes ventanas, y es ahí donde se produce la excepción: Access Violation read of address XXXXX.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #6  
Antiguo 13-03-2007
Avatar de vpepen
vpepen vpepen is offline
Miembro
 
Registrado: nov 2003
Ubicación: Higüey
Posts: 104
Poder: 21
vpepen Va por buen camino
Gracias por tus sugerencias Lepe, trataré de aplicar lo que dices para ver si el problema se corrige.

Vpepen.-
*************
Responder Con Cita
  #7  
Antiguo 13-03-2007
Avatar de vpepen
vpepen vpepen is offline
Miembro
 
Registrado: nov 2003
Ubicación: Higüey
Posts: 104
Poder: 21
vpepen Va por buen camino
Algo que no comprendo y me gustaría si alguien me puede sacar de esa inquietud: A qué se debe que el error no siempre aparece?

Vpepen.-
***********
Responder Con Cita
  #8  
Antiguo 13-03-2007
Avatar de vpepen
vpepen vpepen is offline
Miembro
 
Registrado: nov 2003
Ubicación: Higüey
Posts: 104
Poder: 21
vpepen Va por buen camino
Cita:
Empezado por Lepe
Ten cuidado al liberar los informes de quickreports o las ventanas, usa freeAndNil(Form1) en lugar de Form1.Free, es más seguro. Saludos
Lepe, tengo para decirte que la verdad ni uso Free ni tampoco FreeAndNil(). Simplemente incovo mi Preview (Form1.QuickReport1.Preview. Al salir del Preview no especifico nada, simplemente cierro el Preview y aparece el error, claro está, con el agravante de que no siempre lo hace.

Vpepen.-
*************
Responder Con Cita
  #9  
Antiguo 13-03-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Entonces supongo que creas todas tus ventanas al inicio del programa y después muestras u ocultas el form correspondiente ¿es cierto?, ¿liberas y creas dinamicamente las ventanas?

Sería conveniente que incluyas algo de código, de como llamas al QuickReports, y qué propiedades modificas... no sé quizás veamos alguna mejora en el código que, colateralmente, elimine el fallo.

Si puedes, llámalo con PreviewModal, aunque cambia un poco el comportamiento de la aplicación, no sé si será viable.

Al llamarlo con Preview, el QuickReport simula una ventana modal, pero realmente no lo es.

El hecho de que ocurra algunas veces, es lo que hace que se sea un problema, si falla siempre se encuentra rápido con breakpoints jejeje. Ten en cuenta que QuickReports es un módulo de terceros, que se apoya sobre windows, la cola de impresión, las impresoras existentes, etc... Son muchas las variables que intervienen.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #10  
Antiguo 14-03-2007
Avatar de vpepen
vpepen vpepen is offline
Miembro
 
Registrado: nov 2003
Ubicación: Higüey
Posts: 104
Poder: 21
vpepen Va por buen camino
Cita:
Empezado por Lepe
Entonces supongo que creas todas tus ventanas al inicio del programa y después muestras u ocultas el form correspondiente ¿es cierto?, ¿liberas y creas dinamicamente las ventanas?
Con relación a eso, los forms se crean todos al inicio del programa. QuickReport se trabaja encima de un form y contrario a lo que parecería, yo no tengo que mostrar/ocultar el form explícitamente, ya que "al parecer" eso lo hace el mismo QuickReport cuando es invocado para el Preview. Esto lo creo basado en que el único código que tengo en el evento del botón que llama el preview es simplente:
Código Delphi [-]
Form1.QuickReport1.Preview;

Cita:
Empezado por Lepe
El hecho de que ocurra algunas veces, es lo que hace que se sea un problema, si falla siempre se encuentra rápido con breakpoints jejeje. Ten en cuenta que QuickReports es un módulo de terceros, que se apoya sobre windows, la cola de impresión, las impresoras existentes, etc... Son muchas las variables que intervienen.
Saludos
Aceptada la sugerencia

Vpepen.-
**************
Responder Con Cita
  #11  
Antiguo 14-03-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
¿los datos que muestras en en Preview de donde vienen?
¿consultas? ¿no necesitas pasarle parámetros a esas consultas?
¿tablas?

Quizás fuera conveniente crear alguna rutina al estilo:
Código Delphi [-]
procedure TForm1.VerInforme;
begin
  if not tabla1.Active then
    tabla1.Open;
  Quickreport1.PreviewModal;
  Tabla1.Close;
end;

De esta forma puedes controlar mejor si la tabla/consulta está abierta, si necesitas cerrarla para refrescar los datos, pasarle parámetros, etc.

No es buena idea dejar la consulta abierta en tiempo de diseño y "pensar" que al ejecutar el programa nada va a fallar.

Saludos.
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #12  
Antiguo 15-03-2007
Avatar de vpepen
vpepen vpepen is offline
Miembro
 
Registrado: nov 2003
Ubicación: Higüey
Posts: 104
Poder: 21
vpepen Va por buen camino
Cita:
Empezado por Lepe
¿los datos que muestras en en Preview de donde vienen?
¿consultas? ¿no necesitas pasarle parámetros a esas consultas?
¿tablas?
Utilizo consulta y no necesito pasarle parámetros, además de que en el caso hipotético de que fallara algo, creo que me daría cuenta, debido a que en el preview sería evidente, y todo funciona bien.

Cita:
Empezado por Lepe
No es buena idea dejar la consulta abierta en tiempo de diseño y "pensar" que al ejecutar el programa nada va a fallar.Saludos.
La consulta no la tengo abierta en tiempo de diseño, la abro en tiempo de ejecución antes de llamar el Preview.

Bueno, hasta ahora he tratato todas las sugerencias que me has dado y parece que la cosa está un poquito difícil, pero nada.... a seguir intentádolo hasta corregir el problema

De todas formas Gracias Lepe por tu ayuda y tu valioso tiempo. Cualquier sugerencia adicional me la haces saber.

Vpepen.-
*************
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
Error al salir de aplicacion.... sierraja Impresión 8 11-10-2016 22:49:22
Error al intentar un Preview JulioGO Impresión 2 28-04-2006 22:14:27
Error al Salir de la Aplicación camelumi Varios 3 24-09-2004 16:12:25
Error al salir de una aplicacion el_enigma1 Conexión con bases de datos 0 05-09-2004 00:49:10
Error al salir cisterpe Varios 14 28-04-2004 19:20:04


La franja horaria es GMT +2. Ahora son las 18:13:23.


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