FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Error extraño al cargar una imagen a 64 bits
Posts: 282
Joined: Mon Oct 10, 2005 08:55 AM
Error extraño al cargar una imagen a 64 bits
Posted: Tue Jan 05, 2021 03: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 (fw): Select all Collapse
Error description: Error BASE/42  Scope violation (protected): TXIMAGE:LOADIMAGE

El codigo donde se genera el error es el siguiente:
Code (fw): Select all Collapse
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 :-)
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: Error extraño al cargar una imagen a 64 bits
Posted: Tue Jan 05, 2021 03:28 PM
Has probado a utilizar el metodo SetSource() ? ( en ambas versiones 32/64 )

Code (fw): Select all Collapse
    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
Posts: 282
Joined: Mon Oct 10, 2005 08:55 AM
Re: Error extraño al cargar una imagen a 64 bits
Posted: Tue Jan 05, 2021 03:46 PM

Muchas gracias Cristobal, ahora funciona perfecto. :shock:

Posts: 282
Joined: Mon Oct 10, 2005 08:55 AM
Re: Error extraño al cargar una imagen a 64 bits
Posted: Thu Jan 07, 2021 10:41 AM
Pues ahora tengo otro problema al imprimir un report con logo
el codigo que uso es:
Code (fw): Select all Collapse
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! :-)
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: Error extraño al cargar una imagen a 64 bits
Posted: 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
Posts: 282
Joined: Mon Oct 10, 2005 08:55 AM
Re: Error extraño al cargar una imagen a 64 bits
Posted: 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 :?

Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: Error extraño al cargar una imagen a 64 bits
Posted: Thu Jan 07, 2021 11:10 AM
Jose Vicente, prueba utilizando los metodos de TPrinter
Code (fw): Select all Collapse
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
Posts: 282
Joined: Mon Oct 10, 2005 08:55 AM
Re: Error extraño al cargar una imagen a 64 bits
Posted: Thu Jan 07, 2021 01: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.

Continue the discussion