Cansados de ver sempre as mesmas tonalidades de cores ?

Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.

Moderador: Moderadores

Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Cansados de ver sempre as mesmas tonalidades de cores ?

Mensagem por Pablo César »

Então compile este aplicativo (usa a CT.LIB) execute antes da sua aplicação e verá a grande gama de cores podem ser criados.

Código: Selecionar todos

/*
PROGRAMA    : TONS.PRG
AUTOR          : Pablo César
COMENTARIO : Muda a cor das cores padr”es do Clipper
             Clipper 5.2 + CT.LIB
*/

IF !FILE("TONS.CFG")
   TONACOR := {{00,00,00,00,42,42,42,42,21,21,21,21,63,63,63,63},{00,00,42,42,00,00,21,42,21,21,63,63,21,21,63,63},{00,42,00,42,00,42,00,42,21,63,21,63,21,63,21,63}}
ELSE
   TONACOR := {{},{},{}}
   VAR := MEMOREAD( "TONS.CFG" )
   FOR I=1 TO 16
       AADD(TONACOR[1], VAL(SUBSTR( VAR, ((I*6)-5), 2 )) )
       AADD(TONACOR[2], VAL(SUBSTR( VAR, ((I*6)-3), 2 )) )
       AADD(TONACOR[3], VAL(SUBSTR( VAR, ((I*6)-1), 2 )) )
   NEXT
ENDIF
FOR I=1 TO 16
    VGAPALETTE(I-1,TONACOR[1,I],TONACOR[2,I],TONACOR[3,I])
NEXT
VQCOR:=SETCOLOR()
TELA_PRI:=SAVESCREEN(01, 00, 23, 79)
SETCOLOR( "W" )
VL := 04; VC := 3
SET CURSOR OFF
SET MESSAGE TO 23
VC_B:={12,10,09}
VCOR="N/N,B+/N*,N/N,N/N,N/W"
OP_COR=0
DO WHILE .T.
   @ 24,00 SAY PADC("Use teclas <"+CHR(24)+"> e <"+CHR(25)+"> escolher a cor de vai mudar",80) COLOR "N/W"
   FOR I = 0 TO 15
       @ I+VL+1, VC SAY REPLICATE("Û",16) COLOR NTOCOLOR(I,.T.)
       @ I+VL+1, VC PROMPT "" MESSAGE {||FEC(ROW(),COL())}
   NEXT
   TELA_C=SAVESCREEN(03,02,21,20)
   MENU TO OP_COR
   IF LASTKEY()=27
      EXIT
   ENDIF
   @ 24,00 SAY PADC("Use <"+CHR(27)+">, <"+CHR(26)+">, <"+CHR(24)+"> e <"+CHR(25)+"> para mudar a tonalidade | <Home> retorna cor original",80) COLOR "N/W"
   SETCOLOR(NTOCOLOR((OP_COR-1),.T.))
   FOR I=2 TO 23
       @ I,00 SAY REPLICATE(CHR(219),80)
   NEXT
   IF OP_COR=1
      SET COLOR TO W/N
   ENDIF
   IF !(OP_COR=13)
      R_OLD:=STRZERO(GETVGAPAL(12,"R"),2,0)+STRZERO(GETVGAPAL(12,"G"),2,0)+STRZERO(GETVGAPAL(12,"B"),2,0)
      VGAPALETTE(12,63,0,0)
   ENDIF
   IF !(OP_COR=11)
      V_OLD:=STRZERO(GETVGAPAL(10,"R"),2,0)+STRZERO(GETVGAPAL(10,"G"),2,0)+STRZERO(GETVGAPAL(10,"B"),2,0)
      VGAPALETTE(10,0,63,0)
   ENDIF
   IF !(OP_COR=10)
      A_OLD:=STRZERO(GETVGAPAL(09,"R"),2,0)+STRZERO(GETVGAPAL(09,"G"),2,0)+STRZERO(GETVGAPAL(09,"B"),2,0)
      VGAPALETTE(09,0,0,63)
   ENDIF
   FOR I=0 TO 10  STEP +5
       @ I+6,06 SAY " 0    5   10   15   20   25   30   35   40   45   50   55   60  63 " COLOR NTOCOLOR(VC_B[((I/5)+1)],.T.)
       @ I+7,06 SAY "ÚÙ....³....³....³....³....³....³....³....³....³....³....³....³..ÀÄ¿" COLOR NTOCOLOR(VC_B[((I/5)+1)],.T.)
       @ I+8,06 SAY "³ °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° ³" COLOR NTOCOLOR(VC_B[((I/5)+1)],.T.)
       @ I+9,06 SAY "ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ" COLOR NTOCOLOR(VC_B[((I/5)+1)],.T.)
       @ I+8,08 SAY REPLICATE(CHR(219),TONACOR[(I/5)+1,OP_COR])
   NEXT
   T_L=1
   T_C=TONACOR[T_L,OP_COR]
   VMUDA=.F.
   DO WHILE .T.
      IF T_C=0
         @ (T_L*5)+3,07 SAY CHR(175) COLOR "W+/N*"
      ELSE
         @ (T_L*5)+3,07 SAY " "+REPLICATE(CHR(219),T_C) COLOR "W+/N*"
      ENDIF
      TECLA := INKEY( 0 )
      IF TECLA=1
         TON_OLD := {{00,00,00,00,42,42,42,42,21,21,21,21,63,63,63,63},{00,00,42,42,00,00,21,42,21,21,63,63,21,21,63,63},{00,42,00,42,00,42,00,42,21,63,21,63,21,63,21,63}}
         TONACOR[1,OP_COR]=TON_OLD[1,OP_COR]
         TONACOR[2,OP_COR]=TON_OLD[2,OP_COR]
         TONACOR[3,OP_COR]=TON_OLD[3,OP_COR]
         T_C:=TON_OLD[T_L,OP_COR]
         RELEASE TON_OLD
      ENDIF
      IF TECLA = 5
         T_L += -1
         VMUDA=.T.
      ELSE
         IF TECLA = 24
            T_L += 1
            VMUDA=.T.
         ELSE
            T_L += 0
            VMUDA=.F.
         ENDIF
      ENDIF
      T_L = IIF( T_L < 1, 3, IIF( T_L > 3, 1, T_L ) )
      IF VMUDA=.T.
         T_C=TONACOR[(T_L),OP_COR]
         VMUDA=.F.
      ENDIF
      T_C += IIF( TECLA = 19, -1, IIF( TECLA = 4, 1, 0 ) )
      T_C = IIF( T_C < 0, 63, IIF( T_C > 63, 0, T_C ) )
      TONACOR[T_L,OP_COR]:=T_C
      @ 08,07 SAY " "+REPLICATE(CHR(176),63) COLOR NTOCOLOR(VC_B[1],.T.)
      @ 13,07 SAY " "+REPLICATE(CHR(176),63) COLOR NTOCOLOR(VC_B[2],.T.)
      @ 18,07 SAY " "+REPLICATE(CHR(176),63) COLOR NTOCOLOR(VC_B[3],.T.)

      @ 08,08 SAY REPLICATE(CHR(219),TONACOR[1,OP_COR])
      @ 13,08 SAY REPLICATE(CHR(219),TONACOR[2,OP_COR])
      @ 18,08 SAY REPLICATE(CHR(219),TONACOR[3,OP_COR])
      DO CASE
         CASE T_L=1
              VGAPALETTE((OP_COR)-1,T_C,TONACOR[2,OP_COR],TONACOR[3,OP_COR])
         CASE T_L=2
              VGAPALETTE((OP_COR)-1,TONACOR[1,OP_COR],T_C,TONACOR[3,OP_COR])
         CASE T_L=3
              VGAPALETTE((OP_COR)-1,TONACOR[1,OP_COR],TONACOR[2,OP_COR],T_C)
      ENDCASE
      IF TECLA = 27 .OR. TECLA = 13
         IF !(OP_COR=13)
            VGAPALETTE(12,VAL(SUBSTR(R_OLD,1,2)),VAL(SUBSTR(R_OLD,3,2)),VAL(SUBSTR(R_OLD,5,2)))
         ENDIF
         IF !(OP_COR=11)
            VGAPALETTE(10,VAL(SUBSTR(V_OLD,1,2)),VAL(SUBSTR(V_OLD,3,2)),VAL(SUBSTR(V_OLD,5,2)))
         ENDIF
         IF !(OP_COR=10)
            VGAPALETTE(09,VAL(SUBSTR(A_OLD,1,2)),VAL(SUBSTR(A_OLD,3,2)),VAL(SUBSTR(A_OLD,5,2)))
         ENDIF
         RESTSCREEN(01, 00, 23, 79,TELA_PRI)
         EXIT
      ENDIF
    ENDDO
ENDDO
SETCOLOR(VQCOR)
RESTSCREEN(01, 00, 23, 79,TELA_PRI)
VAR := ""
FOR I=1 TO 16
    VAR += STRZERO(TONACOR[1,I],2,0)
    VAR += STRZERO(TONACOR[2,I],2,0)
    VAR += STRZERO(TONACOR[3,I],2,0)
NEXT
MEMOWRIT( "TONS.CFG", VAR )


FUNCTION FEC(VA,VB)
FOR I = 0 TO 15
    DO CASE
       CASE I<(VA-5)
            @ I+VL, VC SAY REPLICATE("Û",16) COLOR NTOCOLOR(I,.T.)
       CASE I=(VA-5)
            @ I+VL+1, VC SAY REPLICATE("Û",16) COLOR NTOCOLOR(I,.T.)
       CASE I>(VA-5)
            @ I+VL+2, VC SAY REPLICATE("Û",16) COLOR NTOCOLOR(I,.T.)
    ENDCASE
NEXT
@ VL-1, VB-1, VL+18, VB+16 BOX "Û" COLOR "09/01"
IF VA=5
   @ VA-1,VB-1 TO VA+1,VB+16 COLOR "N/W"
ELSE
   @ VA-1,VB-1 TO VA+1,VB+16 COLOR NTOCOLOR((VA-5),.T.)
ENDIF
RETURN ""
Veja que é possível guardar o arquivo de configuração de tonalidades.

Um clip-abraço e espero que gostem ! :)Pos
Anexos
TONCOR.rar
(236.48 KiB) Baixado 539 vezes
Avatar do usuário
Eolo
Colaborador
Colaborador
Mensagens: 1134
Registrado em: 08 Dez 2005 18:24
Localização: São Paulo - SP

Mensagem por Eolo »

Tentei usar (Clipper52 / Blinker51 / XP) mas acontece o seguinte:
a) em modo real funciona beleza;
b) em modo protegido, dá falha geral de proteção...

Será que estou usando uma versão errada da CT.lib?

Eolo
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

use em modo protegido a CTP.LIB e em modo real a CT.LIB

Abraços
Leonardo Machado
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
Eolo
Colaborador
Colaborador
Mensagens: 1134
Registrado em: 08 Dez 2005 18:24
Localização: São Paulo - SP

Mensagem por Eolo »

Consegui as LIBs (CT e CTP) e tb o NG com o Dércio.
Agora funcionou!
Obrigado.
Eolo
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Cansados de ver sempre as mesmas tonalidades de cores ?

Mensagem por Pablo César »

Disponibilizei novo código fonte, a CT.lib e um aplciativo fullscrn.exe que serve para testar em tela cheia.

Ver na minha primeira mensagem: https://pctoledo.org/forum/viewto ... 053#p24394
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
lugab
Colaborador
Colaborador
Mensagens: 843
Registrado em: 19 Mai 2009 15:58

Cansados de ver sempre as mesmas tonalidades de cores ?

Mensagem por lugab »

Disponibilizei novo código fonte, a CT.lib e um aplciativo fullscrn.exe que serve para testar em tela cheia.
Em qual link, Pablo ??
lugab
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Cansados de ver sempre as mesmas tonalidades de cores ?

Mensagem por Pablo César »

Na minha primeira mensagem deste tópico: pode baixar por aqui: https://pctoledo.org/forum/downlo ... php?id=709
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Abel
Usuário Nível 3
Usuário Nível 3
Mensagens: 332
Registrado em: 14 Mar 2012 13:16
Localização: sao paulo / sp

Cansados de ver sempre as mesmas tonalidades de cores ?

Mensagem por Abel »

ola pessoal,

tenho utilizado a funcao RGB() para alterar as palletes e assim conseguir diversos tipos de tonalidades.

minha duvida é a seguinte: (desculpem se escrever uma grande besteira).

seria possivel aumentar a quantidade de opcoes ? pois quando altero uma palette ele vale para todas as telas e desta forma teria que ficar alterando e depois voltando ao original para que eu possa ter uma gama maior te opcoes de cores.

Desde ja agradeco
ABEL
Responder