Mudar as cores no tbrowse

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

Moderador: Moderadores

Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Mudar as cores no tbrowse

Mensagem por JoséQuintas »

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 mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"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 do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Mudar as cores no tbrowse

Mensagem por JoséQuintas »

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 mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"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 do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Mudar as cores no tbrowse

Mensagem por JoséQuintas »

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 mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"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 do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Mudar as cores no tbrowse

Mensagem por JoséQuintas »

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 mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
cl@udio
Usuário Nível 2
Usuário Nível 2
Mensagens: 88
Registrado em: 25 Jan 2007 16:47

Mudar as cores no tbrowse

Mensagem por cl@udio »

JoseQuintas

Eu tirei os desenho das bordas do tbrowse()
Anexos
tela.png
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Mudar as cores no tbrowse

Mensagem por JoséQuintas »

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 mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"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 do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

Mudar as cores no tbrowse

Mensagem por Jairo Maia »

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 do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Mudar as cores no tbrowse

Mensagem por JoséQuintas »

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/JoseQuin ... browse.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 mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"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 do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Mudar as cores no tbrowse

Mensagem por JoséQuintas »

Pra usar qualquer cor do Windows, uso isto:

https://github.com/JoseQuintas/JoseQuin ... alette.prg

e pra facilitar definir/usar cores, uso isto:

https://github.com/JoseQuintas/JoseQuin ... tcolor.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 mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"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 do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Mudar as cores no tbrowse

Mensagem por JoséQuintas »

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

Código: Selecionar todos

      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 mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"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 do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Mudar as cores no tbrowse

Mensagem por JoséQuintas »

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 mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"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 do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

Mudar as cores no tbrowse

Mensagem por Jairo Maia »

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:

Código: Selecionar todos

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:

Código: Selecionar todos

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:

Código: Selecionar todos

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:

Código: Selecionar todos

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 do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Mudar as cores no tbrowse

Mensagem por JoséQuintas »

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.

https://pctoledo.org/forum/viewto ... t=+tbrowse
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"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 do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Mudar as cores no tbrowse

Mensagem por fladimir »

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 do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mudar as cores no tbrowse

Mensagem por sygecom »

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:

Código: Selecionar todos

#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 se encontra mais disponível
Anexos
anexo.png
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Responder