Page 1 of 1

Estimados senores freeimage.dll error en reporte

Posted: Fri Sep 05, 2008 2:37 am
by DiGregorio
Estimados Senores:

Tengo un error extrano en el uso de la Timage con preview

En dias pasados publique un post con un error que tenia cuando intentaba usar una imagen en un preview con TImage:

prg:
oprn:say((row+2)*cantlines,1,"3Abajo?izq",ofn1)
oprn:say((row+3)*cantlines,1,"4Abajo?izq",ofn1)
oprn:say((row+4)*cantlines,1,"5Abajo?izq",ofn1)
row:=8
cFile:="C:\prueba.Bmp"
@ 1,1 IMAGE oImg FILENAME Alltrim(cFile) OF oWnd
oPrn:SayImage(100,200,oImg,100,100)
oImg:Progress( .f. )


Error:

Error description: Error BASE/1005 Message not found: TIMAGE:_HDIB

Stack Calls
===========
Called from: => __ERRRT_SBASE(0)
Called from: => HBOBJECT:ERROR(176)
Called from: => __EVAL(105)
Called from: => HBOBJECT:MSGNOTFOUND(0)
Called from: => TIMAGE:_HDIB(169)
Called from: => TIMAGE:NEW(55)
Called from: => REPORTE_M(281)
Called from: => (b)DES_MENU(574)
Called from: => TC5MENU:COMMAND(714)
Called from: => TWINDOW:COMMAND(931)
Called from: => TWINDOW:COMMAND(0)
Called from: => TWINDOW:HANDLEEVENT(0)
Called from: => _FWH(3125)
Called from: => WINRUN(0)
Called from: => TWINDOW:ACTIVATE(880)
Called from: => MAIN(416)



Utilizo Fw 2.7 y freeimage.dll, y luego de dar vueltas y vueltas descubri que si me pasaba al TImge nativo que utiliza NViewLib.dll no tenia mas el error. Por supuesto pierdo todas las opciones de usar los difrentes tipos de imagen. :roll:

No consiguo el error, pero me pregunto si puede ser algun problema de preview que utilizo.

De Antemano Gracias.

Posted: Fri Sep 05, 2008 8:20 am
by Antonio Linares
Domenico,

Parece que en la clase TImage que estás usando te falta la DATA hDib

La clase TImage de FWH no tiene esa DATA ni la usa, pero parece que la clase que tu estás usando si la intenta usar:

Called from: => HBOBJECT:MSGNOTFOUND(0)
Called from: => TIMAGE:_HDIB(169) // aqui intenta asignarle un valor!
Called from: => TIMAGE:NEW(55

Posted: Sat Sep 06, 2008 3:02 am
by DiGregorio
Antonio, gracias por responder.

Estuve revisando y tengo dos dudas importantes:

1. Estuve leyendo en el foro que todos los FWH de version superior a 2.4 utilizaban de forma nativa el freeimage.dll, pero revise la calse Timage nativa en mi FWH 2.7 y la misma no la utiliza, sino que aun utiliza la Nw.....

2. Lo mas extrano de todo y es muy extrano es que busque en todo mi disco duro, (por mi gran asombro) y ningun prg tiene en la linea 169 ni 55 esas llamadas que reporta el error. Creeme busque bien y ni en el timage ni en cualquier prg tengo esas lineas... eso si extrano... lo cierto es que aunque parezca ridiculo y no me creas cambio los timage y coloco el nativo con nwlib... y funciona bien.

Lo extrano es que en cualquier dialogo el Timage no nativo que usa freeimage no da ningun tipo de error trabaja perfecto, solo da el error en el preview de un reporte.


Gracias de Antemano, Saludos.

En este caso que puedo hacer, ?

Gracias.

Posted: Sat Sep 06, 2008 11:36 pm
by Antonio Linares
Domenico,

Enlaza el TImage no nativo que tienes como un PRG más de tu aplicación para asegurarte de que sea ese el que se usa.

Como comprobación, llama a MsgInfo() desde el método New() de ese TImage, para que compruebes que se llama al del PRG y no a otro.