SHADOW EN TIT DE COLS - PEQUEÑO APORTE
Posted: Wed Jun 27, 2012 2:49 am
Hola amigos del Foro. Para aquellos que gusten de usar sombreados (cualquier color) los Titulos de columnas en oReport, aquí les dejo este pequeño aporte.
CLASS TReport
En METHOD NEW()
EN METHOD END()
//Despues de estas lineas que aparecen dos veces.
if ::oShdBrush != nil
::oShdBrush:end()
endif
EN METHOD COLTITLE()
//Despues de esta linea...
::nRow := ::nTitleRow
Despues del Method ColTitle() //Basado en el Method Shadow de esta misma classe)
Espero les sea de alguna utilidad.
Saludos.
CLASS TReport
- Code: Select all Expand view
- DATA lColTitleShadow, nColTitleClrShadow, oColTitleShdBrush //FranciscoA 26/06/2012
METHOD ShadowColTitle( nHeight ) //FranciscoA 26/06/2012
En METHOD NEW()
- Code: Select all Expand view
- ::lColTitleShadow := .f. //FranciscoA 26/06/2012
::nColTitleClrShadow := 15657706 //FranciscoA 26/06/2012
EN METHOD END()
//Despues de estas lineas que aparecen dos veces.
if ::oShdBrush != nil
::oShdBrush:end()
endif
- Code: Select all Expand view
- if ::oColTitleShdBrush != nil //FranciscoA 26/06/2012
::oColTitleShdBrush:End()
endif
EN METHOD COLTITLE()
//Despues de esta linea...
::nRow := ::nTitleRow
- Code: Select all Expand view
- ::ShadowColTitle( ::nStdLineHeight * ::nMaxTitle ) //FranciscoA 26/06/2012
Despues del Method ColTitle() //Basado en el Method Shadow de esta misma classe)
- Code: Select all Expand view
- //-----------------------------------------//FranciscoA 26/06/2012
METHOD ShadowColTitle( nHeight ) CLASS TReport
local nHeightAdjust
local nFor, nCols, nGrid
if ! ::lColTitleShadow
return nil
endif
nCols := Len( ::aColumns )
if ::oColTitleShdBrush == nil
DEFINE BRUSH ::oColTitleShdBrush COLOR ::nColTitleClrShadow
endif
for nfor := 1 to nCols
if ::aColumns[ nFor ]:lGrid
nGrid := ::aPen[ ::aColumns[ nFor ]:nPen ]:nWidth * 2
else
nGrid := 0
endif
nHeightAdjust := Int( ::oPenHorz:nWidth*5)
SetbkMode( ::oDevice:hDCOut, 1 )
::oDevice:FillRect( { ::nRow + nHeightAdjust,;
::aCols[ nFor ] - nGrid,;
::nRow + nHeight + nHeightAdjust*3 ,;
::aCols[ nFor ] + ::aColumns[ nFor ]:nWidth + nGrid },;
::oColTitleShdBrush )
next
return nil
Espero les sea de alguna utilidad.
Saludos.