Já tentaram usar alguma cor e não conseguiram? Pois é... compatibilidade com Clipper... usando letras é mais limitado, pode reduzir pra somente 8 cores.
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.
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!
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.
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. :))
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.
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.
Aliás....
Código:
hb_gtInfo( HB_GTI_COMPATBUFFER, .F. )
Não me perguntem a diferença, mas com certeza isso altera tudo.
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.
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.
Editado pela última vez por Toledo em 04 Jun 2019 16:56, num total de 1 vezes Razão:Mensagem editada para colocar a tag [ youtube ]
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.