PDA

Ver la Versión Completa : Access Violation in GDI32.dll con QuickReport y D7


to_to
29-02-2012, 19:27:58
Hola buenos dias, al intentar realizar un Preview con QuickReport me envía una ventana con el fastidioso mensaje de Access Violation in GDI32.dll, después de dar ok a la ventana del mensaje del error si se presenta la ventana del quickreport pero no despliega el reporte, en la barra de estado de quickreport en páginas despliega 1 of 0. No he cambiado nada en delphi simplemente dejó de funcionar. He reparado esta dll de mi equipo, (Win XP Pro) pensando que el problema es la dll sin embargo el problema persiste.

Si copio el ejecutable en otro equipo no se presenta este problema, el reporte se visualiza perfectamente.

Estoy utilizando Delphi 7 y QuickReport bajo Windows XP.

Estoy por reinstalar componentes de quickreport y posteriormente si no se soluciona reinstalar Delphi, sin embargo quiero saber si alguien tiene alguna otra solución o idea sin necesidad de reinstalar?

Por favor si alguien tiene idea de cómo solucionarlo agradecería su ayuda.

ecfisa
29-02-2012, 19:46:28
Hola to_to.

Revisa si te sirve alguno de estos enlaces:

Error en QReport - Alguien puede ayudarme? (http://www.clubdelphi.com/foros/showthread.php?t=25275)
Cómo controlar error de conexion a la impresora (http://www.clubdelphi.com/foros/showthread.php?t=14145)
Access violation in module 'GDI32.dll' (http://www.delphigroups.info/2/63/390453.html)


Saludos.

to_to
29-02-2012, 20:25:19
Gracias ecfisa por tu pronta respuesta, ya había checado 2 de los hilos que me enlistaste, el otro que no había revisado es cuándo realizan un cancel al reporte pero no es mi caso, simplemente no abre el previo, de todas formas probaré ese código y voy a seguir el código del quickrport para ver exactamente donde marca el error.

Como lo comenté creo que el problema es alguna dll o archivo corrupto, ya que este mismo ejecutable lo realiza bien en otro equipo incluso sin impresora.

Gracias y te comento de lo que siga encontrando.

to_to
29-02-2012, 21:29:18
He creado otro proyecto y agregado la unidad donde se ejecuta el reporte, en este nuevo proyecto no tengo problema, se visualiza correctamente el reporte. Por lo tanto deduzco que el problema es el proyecto que se ha dañado, he recompilado todo, eliminando las dcu's paraque el "build of project" las vuelva a generar pero sigue el problema.

Como tengo Avast he quitado que "sandbox" identifique a mi programa como "software malicioso".

He seguido la ejecución en la unidad de quickRpt y al momento de ejecutar el preview es donde manda el error QRPrinter.Preview; dentro del método TCustomQuickRep.Preview;

Alguna otra idea de solución??

Gracias!.

marcoszorrilla
29-02-2012, 22:06:00
Por si te sirve de algo, este es el código que utilizo yo, jamás autocreo el informe, lo llamo así:

procedure TfrConRecibos.spbVPreviaClick(Sender: TObject);
begin
Application.CreateForm(TfrLstRecibos, frLstRecibos);
frLstRecibos.ListaRecibos.PreviewModal;
frLstRecibos.Close;
end;

//Este es el formulario llamado que contiene el informe y este es el comportamiento cuando se cierra.
procedure TfrLstRecibos.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Application.ProcessMessages;
FreeAndNil(ListaRecibos);
Action:=CaFree;
end;

Un Saludo.

to_to
01-03-2012, 17:58:24
Resuelto, gracias marcos, fíjate que antes de aplicar la solución que me sugeriste había dejado mi equipo nuevamente con la utilería de "Glary Utilities" y corrigió varias entradas en el registro de windows de Delphi 7, y cuando volví a compilar y ejecutar el programa ya lo abrió correctamente. Aquí les dejo la url de infospyware donde pueden bajar esta utilería que tiene uso gratuito, utilicé la pestaña 2, "1- Click Miantenance" y al final se ha corregido. Oops creo que aún no tengo permiso para poner enlaces pero lo pueden bajar del sitio de infospyware.com / herramientas / glary-utilities.

Nuevamente gracias por su apoyo.