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 JoséQuintas » 04 Ago 2017 20:32

Eu queria mudar as cores do tbrowse, mas não as cores internas, as cores dos traços.
Existe essa possibilidade?
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: 18007
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 JoséQuintas » 04 Ago 2017 21:40

Consegui.
Primeiro teste ok.
Apenas coincidência, mas ficou até parecido com o separador do Windows 10.
Não é a mesma cor, mas parece... rs

Acho que é um jeito de ter o separador, sem poluir a tela com o traço branco que dá destaque demais.

tbrowse.png
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: 18007
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 JoséQuintas » 04 Ago 2017 21:46

Ficaria melhor em tela GUI?
Sim.
Se me disserem qual LIB GUI aceita browse em multithread abrindo e fechando janelas à vontade, em qualquer ordem, poderei testar.
E de preferência fazendo isso numa janela GTWVG, que é uma janela Windows quase normal... rs

browse.png
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: 18007
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 JoséQuintas » 04 Ago 2017 22:15

Eu tive que alterar tbrowse.prg do Harbour.
Por acaso tem algum outro jeito sem fazer isso?
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: 18007
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 cl@udio » 05 Ago 2017 00:33

JoseQuintas

Eu tirei os desenho das bordas do tbrowse()
Anexos
tela.png
cl@udio
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 88
Data de registro: 25 Jan 2007 15:47
Curtiu: 1 vez
Mens.Curtidas: 0 vez

Mudar as cores no tbrowse

Mensagempor JoséQuintas » 05 Ago 2017 20:38

Tem só um detalhe curioso:

No Windows 10 praticamente não existe borda.
Usar toda a tela fica esquisito.
Deixar assim um tempo, pode ser questão de costume.

Nota: reparou que o frame do tbrowse com cor mais leve deixou a tela também mais leve?
Apesar que com muita informação, não tem jeito de ficar leve.... rs

browse2.png
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: 18007
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 Jairo Maia » 06 Ago 2017 11:21

Essa questão de mudar leiaute do TBrowse é mesmo bem delicado. Já alterei cores: chiadeira geral, então voltei para monocromático. Já limpei o rodapé, ai sim quase me mataram, esqueci que usuário gosta de usar o mouse. O mouse funciona geral, inclusive o Scroll.

Já marcar a linha toda é que não consegui mesmo até agora. Fiz muitas tentativas com base no manual e desse tópico: ColorRect() mas não há meio de fazer funcionar. Creio que seja algo específico em minha função,mas ainda não sei o que.

TBrowse.Jpg
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 JoséQuintas » 06 Ago 2017 13:01

Dá uma olhada na minha rotina.
Aliás são basicamente DUAS:

Fazbrowse()

uso para browse de tela cheia, é só o browse e nada mais na tela
Filtra conforme digita, também pesquisa pelos ítens do browse, ou filtro por qualquer campo do arquivo, inclundo palavras compostas "QUI JOSE" pra achar "JOSE QUINTAS" entre outros, ou nome "QUINTAS" na rua "JOSE", ou alterar índice usado no browse.
Cheguei a alterar pra usar pushbutton, e pra usar HWGUI ou HMG Extended, depois retornei.
Acho até que esqueci de reativar os cliques nas palavras da mensagem, depois verifico.....
Alguns dos recursos extras não estão "amigos do usuário", mas como são recursos extras, achei melhor deixar disponível assim do que deixar sem.
Por exemplo: ao alterar a ordem por CNPJ vai digitando e filtrando CNPJ, se for por nome vai digitando e filtrando nome, se for for data vai digitando e filtrando data (ano/mes/dia).
Ou seja, atende todo o aplicativo qualquer que seja o arquivo.

dbView()

uso para browse que faz parte de outras telas, como os produtos na tela de pedidos

https://github.com/JoseQuintas/JoseQuintas/blob/master/source/classes/ze_fazbrowse.prg

Exemplos de uso:

FazBrowse()

ou

oTBrowse := { ... }
FazBrowse( oTBrowse )

etc.
Tem muitos exemplos de uso espalhados nos fontes.

Quanto às cores:
Tinha uma usuária, até jovem, que tinha estrabismo (ou algo assim).
Conforme a cor usada na tela, ela tinha problemas de tontura e outras coisas mais.
Usar o aplicativo pra teste não é o mesmo do que usar o tempo todo.
As vezes pra nós parece bom, mas pra quem usa pode ser problema.
E se o aplicativo for colorido demais, uma mensagem de outra cor pra chamar a atenção não vai chamar a atenção.

De vez em quando tento alterar as cores, mas acabo voltando.... rs
Até criei uma tela que permite escolher qualquer das cores do Windows, pelo seletor de cores do Windows, mas é difícil escolher.
Ninguém nunca reclamou das cores atuais... só das tentativas de mudança.... rs
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: 18007
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 JoséQuintas » 06 Ago 2017 13:21

Pra usar qualquer cor do Windows, uso isto:

https://github.com/JoseQuintas/JoseQuintas/blob/master/source/funcoes/ze_gtsetuppalette.prg

e pra facilitar definir/usar cores, uso isto:

https://github.com/JoseQuintas/JoseQuintas/blob/master/source/funcoes/ze_setcolor.prg

Recentemente adicionei esse SetColorTBrowseFrame(), justamente pra atender o assunto do post.

Apesar do nome, é apenas a cor.
Assim posso usar em:

SetColor( SetColorNormal() )
ou
@ 1, 1 SAY "texto" COLOR SetColorNormal()

Fiz assim porque não precisa de variável própria, e se escrever errado o linqueditor vai dar falta da função, além de já valer pra multithread.
Se liberar para o usuário a configuração de cores, basta alterar essas funções pra buscar do que foi salvo, por exemplo.
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: 18007
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 JoséQuintas » 07 Ago 2017 08:08

Jairo, mais especificamente sobre cor de linha e linha/coluna aqui.

      nkey := 0
      DO WHILE nkey == 0 .AND. ! oBrowse:Stable
         oBrowse:Stabilize()
         nkey := Inkey()
      ENDDO
      IF nKey == 0
         oBrowse:RefreshCurrent()
         DO WHILE ! oBrowse:Stabilize()
         ENDDO
         oBrowse:ColorRect( { oBrowse:RowPos, 1, oBrowse:RowPos, oBrowse:ColCount }, { 3, 3 } ) // linha está com o cursor
         oBrowse:ColorRect( { oBrowse:RowPos, oBrowse:ColPos, oBrowse:RowPos, oBrowse:ColPos }, { 2, 2 } ) // linha/coluna está com o cursor
         nkey := Inkey(600)
         IF nKey == 0
            KEYBOARD Chr( K_ESC )
         ENDIF
      ENDIF


Só que essa rotina inclui um certo tipo de agilização (if nkey==0), economizando atualizações de tela e deixando o tbrowse mais rápido.
Se usar tudo exatamente igual, vai precisar dos outros blocos em outros lugares (do while ! oBrowse:Stable; oBrowse:Stabilize(); enddo )
É que a atualização de tela do tbrowse também altera o registro atual, então precisa compensar esssa "não atualização".
Senão vai parecer que o tbrowse ficou maluco.... rs...
Vai saber se não foi algo assim que aconteceu no seu tbrowse.
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: 18007
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 JoséQuintas » 07 Ago 2017 08:15

Complemento:
Até pelo mesmo motivo mantenho essas duas rotinas de tbrowse; Fazbrowse() e dbview().
Existe uma pequena diferença na parte de agilizar tbrowse entre elas.
Fazbrowse() é só pra consulta, então dá pra agilizar ao máximo.
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: 18007
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 Jairo Maia » 07 Ago 2017 10:57

Olá José,

A função TBrowse que uso, herdei do GasPRO. Ela tinha várias funções úteis na época e adotei como padrão. Isso foi em 2000, e desde 2002 tenho uma série de alterações que fui implementando várias coisas que ela não contemplava e que são muito usadas hoje (várias delas como você já citou acima, buscas por digitação, melhoria na montagem de relatórios com arquivo relacional (já tinha, mas alterei porque não gostava do original), etc.), então abandonar essa função está praticamente fora de questão, considerando que foi adaptada para usar GTWVG inclusive. O que precisa e com calma é rever todas as alterações, e com cuidado adaptar a recursos mais atuais (Harbour) quando for o caso.

No entanto, hoje voltei a fazer alguns testes com o método ColorRect(). Chego a ficar envergonhado, mas tenho que colocar o lixo na cabeça e dizer: Quando alterei as cores do TBrowse, nunca voltei a fazer testes com CollorRect() com as cores alteradas, não monocromático. No entanto hoje, decidi da forma que você passou:
br_w:ColorRect( { br_w:rowPos, 1, br_w:rowPos, br_w:colCount }, { 3, 3 } ) // linha está com o cursor
br_w:ColorRect( { br_w:RowPos, br_w:ColPos, br_w:RowPos, br_w:ColPos }, { 2, 2 } ) // linha/coluna está com o cursor

Ao testar não aconteceu patavina nenhuma.... Porém, então baixei e compilei a ze_setcolor.prg e alterei minha função para:
br_w:ColorSpec := SetColorTbrowse()
Bingo!!!

Óbvio, só então percebi que não era porque não funcionava, é que como estou usando monocromático, meu método ColorSpec() estava:
br_w:ColorSpec := "W+/N,N/W*,W+/N,W+/N"

Então pode fazer a combinação que quiser, obviamente não terá efeito, a não ser dependendo dela nem o cursor aparece, é tudo monocromático. Realmente fiquei chateado e envergonhado, por não ter percebido isso...

Para efeito de testes, alterei ColorSpec() para:
br_w:ColorSpec := "W+/N,GR+/G+,W+/G+,W+/N"

Não sei ainda como ficará no final, é apenas testes, o que vai ficar em produção ainda vou pensar com calma, mas esse foi o efeito:
TBrowse1.Jpg


Valeu...
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 JoséQuintas » 07 Ago 2017 15:50

Vergonha do que? Conseguiu !

Olhe eu aqui neste post, também não consegui na época.
Finalizei com "qualquer dia tento de novo", em 2013.

http://www.pctoledo.com.br/forum/viewtopic.php?f=4&t=14527&hilit=+tbrowse
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: 18007
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 » 14 Out 2017 17:59

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
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 sygecom » 14 Out 2017 21:04

JoséQuintas escreveu:Ficaria melhor em tela GUI?
Sim.
Se me disserem qual LIB GUI aceita browse em multithread abrindo e fechando janelas à vontade, em qualquer ordem, poderei testar.
E de preferência fazendo isso numa janela GTWVG, que é uma janela Windows quase normal... rs

Zé,
Usando telas GUI é bem comum usar varias telas abertas, pode ser da mesma ou telas diferentes, na Hwgui usamos MDI, código de exemplo abaixo:

#include "hwgui.ch"

STATIC Thisform

FUNCTION TESTE
LOCAL oDlg_MALA

INIT WINDOW oDlg_MALA MDICHILD VAR Thisform TITLE 'Envio de Mala direta por E-mail' ;
   AT 0,0;
   SIZE GETDESKTOPWIDTH(),GETDESKTOPHEIGHT()-180 ;
   STYLE WS_CAPTION+DS_CENTER +WS_SYSMENU+WS_MINIMIZEBOX+WS_MAXIMIZEBOX+WS_CHILD

ACTIVATE WINDOW oDlg_MALA

RETURN NIL

O anexo anexo.png não está disponível
Anexos
anexo.png
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
leonardodemachado@hotmail.com

Faça você também sua doação esse fórum é uma lenda viva: http://www.pctoledo.com.br/doacao
Avatar de usuário

sygecom
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 7005
Data de registro: 21 Jul 2006 10:12
Cidade/Estado: Alvorada-RS
Curtiu: 1 vez
Mens.Curtidas: 130 vezes

Próximo



Retornar para Harbour

Quem está online

Usuários vendo este fórum: Bing [Bot] e 4 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