Error extraño al cargar una imagen a 64 bits

Error extraño al cargar una imagen a 64 bits

Postby José Vicente Beltrán » Tue Jan 05, 2021 3:15 pm

Hola a todos, estoy compilando a 64 bits una aplicación 'de toda la vida' que va muy bien a 32 bits y al cargar una imagen, me genera el siguiente error en ejecución, que no se como tratar:
Code: Select all  Expand view
Error description: Error BASE/42  Scope violation (protected): TXIMAGE:LOADIMAGE
 

El codigo donde se genera el error es el siguiente:
Code: Select all  Expand view
function mirasifoto(nNumero)
local aFotos := { ".BMP", ".DIB", ".GIF", ".JPG", ".PCX", ".RLE", ".TGA" }
local i, nFor
default oImage:= NIL

    aVariasFotos:= {}
    lFoto := .f.

    if !empty( xRutaFoto )
        for i = 1 to LEN(aFotos)
            for nFor = 1 to 9                       // maximo numero de fotos por entrada
                xFoto :=xRutaFoto+"\"+ALLTRIM(STR(nNumero, 10))+"_"+STR(nFor, 1)+aFotos[i]

                if FILE( xFoto )
                    lFoto := .t.
                    AADD( aVariasFotos, xFoto )
                endif
            next nFor
        next

        if !lFoto
            AADD( aVariasFotos, xRutaFoto+"
\SinFoto.jpg" )
            lFoto:= .f.
        endif

    else
        AADD( aVariasFotos, xRutaFoto+"
\SinFoto.jpg")
        lFoto:= .f.
    endif

    xFoto := aVariasFotos[1]
    #ifdef __64__   //isexe64()
        iif( oImage <> NIL, oImage:LoadImage(xFoto), )
    #else
        iif( oImage <> NIL, oImage:LoadBmp(xFoto),)
    #endif

return nil

He de decir que la aplicación funciona correctamente hasta que llega al código mencionado.
La versión de FW64 es de mayo 2020.
Si alguien puede darme una idea de como solucionar el problema.... Infinitas gracias :shock:
User avatar
José Vicente Beltrán
 
Posts: 282
Joined: Mon Oct 10, 2005 8:55 am
Location: Algeciras, España

Re: Error extraño al cargar una imagen a 64 bits

Postby cnavarro » Tue Jan 05, 2021 3:28 pm

Has probado a utilizar el metodo SetSource() ? ( en ambas versiones 32/64 )

Code: Select all  Expand view

    oImage:SetSource( <uSource> )
 
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6500
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Error extraño al cargar una imagen a 64 bits

Postby José Vicente Beltrán » Tue Jan 05, 2021 3:46 pm

Muchas gracias Cristobal, ahora funciona perfecto. :shock:
User avatar
José Vicente Beltrán
 
Posts: 282
Joined: Mon Oct 10, 2005 8:55 am
Location: Algeciras, España

Re: Error extraño al cargar una imagen a 64 bits

Postby José Vicente Beltrán » Thu Jan 07, 2021 10:41 am

Pues ahora tengo otro problema al imprimir un report con logo
el codigo que uso es:
Code: Select all  Expand view
if File(cLogo)
        aI := oPrn:Cmtr2Pix( nMargenIZ, nMargenSU )
        aD := oPrn:Cmtr2Pix(nAncho, nAlto)
        #ifdef __64__   //isexe64()
           oImage := TXImage():New( aI[2], aI[1], aD[1], aD[2], {|| cLogo}, oPrn, .F., .F. )
           oImage:lBmpTransparent := .f.
        #else
          oImage:= TImage():Define( ,cLogo )                             // se crea el objeto imagen
          oPrn:SayImage(aI[2], aI[1], oImage, aD[1], aD[2])              // se imprime el objeto imagen
        #endif
        oImage:End()                                                   // se destruye el objeto imagen
endif 

Pero no funciona a 64b, presenta un mensaje de alerta 'error code:0 loading 0' y despues de insistir un poco se presenta el reporte pero NO HAY logo.
Socorro Cristobal! :oops:
User avatar
José Vicente Beltrán
 
Posts: 282
Joined: Mon Oct 10, 2005 8:55 am
Location: Algeciras, España

Re: Error extraño al cargar una imagen a 64 bits

Postby cnavarro » Thu Jan 07, 2021 11:01 am

Jose Vicente, tu objetivo es simplemente incluir una imagen dentro de tu informe, es así ?
Suponiendo que es eso, dime lo siguiente:
1.- El diseño del reporte lo estás haciendo con la clase TPRINTER o con la TREPORT ?
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6500
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Error extraño al cargar una imagen a 64 bits

Postby José Vicente Beltrán » Thu Jan 07, 2021 11:08 am

Gracias por contestar tan rapido, Cristobal.
En este caso es la clase TPrinter pero voy a necesitarlo igual para TReport :?
User avatar
José Vicente Beltrán
 
Posts: 282
Joined: Mon Oct 10, 2005 8:55 am
Location: Algeciras, España

Re: Error extraño al cargar una imagen a 64 bits

Postby cnavarro » Thu Jan 07, 2021 11:10 am

Jose Vicente, prueba utilizando los metodos de TPrinter
Code: Select all  Expand view

PrintImage( nRow, nCol, uImage, nWidth, nHeight, lStretch, nAlpha, lTransp, lGray )

o

SayBitmap(  nRow, nCol, cBitmap, nWidth, nHeight, nRaster, cUnits )
 


No necesitas generar un objeto T(X)Image, pásale directamente el fichero de imagen
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6500
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Error extraño al cargar una imagen a 64 bits

Postby José Vicente Beltrán » Thu Jan 07, 2021 1:07 pm

Pues como era de esperar, tu sugerencia funciona perfectamente y es mas simple de lo que yo estaba intentando hacer :shock:
Muchas gracias otra vez Cristobal.
User avatar
José Vicente Beltrán
 
Posts: 282
Joined: Mon Oct 10, 2005 8:55 am
Location: Algeciras, España


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 27 guests