FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Cambiar Bmp en header de cols xBrowse SOLUCIONADO
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Cambiar Bmp en header de cols xBrowse SOLUCIONADO
Posted: Thu Sep 06, 2012 02:57 AM
Hola amigos, pues como dice el titulo. Cómo se hace para cambiar el pequeño bitmap que presenta el header de las columnas, que cuando se clicka se cambia orden (indice) de los registros?. Me explico: (USO FWXH-12.04)

Tengo el siguiente codigo que trabaja muy bien

Code (fw): Select all Collapse
   REDEFINE XBROWSE oBrw ID 181 OF oDlg ;
      COLUMNS "Codigo","Descrip" ;
      ALIAS cAlias CELL LINES FOOTERS  //AUTOSORT // FASTEDIT

   WITH OBJECT oBrw
      :nMarqueeStyle := MARQSTYLE_HIGHLROW   //ilumina toda la linea
     ...
      :Codigo:cSortOrder  := "MAECODI" 
      :descrip:cSortOrder := "MAENOMB" 
 
    //Si quiero cambiar los bmp de los headers involucrados,  como sigue, no hace nada.
   //Si le omito los :cSortOrder, si los presenta y trabajan bien, pero se desactivan los indices.
      :Codigo:AddResource( "lupa" )
      :Codigo:nHeadBmpNo    := 1
      :Codigo:nHeadBmpAlign := AL_RIGHT
      :Codigo:bLClickHeader := { | nMRow, nMCol, nFlags, Self | ;
                                                 oBrw:codigo:nHeadBmpNo := 1, oBrw:descrip:nHeadBmpNo := 0, oBrw:Refresh() }

      :descrip:AddResource( "lupa" )
      :descrip:nHeadBmpNo    := 0
      :descrip:nHeadBmpAlign := AL_RIGHT
      :descrip:bLClickHeader := { |  nMRow, nMCol, nFlags, Self | ;
                                                  oBrw:descrip:nHeadBmpNo := 1, oBrw:codigo:nHeadBmpNo := 0, oBrw:Refresh() }


   //Si le omito los :cSortOrder, y lo hago asi, si los presenta y trabajan bien, pero se desactivan los "ASC","DESC"
      :Codigo:AddResource( "lupa" )
      :Codigo:nHeadBmpNo    := 1
      :Codigo:nHeadBmpAlign := AL_RIGHT
      :Codigo:bLClickHeader := { | nMRow, nMCol, nFlags, Self | ;
                                   (cAlias)->(OrdSetFocus("MAECODI")) ,oBrw:codigo:nHeadBmpNo := 1, oBrw:descrip:nHeadBmpNo := 0, oBrw:Refresh() }

      :descrip:AddResource( "lupa" )
      :descrip:nHeadBmpNo    := 0
      :descrip:nHeadBmpAlign := AL_RIGHT
      :descrip:bLClickHeader := { |  nMRow, nMCol, nFlags, Self | ;
                                    (cAlias)->(OrdSetFocus("MAENOMB")), oBrw:descrip:nHeadBmpNo := 1, oBrw:codigo:nHeadBmpNo := 0, oBrw:Refresh() }

      :descrip:nWidth := 400    // ;   :cHeader := "Descripcion del Producto"
   END


Lo unico que quiero es cambiar los pequeñísimos bmp por otros personalizados, sin afectar para nada el comportamiento de xbrowse en cuanto a ordenamiento. ¿Se puede? ¿Alguien ya lo ha hecho? Si es así, ¿podría compartir un pequeño ejemplo?

Gracias de antemano.
Saludos.
Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 1789
Joined: Tue Oct 11, 2005 05:01 PM
Re: Cambiar Bmp en header de cols xBrowse
Posted: Thu Sep 06, 2012 04:36 AM
Code (fw): Select all Collapse
...
   EXTEND CLASS TXBROWSE   WITH METHOD SetMyBmpSort
...
redefine xbrowse oBrw ...
...
oBrw:SetMyBmpSort()
...

/*-------------------------------------------------------------------------------------------------*/

FUNCTION SetMyBmpSort()
   LOCAL Self := HB_QSelf()
   LOCAL oBmp, hBmp

   ::aSortBmp := {}

   DEFINE BITMAP oBmp NAME "BMS_ARROWDOWN"
   hBmp  := oBmp:hBitmap
   AAdd( ::aSortBmp, { hBmp, 0, nBmpWidth( hBmp ), nBmpHeight( hBmp ), NIL, FALSE } )

   DEFINE BITMAP oBmp NAME "BMS_ARROWUP"
   hBmp  := oBmp:hBitmap
   AAdd( ::aSortBmp, { hBmp, 0, nBmpWidth( hBmp ), nBmpHeight( hBmp ), NIL, FALSE } )

RETURN NIL
Salu2

Carlos Vargas

Desde Managua, Nicaragua (CA)
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Cambiar Bmp en header de cols xBrowse
Posted: Thu Sep 06, 2012 12:28 PM
Carlos, muchas gracias.
Estuve revisando la classe txbrowse y no pude encontrar el array aSortBmp. Estaba ciego. ¿los años?.
Saludos.

PD: Tu ejemplo me dió la pauta a seguir, y quedó asi:
Code (fw): Select all Collapse
//-------------------
Function FWBmpAsc()
local hBmp:=LoadBitMap(GetResources(),"lupa")
return hBmp
//------------------
Function FWBmpDes()
local hBmp:=LoadBitMap(GetResources(),"buscar")
return hBmp
Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql

Continue the discussion