Page 1 of 1

Fichero BMP/JPG en xbrowse

Posted: Wed Sep 28, 2011 1:35 am
by jll-fwh
Hola a todos;

Alguien podria hacerme memoria de como se carga un fichero BMP/JPG, etc en una celda del xbrowse? pero no usando array, es decir, en la base de datos tener un campo con el path y el nombre del fichero y que en cada registro muestre la fotografia.

Un saludo
JLL

Re: Fichero BMP/JPG en xbrowse

Posted: Wed Sep 28, 2011 1:55 am
by jll-fwh
Se me ha olvidado comentar que necesito implementarlo en la version de FWH812.

Un saludo
JLL

Re: Fichero BMP/JPG en xbrowse

Posted: Wed Sep 28, 2011 2:18 am
by Bayron
Hola jll,

Crea una imagen:

Code: Select all

REDEFINE BITMAP oImagen FILE Dbf->NombreFoto ID 4007 OF oDLG ADJUST UPDATE
en el Browse:

Code: Select all

ON CHANGE (oImagen:LoadBmp(Dbf->NombreFoto)
 

Re: Fichero BMP/JPG en xbrowse

Posted: Wed Sep 28, 2011 10:57 pm
by jll-fwh
Hola Bayron:

Igual no me he explicado bien. Lo que necesito es insertar una imagen en cada fila ( celda ) del xBrowse. Que por cada fila del xbrowse ademas de poder insertar por ejemplo los datos del articulo, pueda insertar la foto del producto. Es algo muy simple y tipico, pero en la version FWH812 que es donde necesito aplicarlo no funciona ya que la imagen debo de cargarla por cada fila del xbrowse del disco NO DE RECURSO.

Por ejemplo:

1.- Desde recurso se hace asi y funciona:

Code: Select all

        oCol:AddResource( "PuntoVerde" )
                 oCol:cHeader     := "Imagen"
                 oCol:bBmpData  := { || 1 }
                oCol:nWidth       := 25
 
2.- Cargar la imagen desde el disco asi, PERO NO FUNCIONA:

Code: Select all

        oCol:AddBmpFile( "c:\programa\imagen\PuntoVerde.BMP" )
                 oCol:cHeader     := "Imagen"
                 oCol:bBmpData  := { || 1 }
                oCol:nWidth       := 25
 
Me he leido la clase, pero no logro averiguar porque no se ve, porque cargarla si la carga.

Estoy usando FWH812.

Alguna idea?

Un saludo
JLL

Re: Fichero BMP/JPG en xbrowse

Posted: Thu Sep 29, 2011 12:58 am
by FranciscoA
Hola, prueba asi:

oCol:nWidth := 25
oCol:nEditType := TYPE_IMAGE
oCol:lBmpStretch := .t.
oCol:lBmpTransparent := .T.
oCol:bStrImage := {|| "c:\programa\imagen\PuntoVerde.BMP" }
oCol:nDataBmpAlign := AL_CENTER
oCol:cHeader:="Imagen "

Saludos.

Re: Fichero BMP/JPG en xbrowse

Posted: Thu Sep 29, 2011 6:52 am
by jll-fwh
Hola Francisco:

Ese codigo sirve para versiones posteriores a la version FWH812, pero no para esta, ya que algunas DATAS no existen en mi version, como por ejemplo bStrImage, lBmpTransparent.

Me acabo de dar cuenta que con el codigo que puse, con imagenes de 16x16 si funciona, pero en cambio si cargo una imagen de mas tamaño y calidad entonces no.

Alguna idea?

Un saludo
JLL

Re: Fichero BMP/JPG en xbrowse

Posted: Thu Sep 29, 2011 11:57 pm
by jll-fwh
Buenas;

Estoy compilando esto con la nueva version FWH1109.

Sobre como insertar en cada fila de un xbrowse una imagen diferente segun el path y nombre del fichero que este grabado en una BD.

De momento lo estoy probando con una sola imagen y directamente le indico yo el path y el fichero. Pero ahora necesito saber como ajustar la imagen al tamaño de la celda, ya que si una imagen es de 500x500 pixel al cargarla en el xbrowse, lo aplica al tamaño real de la imagen, y lo que necesito es que se cargue al tamaño de la celda, por ejemplo 50x50pixel.

Alguien sabe como?

Code: Select all

               oCol                 := oGrid:AddCol()
               oCol:AddBmpFile( "c:\jll1109\jcriamano\images\naomi.bmp"  )
               oCol:bBmpData        := { || 1 }
               oCol:nWidth          := 100
               oCol:lBmpStretch     := .T.
               oCol:lBmpTransparent := .T.
               oCol:cHeader         := "Imagen"
               oCol:nDataBmpAlign   := AL_CENTER
 
Un saludo
JLL

Re: Fichero BMP/JPG en xbrowse

Posted: Fri Sep 30, 2011 12:01 am
by jll-fwh
Esta es una imagen de como queda ahora.....

Image

La imagen quiero que se vea 50x50pixel.

Un saludo
JLL

Re: Fichero BMP/JPG en xbrowse

Posted: Thu Oct 06, 2011 12:08 am
by jll-fwh
Se me olvido comentar que ya lo solucione, en la ultima version FWH1109 pues han cambiado algunas cosas, una vez leida la clase para ver que diferencias tenia, ya tengo aplicado una función para este fin.

Cuando pase la función a clase la publicare.

La estoy haciendo con varios aspectos, entre ellos estilo Facebook.

Aquí dejo una imagen para ver más o menos como esta quedando.
Image

Un saludo
JLL

Re: Fichero BMP/JPG en xbrowse

Posted: Thu Mar 08, 2012 1:12 pm
by Sdo
Ola JLL !!!

Estou necessitando colocar uma imagem atraves do banco de dados assim como o seu, porém estou com dificuldades. Vc poderia me dar um exemplo de como conseguiu solucionar este seu tópico???

FWH1112

Grato !!!

Sergio...

Re: Fichero BMP/JPG en xbrowse

Posted: Thu Mar 08, 2012 1:39 pm
by FranciscoA
Hola Sergio, en samples tienes este ejemplo: xbrImag1.prg
Saludos

Re: Fichero BMP/JPG en xbrowse

Posted: Thu Mar 08, 2012 2:01 pm
by Sdo
Ola Francisco,

Desculpe, este exemplo tinha me passado batido. Vou dar uma analisada nele.

Obrigado pela sua atençao e um abraço.

Sergio....

Re: Fichero BMP/JPG en xbrowse

Posted: Mon Mar 26, 2012 10:19 pm
by jll-fwh
Hola SDO:

Aqui te dejo como se hace:

En la declaración del xBrowse:

Code: Select all

           oCol                 := oGrid:AddCol()
           oCol:nWidth          := 45
           oCol:nEditType       := TYPE_IMAGE
           oCol:nDataBmpAlign   := AL_CENTER
           oCol:lBmpStretch     := .T.
           oCol:lBmpTransparent := .T.
           oCol:bStrImage       := {|| Aves->Foto }

           oCol               := oGrid:AddCol()
           oCol:nDataStrAlign := 3
           oCol:nHeadStrAlign := 3
           oCol:nWidth        := 205
           oCol:cHeader       := aTitles[1]
           oGrid:aCols[2]:bPaintText  := { |oCol, hDC, cText,;
                                            aCoord, aColors, lHighlight | DrawText( oCol  ,;
                                                                          hDC             ,;
                                                                          Eval(bDatos[1]) +;
                                                                          CRLF+aTitles[2] +;
                                                                          Eval( bDatos[2]),;
                                                                          aCoord          ,;
                                                                          lHighlight      ,;
                                                                          oFontA          ,;
                                                                          oFontB          ,;
                                                                          CLR_BLACK       ,;
                                                                          CLR_GRAY        )}

 
Y la función que pinta:

Code: Select all

/*-----------------------------------------------------------------------------------------------------*/
STATIC Function DrawText( oCol, hDC, cText, aCoord, lHighlight, oBold, oItalic, nClrText1, nClrText2 )
/*-----------------------------------------------------------------------------------------------------*/

   LOCAL cLine, nFontHt, nAt, nOld

   LOCAL nTop     := aCoord[ 1 ]
   LOCAL nLeft    := aCoord[ 2 ]
   LOCAL nBottom  := aCoord[ 3 ]
   LOCAL nRight   := aCoord[ 4 ]
   LOCAL nRow     := nTop
   LOCAL nOldMode := SetBkMode( hDC, 1 )

   nAt := AT( CRLF, cText )
   IF nAt > 0
      cLine    := Left( cText, nAt - 1  )
      oBold:Activate( hDC )
      nFontHt  := GetTextHeight( oCol:oBrw:hWnd, hDC )
      nOld := SetTextColor( hDC, nClrText1 )
      DrawTextEx( hDC, cLine, { nRow, nLeft, nRow + nFontHt + 4, nRight }, )
      SetTextColor( hDC, nOld )
      oBold:DeActivate( hDC )
      nRow  += nFontHt + 4
      cLine := SubStr( cText, nAt + 2 )
   ELSE
      cLine := cText
      nLeft += 5
   END

   oItalic:Activate( hDC )
   nOld := SetTextColor( hDC, nClrText2 )
   DrawTextEx( hDC, cLine, { nRow, nLeft, nBottom, nRight }, )

   IF nOld != NIL
      SetTextColor( hDC, nOld )
   END

   oItalic:DeActivate( hDC )
   SetBkMode( hDC, nOldMode )

Return NIL

 
El resultado es algo así:

Image


Espero que te sirva.

Un saludo
JLL