Error extraño al cargar una imagen a 64 bits

Post Reply
User avatar
José Vicente Beltrán
Posts: 279
Joined: Mon Oct 10, 2005 8:55 am
Location: Algeciras, España
Contact:

Error extraño al cargar una imagen a 64 bits

Post by José Vicente Beltrán »

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

Error description: Error BASE/42  Scope violation (protected): TXIMAGE:LOADIMAGE
 
El codigo donde se genera el error es el siguiente:

Code: Select all

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
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

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

Post by cnavarro »

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

Code: Select all

    oImage:SetSource( <uSource> )
 
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
User avatar
José Vicente Beltrán
Posts: 279
Joined: Mon Oct 10, 2005 8:55 am
Location: Algeciras, España
Contact:

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

Post by José Vicente Beltrán »

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

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

Post by José Vicente Beltrán »

Pues ahora tengo otro problema al imprimir un report con logo
el codigo que uso es:

Code: Select all

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
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

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

Post by cnavarro »

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 ?
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
User avatar
José Vicente Beltrán
Posts: 279
Joined: Mon Oct 10, 2005 8:55 am
Location: Algeciras, España
Contact:

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

Post by José Vicente Beltrán »

Gracias por contestar tan rapido, Cristobal.
En este caso es la clase TPrinter pero voy a necesitarlo igual para TReport :?
User avatar
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

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

Post by cnavarro »

Jose Vicente, prueba utilizando los metodos de TPrinter

Code: Select all

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
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
User avatar
José Vicente Beltrán
Posts: 279
Joined: Mon Oct 10, 2005 8:55 am
Location: Algeciras, España
Contact:

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

Post by José Vicente Beltrán »

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.
Post Reply