Página 1 de 1

FUNÇÃO oTB:colorRect()

Enviado: 09 Out 2016 14:38
por Hasse
Boa tarde colegas.

Já um bom tempo de tentei compilar com o Harbour, e na época abandonei a intenção de migrar por um simples problema na função oTB:ColorRect() que eu uso muito no TBrowse().

Hoje baixe e instalei o Harbour 3.2 e problema ainda persiste. Desconfio que algo está errado. Vejam o código usado:

Código: Selecionar todos

cor              := "W /N , N/W , W+/B , N/W , W/R  , W/N, R/W, N/W, R/W, N/W"
oTB            := TBROWSEDB(03,00,22,79)
oTB:colorspec  := cor
...
...
...
   oTB:dehilite()
   IF FG = "0" .OR. (FG = "1" .AND. Q_COMP < 0) .OR. (FG="1" .AND. QUANT < 1)
      oTB:colorRect({oTB:RowPos,1,oTB:RowPos,oTB:ColCount}, {4,5} )
   ELSE
      oTB:colorRect({oTB:RowPos,1,oTB:RowPos,oTB:ColCount}, {2,3} )
   ENDIF
   oTB:hilite()
   oTB:RefreshCurrent()
Este código acima não alterna as cores da linha como acontece no xHarbour.

Há alguma solução para este comportamento ?

FUNÇÃO oTB:colorRect()

Enviado: 09 Out 2016 19:50
por janio
Comigo funciona!

Faço assim:

Código: Selecionar todos

oBrw:headsep   := chr (194) + chr (196) 
oBrw:ColSep    := chr( 179 )
oBrw:FootSep   := chr (193) + chr (196) 	
oBrw:colorspec := "N/W*,W+/B,N/w,N/W*+,g+*/ww+*"

...

oBrw:ForceStable()

While ( .t. )

       // para deixar selecionada toda a linha 
      oBrw:colorrect({oBrw:rowpos,1,oBrw:rowpos,oBrw:colCount},{Iif(OrdKeyNo()%2==0,1,3), 1}) // zebrado
      do While ( !oBrw:stabilize() ) ; Enddo
      oBrw:colorrect({oBrw:rowpos,1,oBrw:rowpos,oBrw:colCount},{2,2}) // esta com o cursor

     ...

FUNÇÃO oTB:colorRect()

Enviado: 15 Out 2016 16:25
por Hasse
Boa tarde Janio.

Correto no SET inicial

Mas se desejo trocar a cor por outra, em virtude de um detalhe especial ela não muda.

Veja no meu código IF / ELSE / ENDIF.