Conforme a lo prometido, aquí les dejo un ejemplo funcional que muestra como cambiar el color a Header y Footer de una sola columna en xBrowse.
Espero lo disfruten.
El color cambia cuando se hace lo siguiene:
1 - Cambiar de columna con teclas direccionales
2 - Click en header
3 - Click en footer
4 - Click en los datos
El cursor de los datos se posiciona automaticamente en la columna correspondiente.
La dbf usada, CLIENTES, se encuentra en samples.
English:
Hello forum friends .
As promised , here are a functional example that shows how to change the color to Header and Footer single column in xBrowse .
I hope you enjoy .
The color changes when you do the following :
1 - Change column with arrow keys
2 - Click on header
3 - Click on footer
4 - Click on data
The data cursor is automatically positioned in the appropriate column .
The dbf used , CLIENTES, found in samples.
- Code: Select all Expand view
- #include "fivewin.ch"
#include "xbrowse.ch"
REQUEST DBFCDX
//----------------------------------------------------------------------------//
function Main()
local oDlg, oBrw, oFont, cAlias
local oOldCol
USE CLIENTES VIA "DBFCDX"
cAlias := Alias()
GO TOP
DEFINE FONT oFont NAME "TAHOMA" SIZE 0,-14
DEFINE DIALOG oDlg SIZE 1100,600 PIXEL FONT oFont
@ 10,10 XBROWSE oBrw SIZE -10,-10 PIXEL OF oDlg ;
DATASOURCE cAlias ;
AUTOCOLS ;
AUTOSORT CELL LINES FOOTERS NOBORDER
WITH OBJECT oBrw
:lColChangeNotify := .t.
:CreateFromCode()
END
oOldCol := oBrw:aCols[oBrw:nColSel]
oOldCol:bClrGrad := bGradColor()
AEval(oBrw:aCols,{|o| o:bLClickFooter := o:bLClickHeader := {|nRow,nCol,nFlags,oCol| ChgClrHeadFoot(oCol,@oOldCol,oBrw,nCol) } })
oBrw:bChange:={|oCol| oCol:=oBrw:SelectedCol(),ChgClrHeadFoot(oCol,@oOldCol,oBrw,nil) }
ACTIVATE DIALOG oDlg CENTERED
oFont:End()
CLOSE
return nil
//---------------------------------// Change Header/footer color for one xBrowse's column only
Function ChgClrHeadFoot(oCol,oOldCol,oBrw, nCol)
if( !oCol == oOldCol ,;
( oOldCol:bClrGrad := oBrw:bClrGrad ,;
oCol:bClrGrad := bGradColor(),;
oOldCol := oCol,;
if( nCol != nil, oBrw:SelectCol(oBrw:MouseColPos(nCol)), nil ),;
oBrw:Refresh() ;
), )
Return nil
//----------------------------------
Function bGradColor()
local bClrGrad := { | lInvert | If( lInvert, ;
{ { 1/3, nRGB( 252, 232, 171 ), nRGB( 248, 195, 34 ) }, ;
{ 2/3, nRGB( 248, 195, 34 ), nRGB( 252, 232, 171 ) } ;
}, ;
{ { 1/3, nRGB( 248, 195, 34 ), nRGB( 252, 232, 171 ) }, ;
{ 2/3, nRGB( 252, 232, 171 ), nRGB( 248, 195, 34 ) } ;
} ) }
Return bClrGrad
Saludos.