Clipper On Line • Ver Tópico - Mudar as cores no tbrowse

Mudar as cores no tbrowse

Projeto Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

 

Mudar as cores no tbrowse

Mensagempor rubens » 15 Out 2017 09:15

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...
oTAB:COLORSPEC:="W/B,B/W,N/W,W/N,R/W,W+/R,W/G,R+/B"


Dentro do while
   DO WHILE ( !oTab:stabilize() )
   ENDDO   
   oTab:colorRect({oTab:rowPos, oTab:freeze + 1, oTab:rowPos,oTab:colCount}, {2, 2})
   oTAB:hilite()
"Eu e minha casa servimos ao Senhor e você ???"
Avatar de usuário

rubens
Colaborador

Colaborador
 
Mensagens: 1518
Data de registro: 16 Ago 2003 09:05
Cidade/Estado: Nova Xavantina - MT
Curtiu: 77 vezes
Mens.Curtidas: 104 vezes

Mudar as cores no tbrowse

Mensagempor JoséQuintas » 15 Out 2017 21:47

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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Mudar as cores no tbrowse

Mensagempor fladimir » 16 Out 2017 01:16

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)

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

Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar de usuário

fladimir
Colaborador

Colaborador
 
Mensagens: 2434
Data de registro: 15 Nov 2006 19:21
Curtiu: 28 vezes
Mens.Curtidas: 157 vezes

Mudar as cores no tbrowse

Mensagempor Jairo Maia » 16 Out 2017 06:37

Olá Fladimir,

Altere essa parte que está assim:
WHILE !oTbr:stabilize() ; END
nKey:= inkey(0)
Desta forma e veja oque acontece:
WHILE !oTbr:stabilize() ; END
oTbr:refreshall()
nKey:= inkey(0)
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar de usuário

Jairo Maia
Colaborador

Colaborador
 
Mensagens: 2733
Data de registro: 16 Ago 2010 13:46
Cidade/Estado: Campinas-SP
Curtiu: 371 vezes
Mens.Curtidas: 305 vezes

Mudar as cores no tbrowse

Mensagempor fladimir » 16 Out 2017 11:47

Fiz o seguinte... no trecho abaixo:
WHILE !oTbr:stabilize() ; END
nKey:= inkey(0)


Alterei para:

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.
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar de usuário

fladimir
Colaborador

Colaborador
 
Mensagens: 2434
Data de registro: 15 Nov 2006 19:21
Curtiu: 28 vezes
Mens.Curtidas: 157 vezes

Mudar as cores no tbrowse

Mensagempor GilmarDalantonia » 24 Jul 2018 16:04

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.
GilmarDalantonia
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 44
Data de registro: 11 Dez 2014 15:42
Cidade/Estado: Adamantina/SP
Curtiu: 2 vezes
Mens.Curtidas: 0 vez

Anterior



Retornar para Harbour

Quem está online

Usuários vendo este fórum: Google [Bot] e 8 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro