Replace SetHiliteColorCell() with the below code.
It is faster and prevents flicker.
Code: Select all
STATIC FUNCTION SetHiliteColorCell( oBrowse )
LOCAL i, j, oColumn, nColorFG, nColorBG
FOR j := 1 TO oBrowse:rowCount
FOR i := 1 TO oBrowse:colCount
oColumn := oBrowse:getColumn(i)
IF oBrowse:rowPos # j
oColumn:dataArea:getCellColor( j, @nColorFG, @nColorBG)
IF nColorFG # GRA_CLR_BLACK .OR. nColorBG # GRA_CLR_WHITE
oColumn:dataArea:setCellColor( j,GRA_CLR_BLACK,GRA_CLR_WHITE, .t. )
ENDIF
ELSE
IF oBrowse:colPos == i
oColumn:dataArea:setCellHiliteColor( oBrowse:rowPos,GRA_CLR_BLACK,GRA_CLR_CYAN, .t. )
ELSE
oColumn:dataArea:setCellColor( oBrowse:rowPos,GRA_CLR_BLACK,GRA_CLR_YELLOW, .t. )
ENDIF
ENDIF
NEXT
NEXT
RETURN nil