Já tentaram usar alguma cor e não conseguiram?
Pois é... compatibilidade com Clipper... usando letras é mais limitado, pode reduzir pra somente 8 cores.
Dica do dia: tabela de cores
Enviado: 28 Jan 2019 10:17
por JoséQuintas
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.
Dica do dia: tabela de cores
Enviado: 28 Jan 2019 10:47
por JoséQuintas
Rotina atualizada.
Pra cor de fundo, troco o "+" por "*".
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
:__EnumIndex é questão de costume.
cCorFrente::__EnumIndex e cCorFundo:__EnumIndex, representam o "contador invisível" usado pra cCorFrente e cCorFundo.
Dica do dia: tabela de cores
Enviado: 07 Mar 2019 11:49
por lwinter
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,
Dica do dia: tabela de cores
Enviado: 07 Mar 2019 12:41
por JoséQuintas
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.
Dica do dia: tabela de cores
Enviado: 13 Abr 2019 20:23
por lwinter
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. )
Dica do dia: tabela de cores
Enviado: 13 Abr 2019 20:26
por lwinter
Outra duvida, no Harbour não temos uma função de palette ou rbg para definição de 16384 cores?
Dica do dia: tabela de cores
Enviado: 14 Abr 2019 21:22
por alxsts
Olá!
JoséQuintas escreveu:uma tela 25 x 80 são 2.000 caracteres + 1.000 pra cores = 3.000
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.
Dica do dia: tabela de cores
Enviado: 14 Abr 2019 22:28
por JoséQuintas
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.
Na verdade foi um chute.
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.
Não me perguntem a diferença, mas com certeza isso altera tudo.
Novo Windows Terminal 2019!
Enviado: 30 Mai 2019 17:38
por lwinter
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?
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.
Dica do dia: tabela de cores
Enviado: 04 Jun 2019 16:31
por lwinter
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.
Dica do dia: tabela de cores
Enviado: 04 Jun 2019 17:00
por JoséQuintas
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.