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.

Image

Uploaded with ImageShack.us

sin la instrucción .. la imagen se altera (bmp)
Image

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... :shock: