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.....
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.
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í:
Espero que te sirva.
Un saludo
JLL