Página 1 de 1

Cor do tbrowse quando coluna fixa

Enviado: 18 Nov 2019 22:10
por JoséQuintas
Agora que reparei num detalhe do tbrowse:

Código: Selecionar todos

oBrowse:ColorRect( { oBrowse:RowPos, oBrowse:LeftVisible, oBrowse:RowPos, oBrowse:RightVisible }, { 3, 3 } )
Quando o tbrowse é normal, isso funciona sem problemas.
Mas quando fixamos colunas... isso não funciona para as colunas fixas.

Provavelmente a solução vai ser usar oBrowse:Freeze, quando este não for NIL ou zero... ainda não olhei o default.

Código: Selecionar todos

IF ! Empty( oBrowse:Freeze )
   oBrowse:ColorRect( { oBrowse:RowPos, 1, oBrowse:RowPos, oBrowse:Freeze }, { 3, 3 } )
ENDIF
oBrowse:ColorRect( { oBrowse:RowPos, oBrowse:LeftVisible, oBrowse:RowPos, oBrowse:RightVisible }, { 3, 3 } )
Alguém já tinha reparado nisso, e/ou sabe se é normal o comportamento?
Alguém tem Clipper pra fazer o teste, pra confirmar se é herança ou se é bug?

Cor do tbrowse quando coluna fixa

Enviado: 19 Nov 2019 11:06
por clodoaldomonteiro
Bom dia,

Tive problema com com a cor da linha em foco, quando congelava esta, daí usei uma função da GTWVW para que a linha fique demarcada com um box de linha pontilhada.

Código: Selecionar todos

IF NEXTKEY() = 0  //Inkey() == 0
   br_w:RefreshCurrent()
   DO WHILE ! br_w:Stabilize()
   ENDDO
   br_w:ColorRect( { br_w:RowPos, br_w:LeftVisible, br_w:RowPos, br_w:RightVisible }, { 5, 5 } ) // linha que está com o cursor
   br_w:ColorRect( { br_w:RowPos, br_w:ColPos, br_w:RowPos, br_w:ColPos }, { 2, 2 } ) // linha/coluna que está com o cursor
   wvw_DrawFocusRect( , br_w:RowPos+li_sup+1, br_w:nLeft, br_w:RowPos+li_sup+1, br_w:nRight ) // linha pontilhada que está com o cursor
ENDIF

Cor do tbrowse quando coluna fixa

Enviado: 19 Nov 2019 11:19
por JoséQuintas
Aquele que mostrei deu certo.

Supondo que congelou até a coluna 3, seria repintar da 1 até 3

Aqui repinta ou tudo, ou somente a parte "não congelada"

Código: Selecionar todos

oBrowse:ColorRect( { oBrowse:RowPos, oBrowse:LeftVisible, oBrowse:RowPos, oBrowse:RightVisible }, { 3, 3 } )
Aqui repinta da 1 até a congelada, que são as que não foram repintadas na rotina anterior

Código: Selecionar todos

IF ! Empty( oBrowse:Freeze )
   oBrowse:ColorRect( { oBrowse:RowPos, 1, oBrowse:RowPos, oBrowse:Freeze }, { 3, 3 } )
ENDIF