Dica do dia: tabela de cores
Moderador: Moderadores
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Dica do dia: tabela de cores
Já tentaram usar alguma cor e não conseguiram?
Pois é... compatibilidade com Clipper... usando letras é mais limitado, pode reduzir pra somente 8 cores.
Pois é... compatibilidade com Clipper... usando letras é mais limitado, pode reduzir pra somente 8 cores.
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/
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/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Dica do dia: tabela de cores
Agora que reparei, mas não lembro de ter visto isso antes.
Acima o teste prático.
GR+/GR é o mesmo que GR/GR+, não importa a posição de "+", ele intensifica a cor de fonte
GR*/GR é o mesmo que GR/GR*, não importa a posição de "*", ele intensifica a cor de fundo
E teste final, GR*+/GR intensifica frente e fundo.
Como só uso números não tinha reparado nisso antes, só fui reparar agora usando Flagship/Linux.
Foi só olhar novamente a imagem do primeiro post, as linhas com "+" e "*" estavam diferentes.
Acima o teste prático.
GR+/GR é o mesmo que GR/GR+, não importa a posição de "+", ele intensifica a cor de fonte
GR*/GR é o mesmo que GR/GR*, não importa a posição de "*", ele intensifica a cor de fundo
E teste final, GR*+/GR intensifica frente e fundo.
Como só uso números não tinha reparado nisso antes, só fui reparar agora usando Flagship/Linux.
Foi só olhar novamente a imagem do primeiro post, as linhas com "+" e "*" estavam diferentes.
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/
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/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Dica do dia: tabela de cores
Rotina atualizada.
Pra cor de fundo, troco o "+" por "*".
Pra cor de fundo, troco o "+" por "*".
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/
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/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Dica do dia: tabela de cores
O fonte pra quem quiser brincar.
Código: Selecionar todos
#define COLOR_BLACK "N"
#define COLOR_BLUE "B"
#define COLOR_GREEN "G"
#define COLOR_CYAN "BG"
#define COLOR_RED "R"
#define COLOR_MAGENTA "RB"
#define COLOR_BROWN "GR"
#define COLOR_WHITE "W"
#define COLOR_GRAY "N+"
#define COLOR_HIBLUE "B+"
#define COLOR_HIGREEN "G+"
#define COLOR_HICYAN "BG+"
#define COLOR_HIRED "R+"
#define COLOR_HIMAGENTA "RB+"
#define COLOR_YELLOW "GR+"
#define COLOR_HIWHITE "W+"
FUNCTION pUtilCor()
LOCAL nCont, nCont2, aList := { COLOR_BLACK, COLOR_BLUE, COLOR_GREEN, COLOR_CYAN, ;
COLOR_RED, COLOR_MAGENTA, COLOR_BROWN, COLOR_WHITE, COLOR_GRAY, COLOR_HIBLUE, ;
COLOR_HIGREEN, COLOR_HICYAN, COLOR_HIRED, COLOR_HIMAGENTA, COLOR_YELLOW, COLOR_HIWHITE }
FOR nCont = 1 TO 16
FOR nCont2 = 1 TO 16
@ 2 + nCont, ( nCont2 -1 ) * 7 SAY Pad( aList[ nCont ] + "/" + StrTran( aList[ nCont2 ], "+", "*" ), 7 ) ;
COLOR ( aList[ nCont ] + "/" + StrTran( aList[ nCont2 ], "+", "*" ) )
NEXT
NEXT
Mensagem( "Tecle ESC", " 27" )
RETURN NIL
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/
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/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Dica do dia: tabela de cores
O fonte é pra uso no Flagship por isso assim.
É um bom exemplo pra se usar FOR/EACH
Vejam a diferença:
:__EnumIndex é questão de costume.
cCorFrente::__EnumIndex e cCorFundo:__EnumIndex, representam o "contador invisível" usado pra cCorFrente e cCorFundo.
É um bom exemplo pra se usar FOR/EACH
Vejam a diferença:
Código: Selecionar todos
LOCAL aList := { COLOR_BLACK, COLOR_BLUE, COLOR_GREEN, COLOR_CYAN, ;
COLOR_RED, COLOR_MAGENTA, COLOR_BROWN, COLOR_WHITE, COLOR_GRAY, COLOR_HIBLUE, ;
COLOR_HIGREEN, COLOR_HICYAN, COLOR_HIRED, COLOR_HIMAGENTA, COLOR_YELLOW, COLOR_HIWHITE }
LOCAL nCont, nCont2
FOR nCont = 1 TO 16
FOR nCont2 = 1 TO 16
@ 2 + nCont, ( nCont2 -1 ) * 7 SAY Pad( aList[ nCont ] + "/" + StrTran( aList[ nCont2 ], "+", "*" ), 7 ) ;
COLOR ( aList[ nCont ] + "/" + StrTran( aList[ nCont2 ], "+", "*" ) )
NEXT
NEXT
Código: Selecionar todos
LOCAL aList := { COLOR_BLACK, COLOR_BLUE, COLOR_GREEN, COLOR_CYAN, ;
COLOR_RED, COLOR_MAGENTA, COLOR_BROWN, COLOR_WHITE, COLOR_GRAY, COLOR_HIBLUE, ;
COLOR_HIGREEN, COLOR_HICYAN, COLOR_HIRED, COLOR_HIMAGENTA, COLOR_YELLOW, COLOR_HIWHITE }
LOCAL cCorFrente, cCorFundo
FOR EACH cCorFrente IN aList
FOR EACH cCorFundo IN aList
@ 2 + cCorFrente:__EnumIndex, ( cCorFundo:__EnumIndex - 1 ) * 7 SAY Pad( cCorFrente + "/" + Transform( cCorFundo, "+", "*" ), 7 ) ;
COLOR ( cCorFrente + "/" + StrTran( cCorFundo, "+", "*" ) )
NEXT
NEXT
cCorFrente::__EnumIndex e cCorFundo:__EnumIndex, representam o "contador invisível" usado pra cCorFrente e cCorFundo.
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/
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/
Dica do dia: tabela de cores
Oi José!
Muito útil suas dicas!
Não teria como o harbour trabalhar com o sistema hexadecimal RGB? Por exemplo: SetColor ( '#68B46D').
Seria muito útil se pudesse!
Abracos!
rgds,
Muito útil suas dicas!
Não teria como o harbour trabalhar com o sistema hexadecimal RGB? Por exemplo: SetColor ( '#68B46D').
Seria muito útil se pudesse!
Abracos!
rgds,
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Dica do dia: tabela de cores
Depende do que está querendo dizer.
O Harbour utiliza 16 cores fixas, igual ao Clipper.
Essa tabela de 16 cores pode ser alterada.
Ilimitado:
pra representar 16 cores, números 1 a 16, em binário precisa 1/4 byte, ou apenas 1/2 byte pra frente/fundo.
pras cores do Windows, isso aumenta pra 3 bytes, ou 6 no caso de frente/fundo.
uma tela 25 x 80 são 2.000 caracteres + 1.000 pra cores = 3.000
pras cores do Windows, seria 2.000 + 12.000 = 14.000
Não sei quantas rotinas isso afetaria, ou o quanto poderia mexer com o desempenho.
Mas eu gostaria disso também, ou pelo menos alterar a tabela de cores pra 128 ou 256.
O Harbour utiliza 16 cores fixas, igual ao Clipper.
Essa tabela de 16 cores pode ser alterada.
Ilimitado:
pra representar 16 cores, números 1 a 16, em binário precisa 1/4 byte, ou apenas 1/2 byte pra frente/fundo.
pras cores do Windows, isso aumenta pra 3 bytes, ou 6 no caso de frente/fundo.
uma tela 25 x 80 são 2.000 caracteres + 1.000 pra cores = 3.000
pras cores do Windows, seria 2.000 + 12.000 = 14.000
Não sei quantas rotinas isso afetaria, ou o quanto poderia mexer com o desempenho.
Mas eu gostaria disso também, ou pelo menos alterar a tabela de cores pra 128 ou 256.
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/
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/
Dica do dia: tabela de cores
Muito bem explicado Jose Quintas! Parabéns!
Eu acho que se você souber alterar o Harbour para trabalhar com mais cores seria muito legal. Sera que não estamos focado no paradigma antigo do clipper? Porque não podemos avançar nos aspectos das plataformas 32/64 bits? Acho totalmente plausível e talvez isso não tenha nenhum efeito colateral.
)
Eu acho que se você souber alterar o Harbour para trabalhar com mais cores seria muito legal. Sera que não estamos focado no paradigma antigo do clipper? Porque não podemos avançar nos aspectos das plataformas 32/64 bits? Acho totalmente plausível e talvez isso não tenha nenhum efeito colateral.
Dica do dia: tabela de cores
Outra duvida, no Harbour não temos uma função de palette ou rbg para definição de 16384 cores?
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
Dica do dia: tabela de cores
Olá!
Creio que esta informação não procede. Tela 25x80 é armazenada em 4000 bytes (1 para cada carácter e 1 para a cor de cada carácter). Se for UTF8 vai para 8000.JoséQuintas escreveu:uma tela 25 x 80 são 2.000 caracteres + 1.000 pra cores = 3.000
[]´s
Alexandre Santos (AlxSts)
Alexandre Santos (AlxSts)
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Dica do dia: tabela de cores
Na verdade foi um chute.alxsts escreveu: Tela 25x80 é armazenada em 4000 bytes (1 para cada carácter e 1 para a cor de cada carácter). Se for UTF8 vai para 8000.
Um byte pode representar de 0 a 255, então considerei que precisaria menos de 1 byte pra cores.
Apesar de SaveScreen() poder usar 4000 bytes, não faço idéia se internamente não é feito diferente pra economizar memória.
UTF8 não faço idéia se dobra, já que alguns caracteres em UTF-8 precisam de até 6 bytes, e ele pode estar na tela inteira.
Aliás....
Código: Selecionar todos
hb_gtInfo( HB_GTI_COMPATBUFFER, .F. )
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/
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/
Novo Windows Terminal 2019!
Estudando no youtube verifiquei que a limitação de cores esta relacionada ao Windows Terminal (emulação DOS antigo) com suas restrições de cores 16 bits.
Verifiquei também que a Microsoft lançou em fase de testes o novo Windows terminal para Windows 10 e que estará disponível na próxima build do Windows.
Seria um sonho se "alguém" da comunidade Harbour adequasse o Harbour para este novo Windows terminal. Sera que a comunidade tem isso na agenda?
Veja vídeo abaixo (Show de bola!):
https://www.youtube.com/watch?v=UrZo9mohRiw
Abraços.
Leonardo W
)
Verifiquei também que a Microsoft lançou em fase de testes o novo Windows terminal para Windows 10 e que estará disponível na próxima build do Windows.
Seria um sonho se "alguém" da comunidade Harbour adequasse o Harbour para este novo Windows terminal. Sera que a comunidade tem isso na agenda?
Veja vídeo abaixo (Show de bola!):
https://www.youtube.com/watch?v=UrZo9mohRiw
Abraços.
Leonardo W
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Dica do dia: tabela de cores
Não compensa, vai só complicar.
Se usar Clipper no W10 vai complicar também, porque a tela não tem limite de tamanho.
Na prática a GTWVG já seria isso.
Se usar Clipper no W10 vai complicar também, porque a tela não tem limite de tamanho.
Na prática a GTWVG já seria 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/
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/
Dica do dia: tabela de cores
A ideia seria usar o GTWVG (Windows terminal) mesmo. Mas eu gostaria de saber como poderíamos utilizar as melhorias do NOVO Windows terminal conforme vídeo abaixo. Exemplo: Usar EMOJI, novas fontes, novas cores, etc... Como seria possível usar as novas cores se o comando setcolor é limitado?
Você chegou a ver o vídeo abaixo?
É muito legal as possibilidades! Dai nem precisaria de usar a MINIGUI.
Abraços.
Você chegou a ver o vídeo abaixo?
É muito legal as possibilidades! Dai nem precisaria de usar a MINIGUI.
Abraços.
Editado pela última vez por Toledo em 04 Jun 2019 16:56, em um total de 1 vez.
Razão: Mensagem editada para colocar a tag [ youtube ]
Razão: Mensagem editada para colocar a tag [ youtube ]
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Dica do dia: tabela de cores
Infelizmente você está sonhando.
Acho impossível o Harbour aproveitar qualquer recurso do console.
Não confunda console e GTWVG, são coisas diferentes.
A GTWVG faz parte do Harbour, que tem GTWIN (console), GTWVG, GTWVT, GTWVW.
Dá pra usar gráficos na GTWVG e GTWVW desde sempre.
Vou resumir:
O console do Windows 10 é apenas pra console.
NÃO serve pra aplicativo.
Desta vez acabou-se console, a não ser que mexa em tudo que é configuração do Windows, em TODAS as máquinas que instalar programa.
Agora é obrigatório: GTWVT ou GTWVG ou GTWVW - que NÃO são console.
Acho impossível o Harbour aproveitar qualquer recurso do console.
Não confunda console e GTWVG, são coisas diferentes.
A GTWVG faz parte do Harbour, que tem GTWIN (console), GTWVG, GTWVT, GTWVW.
Dá pra usar gráficos na GTWVG e GTWVW desde sempre.
Vou resumir:
O console do Windows 10 é apenas pra console.
NÃO serve pra aplicativo.
Desta vez acabou-se console, a não ser que mexa em tudo que é configuração do Windows, em TODAS as máquinas que instalar programa.
Agora é obrigatório: GTWVT ou GTWVG ou GTWVW - que NÃO são console.
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/
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/
