Page 1 of 1
RIBBON con imagenes PNG (SOLUCIONADO)
Posted: Fri Apr 26, 2013 12:38 pm
by Patricio Avalos Aguirre
Estimados
Es posible que los botones de RIBON pueda usar imagen PNG
ya que son mas vistosos actualmente los paso a bmp
Re: RIBBON con imagenes PNG
Posted: Fri Apr 26, 2013 1:02 pm
by cnavarro
Buenas tardes
En la asignacion de la imagen puedes utilizar una funcion como la siguiente:
Code: Select all
Function CargaImgBtt( cFile , oButton )
Local lSw := .F.
Local cExt := ""
if !empty( cFile )
cExt := Right( Upper( cFile ), 3 )
if cExt = "BMP"
if !empty( oButton )
//? cFile
oButton:LoadBitmaps( cFile )
lSw := .T.
endif
else
if !empty( oButton )
oButton:hBitmap1 := FWOpenPngFile( cFile )
lSw := .T.
endif
endif
if lSw
oButton:HasAlpha( oButton:hBitmap1, BTN_UP )
oButton:Refresh()
endif
endif
Return lSw
No recuerdo donde la vi, pero yo la uso para cualquier tipo de button
Un saludo
Re: RIBBON con imagenes PNG
Posted: Fri Apr 26, 2013 2:50 pm
by Patricio Avalos Aguirre
Hola cNavarro
muchas gracias por tu respuesta
modifique la clase y funciona muy bien
aqui dejo la modificacion
Code: Select all
METHOD LoadBitmaps( cName ) CLASS TRBtn
local aBmpPal
if ! Empty( cName )
if ! File( cName )
aBmpPal = PalBmpLoad( cName )
::hBitmap1 = aBmpPal[ 1 ]
::hPalette1 = aBmpPal[ 2 ]
::HasAlpha( ::hBitmap1 )
else
::cName = cName
if upper(right(cName,3))="PNG"
::hBitmap1 = FWOpenPngFile( cName )
::hPalette1 = 0
::HasAlpha( ::hBitmap1 )
else
aBmpPal = PalBmpRead( ::GetDC(), cName )
::hBitmap1 = aBmpPal[ 1 ]
::hPalette1 = aBmpPal[ 2 ]
::ReleaseDC()
endif
endif
endif
if ! Empty( ::hBitmap1 )
PalBmpNew( ::hWnd, ::hBitmap1, ::hPalette1 )
endif
return nil
Re: RIBBON con imagenes PNG (SOLUCIONADO)
Posted: Sat Apr 27, 2013 7:33 am
by DARWIN UZCATEGUI
Saludos falta colocar una linea
aquí anexo la clase con la linea modificada
// en else de bmp ::HasAlpha( ::hBitmap1 ) // falta esta lineas
METHOD LoadBitmaps( cName ) CLASS TRBtn
local aBmpPal
if ! Empty( cName )
if ! File( cName )
aBmpPal = PalBmpLoad( cName )
::hBitmap1 = aBmpPal[ 1 ]
::hPalette1 = aBmpPal[ 2 ]
::HasAlpha( ::hBitmap1 )
else
::cName = cName
if upper(right(cName,3))="PNG"
::hBitmap1 = FWOpenPngFile( cName )
::hPalette1 = 0
::HasAlpha( ::hBitmap1 )
else
aBmpPal = PalBmpRead( ::GetDC(), cName )
::hBitmap1 = aBmpPal[ 1 ]
::hPalette1 = aBmpPal[ 2 ]
::HasAlpha( ::hBitmap1 ) // falta esta lineas
::ReleaseDC()
endif
endif
endif
if ! Empty( ::hBitmap1 )
PalBmpNew( ::hWnd, ::hBitmap1, ::hPalette1 )
endif
return nil
Re: RIBBON con imagenes PNG (SOLUCIONADO)
Posted: Sat Apr 27, 2013 7:48 am
by DARWIN UZCATEGUI
Con la linea.
Uploaded with
ImageShack.us
sin la instrucción .. la imagen se altera (bmp)
Uploaded with
ImageShack.us
Re: RIBBON con imagenes PNG (SOLUCIONADO)
Posted: Sat Apr 27, 2013 1:23 pm
by Patricio Avalos Aguirre
Hola Darwin
correcta la observacion
gracias..!!
Re: RIBBON con imagenes PNG (SOLUCIONADO)
Posted: Sat Apr 27, 2013 1:40 pm
by Antonio Linares
Muy buena mejora, gracias a todos!
Re: RIBBON con imagenes PNG (SOLUCIONADO)
Posted: Sat Apr 27, 2013 3:11 pm
by joseluisysturiz
Que buen aporte y cambio, tambien funciona si la imagen esta en recurso.? gracias, saludos...