Page 1 of 1

Error clase TIMAGE

Posted: Tue Aug 11, 2009 4:28 pm
by ermatica
Hola a todos,

Estoy empezando a usar la clase TImage que viene con FH ver 8.02,

El código es el siguiente:

Code: Select all

   REDEFINE IMAGE oFotoEmp ID 400 OF oDlg_Empleado FILE ( mC20 ) SCROLL UPDATE ;
                 WHEN lNew_Empleado .or. lEdit_Empleado

   REDEFINE BUTTON oBtnFindFotoEmp ID 300 OF oDlg_Empleado  UPDATE;  //buscar Foto Empleado
        ACTION ( FFindFotoEmp(oFotoEmp),oDlg_Empleado:Update() )
   oBtnFindFotoEmp:cTooltip:="Buscar Imagen  Empleado..."
 
y el de la funcion:

Code: Select all

   Function FFindFotoEmp(oFotoEmp)
   local gcFile := cGetFile( "Bitmap (*.bmp)| *.bmp|" +         ;
                             "DIB   (*.dib)| *.dib|" +          ;
                             "PCX   (*.pcx)| *.pcx|"  +         ;
                             "JPEG  (*.jpg)| *.jpg|" +          ;
                             "GIF   (*.gif)| *.gif|"  +         ;
                             "TARGA (*.tga)| *.tga|" +          ;
                             "RLE   (*.rle)| *.rle|" +          ;
                             "All Files (*.*)| *.*"             ;
                            ,"Please select a image file", 4 )
  mC20:=gcFile
  oFotoEmp:Reload( , mC20 )
  oFotoEmp:Refresh()
Return nil
 

La primera vez que abro la ficha y selecciono las imagenes las cargas y las visualiza, pero al guardar la ficha, si abro de nuevo la fucha genera el siguiente error:

Code: Select all

   Error occurred at: 11/08/2009, 17:07:30
   Error description: Error BASE/1004  Class: 'NIL' has no exported method: SETRANGE
   Args:
     [   1] = U   
     [   2] = N   0
     [   3] = N   0

Alguna idea de por qué sucede esto.

Un cordial saludo
Ernesto

Re: Error clase TIMAGE

Posted: Tue Aug 11, 2009 6:50 pm
by jbrita
Amigo prueba asi

REDEFINE IMAGE oBmp1 FILENAME cBitmap1 ADJUST ID 114 OF oFld:aDialogs[ 4 ] SCROLL UPDATE

REDEFINE BUTTON ID 115 OF oFld:aDialogs[ 4 ];
ACTION( Fot_Jug:= cGetFile32("JPEG (*.jpg) | *.jpg | BITMAP (*bmp)| *.bmp", "Seleccionar Imagen" ), ;
cBitmap1 := AllTrim( Fot_jug), oBmp1:LoadBmp( cBitmap1 ), oBmp1:Refresh(),oDlg:Update() )

REDEFINE GET cBitmap1 ID 116 OF oFld:aDialogs[ 4 ] ON CHANGE( cBitmap1 := AllTrim( Fot_Jug ),;
oBmp1:Load( cBitmap1 ), oBmp1:Refresh() ) UPDATE

REDEFINE BTNBMP RESOURCE "ajustar" ID 1001 OF oFld:aDialogs[ 4 ] NOBORDER ;
TOOLTIP OemToAnsi( "Ajustar Imagen" ) ACTION AjustaZoom( oBmp1 ,"S",oSay )


Function AjustaZoom(oBmp,cAccion,oSay)
local nZoom:=oBmp:Zoom()

do case
case cAccion == "S"
oBmp:lStretch := !oBmp:lStretch
oBmp:ScrollAdjust()
oBmp:Refresh( .t. )
case cAccion == "R"
if nZoom*10>1
oBmp:lStretch := .f.
nZoom:=nZoom-(0.10)
oBmp:Zoom(nZoom)
oBmp:Refresh()
oBmp:ScrollAdjust()
endif
case cAccion == "A"
oBmp:lStretch := .f.
nZoom:=nZoom+0.10
oBmp:Zoom(nZoom)
oBmp:Refresh()
oBmp:ScrollAdjust()
endcase
return NIL


Saludos

Re: Error clase TIMAGE

Posted: Wed Aug 12, 2009 10:44 am
by ermatica
Muchas gracias, funcionó perfectamente.

De todas formas, una cosa que si he detectato y que sigue dando el error es con imagenes creadas o modificadas con el Paint de Windows.