Página 2 de 2
Mudar as cores no tbrowse
Enviado: 15 Out 2017 10:15
por rubens
Bom dia...
Poderia postar um exemplo de como ficou, eu fiz aki mas vai pintando tudo conforme vou movendo o cursor pra baixo ele ainda permanece as linhas acima pintadas
Fladimir...
Não entendi bem o que não deu certo aí...
Aqui uso assim e funciona beleza...
Dentro do while
Código: Selecionar todos
DO WHILE ( !oTab:stabilize() )
ENDDO
oTab:colorRect({oTab:rowPos, oTab:freeze + 1, oTab:rowPos,oTab:colCount}, {2, 2})
oTAB:hilite()
Mudar as cores no tbrowse
Enviado: 15 Out 2017 22:47
por JoséQuintas
O segredo é a parte que mostrei, e que também foi mostrada depois.
Primeiro o tbrowse precisa estar estabilizado, o que significa totalmente "desenhado".
E nesse momento, pinta a linha atual.
Se detectar tecla antes disso e mover a posição, o tbrowse não vai saber aonde faltou "redesenhar".
Sygecom
Não veio aviso do seu post, só vi agora.
Vou fazer alguns testes, pra ver se isso vale em multithread.
Mudar as cores no tbrowse
Enviado: 16 Out 2017 02:16
por fladimir
Testei aki Rubens e não deu certo, fica pintando a tela...
Simplifiquei um pequeno exemplo (troque a tabela DBF por qualquer outra sua e altere os 4 campos respectivamente)
Código: Selecionar todos
Procedure tbrwcolor
Local TelAbcf:=SaveScreen(0,0,24,79), AREA:=ALIAS()
LOCAL oTbr := TBrowseDB( 03, 01, 21, 78 ), oTbc1, oTbc2, oTbc3, oTBC4
LOCAL aWst, lExt, nInd, nLin, nCol, nTbrLin, nTbrCol
Local nKey
LOCAL aFiles[1]
LOCAL nPos := 0
LOCAL Continua
set cursor off
set scoreboard off
use tabela alias tabela shared new
dbsetindex('tabela')
oTbc1 := TBColumnNew( "Descricao" , { || (left(alltrim(Tabela->MED_DES),19) + " " + upper(left(alltrim(Tabela->MED_APR),20))) } )
oTbc2 := TBColumnNew( "Laboratorio" , { || left(alltrim(Tabela->LAB_nom),12) } )
oTbc3 := TBColumnNew( "Principio Ativo", { || left(Tabela->Med_princi,25) } )
oTBC4 := TBColumnNew( "Pre‡o Ven" , { || If((Tabela->MED_fra17>0),transform(Tabela->Med_fra17,"@E 99,999.99"),transform(Tabela->Med_PCO17,"@E 99,999.99")) } )
oTbc1:Width := 35
oTbr:colSep := " ³ "
oTbr:headSep := "Ä"
oTbr:addColumn( oTbc1 )
oTbr:addColumn( oTbc2 )
oTbr:addColumn( oTbc3 )
oTbr:addColumn( oTBC4 )
oTbr:Freeze := 2
@0,0 clear to 24,79
Abrebox(00,00,24,79,frame2, vcn,,vcr, .T.)
lExt := .F.
oTbr:COLORSPEC:="W/B,B/W,N/W,W/N,R/W,W+/R,W/G,R+/B" // Sugerido Rubens
Continua=" "
WHILE !lExt
WHILE !oTbr:stabilize() ; END
nKey:= inkey(0)
/* Trecho sugerido Rubens */
oTbr:colorRect( { oTbr:rowPos, oTbr:freeze + 1, oTbr:rowPos, oTbr:colCount }, {2,2})
oTbr:hilite()
*--
if nKey == K_ESC
oTbr:refreshall()
oTbr:gotop() // no arquivo indexado
lExt := .T.
ElseIf nKey == K_DOWN ; oTbr:down()
ElseIf nKey == K_UP ; oTbr:up()
ElseIf nKey == K_PGDN ; oTbr:pageDown()
ElseIf nKey == K_PGUP ; oTbr:pageUp()
ElseIf nKey == K_CTRL_PGUP ; oTbr:goTop()
ElseIf nKey == K_CTRL_PGDN ; oTbr:goBottom()
ElseIf nKey == K_RIGHT ; oTbr:right()
ElseIf nKey == K_LEFT ; oTbr:left()
ElseIf nKey == K_HOME ; oTbr:home()
ElseIf nKey == K_END ; oTbr:end()
ElseIf nKey == K_CTRL_LEFT ; oTbr:panLeft()
ElseIf nKey == K_CTRL_RIGHT ; oTbr:panRight()
ElseIf nKey == K_CTRL_HOME ; oTbr:panHome()
ElseIf nKey == K_CTRL_END ; oTbr:panEnd()
Endif
END
FechaArea('Tabela')
DBSELECTAREA( SELECT( AREA ) )
RestScreen(s_geral,TelAbcf)
Return
Mudar as cores no tbrowse
Enviado: 16 Out 2017 07:37
por Jairo Maia
Olá Fladimir,
Altere essa parte que está assim:
Desta forma e veja oque acontece:
Código: Selecionar todos
WHILE !oTbr:stabilize() ; END
oTbr:refreshall()
nKey:= inkey(0)
Mudar as cores no tbrowse
Enviado: 16 Out 2017 12:47
por fladimir
Fiz o seguinte... no trecho abaixo:
Alterei para:
Código: Selecionar todos
oTBr:colorrect({oTBr:rowpos(), 1, oTBr:rowpos(), oTBr:colcount()}, {1, 1}) //--> Linha acrescida antes
WHILE !oTbr:stabilize() ; END
nKey:= inkey(0)
oTBr:colorrect({oTBr:rowpos(), 1, oTBr:rowpos(), oTBr:colcount()}, {5, 2}) //--> Linha acrescida depois
oTBr:hilite() //--> Linha acrescida depois
Ai deu certo.
Vlw pessoal pela paciência, vou continuar os testes pra ver se aprendo mais.
Abraço.
Mudar as cores no tbrowse
Enviado: 24 Jul 2018 16:04
por GilmarDalantonia
Boa tarde... aproveitando o tópico... sou novo no tbrowse... tenho uma tela com os seguintes campo: Codigo, Descrição, tamanho, quantidade... gostaria de pegar a posição da coluna em que o cursor esta... por exemplo: se eu der um enter na coluna do "Codigo", o sistema ordenaria por codigos, na coluna da "descrição", o sistema ordenaria por descrição... e também como editar o campo para alterar no tbrowse, não tenho idéia de como fazer isso... se alguem puder me ajudar, agradeço muito.