Page 1 of 1

Cambiar icono TDockPnel tiempo ejecución

PostPosted: Mon Feb 21, 2022 8:40 pm
by leandro
Buenas tardes para todos

En esta ocasión necesito poder cambiar algunos de los iconos que están en la cabecera del TDockPnel específicamente dos, los otros siempre van a ser fijos, las imágenes de momento las monto en el método SetImgsFiles(), pero quiero que al hacer clic en ocultar / mostrar se pueda cambiar el icono. Es posible?
Image
Code: Select all  Expand view

   oDock1  := TDockPnel():New( oWChCaCn )
   WITH OBJECT oDock1
      :SetHeightCaption( 50 )
      :SetCoors( { | o | 10 }, ;
                 { | o | 10 }, ;
                 { | o | Int( o:oWnd:nHeight  ) - 50 }, ;
                 { | o | Int( o:oWnd:nWidth / 2 ) - XEVal( o:nLeft, o ) } )
      :SetCaption( { | o | "Saldos Acumulados" } )
      :SetColors( CLR_WHITE, Rgb( 0,120,215 ) , Rgb( 88, 88, 88 ), CLR_HGRAY )
      :SetFont( oFont4 )
      :lLeftImgs   := .F.
      :SetBorderSize( 4 )
      :SetCtrlsPnel( { | o, nT, nL, nH, nW, oB | oB := fSaldos( o, nT, nL, nH, nW ) } )
      :SetImgsFiles( {  { oLamcla:cIcoBcBu, { | o | consaldocero() }, "Ocultar / Mostrar Con Saldo Cero" } ,;
                        { oLamcla:cIcoBcBr, { | o | ("") }, "Borrar " },;
                        { oLamcla:cIcoBcEd, { | o | eval(cbModi) }, "Modificar " },;
                        { oLamcla:cIcoBcAg, { | o | mantenimiento(0) }, "Agregar " } } )  
      :bRClicked   := { || MsgInfo( oDock1:oWnd:aControls[ 1 ]:ClassName() ) }
      :Activate()
   END
 

Re: Cambiar icono TDockPnel tiempo ejecución

PostPosted: Tue Feb 22, 2022 1:47 am
by cnavarro
Leandro

Code: Select all  Expand view


//----------------------------------------------------------------------------//
//
//----------------------------------------------------------------------------//

Function CreaDocks()

   oDock1  := TDockPnel():New( oWindow )
   WITH OBJECT oDock1
      :SetHeightCaption( 40 )
      :SetCoors( { | o | 10 }, { | o | 10 }, ;
                 { | o | Int( o:oWnd:nHeight / 2 ) + 54 }, ;
                 { | o | Int( o:oWnd:nWidth / 3 ) - XEVal( o:nLeft, o ) } )
      :SetCaption( { | o | "Title" } )
      :SetColors( METRO_RED, CLR_WHITE, Rgb( 88, 88, 88 ), CLR_HGRAY )
      :SetFont( oFont4 )
      :SetBorderSize( 1 )
      :SetSizeImgs( 48, 48, .F. )

      :SetImgsFiles( { { "..\bitmaps\32x32\notes.bmp", ;
                        { || oDock1:aBtnBmps[ 1 ]:SetImages( if( oDock1:lSelected, "..\bitmaps\32x32\notes.bmp", "\Fwh\bitmaps\32x32\checkbox.bmp" ) ), ;
                             oDock1:lSelected := !oDock1:lSelected }, "ToolTip" } } )

      :SetCtrlsPnel( { | o, nT, nL, nH, nW, oB | oB := Test1( o, nT, nL, nH, nW ) } )
      :bRClicked   := { || MsgInfo( oDock1:oWnd:aControls[ 1 ]:ClassName() ) }
      :Activate()
   END
 

Re: Cambiar icono TDockPnel tiempo ejecución

PostPosted: Tue Feb 22, 2022 10:42 am
by leandro
Excelente Cristo :D

Funciono la perfección, te molesto con otra cosilla que salió :oops:, es posible hacer lo mismo con el tooltip?

De antemano gracias

Re: Cambiar icono TDockPnel tiempo ejecución

PostPosted: Wed Feb 23, 2022 11:10 pm
by cnavarro
Si sabes como cambiar el tooltip a cualquier boton construído con Fw, entonces sabes como cambiarle el tooltip a estos botones, sólo has de saber como identificar esos objetos, y en mi ejemplo aparece cómo hacerlo:
oDock1:aBtnBmps[ 1 ]: