Paleta de colores

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

Moderador: Moderadores

Adalberto
Usuário Nível 3
Usuário Nível 3
Mensagens: 343
Registrado em: 01 Set 2007 01:09
Localização: Santa Cruz de la Sierra - Bolivia

Paleta de colores

Mensagem por Adalberto »

Maestros y amigos, buenas tardes

Deseo saber como se puede ejecutar una paleta de colores, más o menos como la de paint, con Harbour-modo consola,

Aguardo y agradezco vuestra ayuda.

Atte. Adalberto
Anexos
Paleta de colores.jpg
Paleta de colores.jpg (24.88 KiB) Exibido 1163 vezes
lwinter
Usuário Nível 3
Usuário Nível 3
Mensagens: 123
Registrado em: 07 Mar 2011 12:08
Localização: Campinas - SP

Paleta de colores

Mensagem por lwinter »

Ola Adalberto!
Eu desenvolvi uma classe para tratar paletas, temas e shemas de cores em console. Sei que voce nao vai utilizar a classe mas ela possui metodos que podem tirar a sua duvida. Ela é bem completa e abrangente.

segue em anexo:
Anexos
class-palette.prg
(29.36 KiB) Baixado 128 vezes
Adalberto
Usuário Nível 3
Usuário Nível 3
Mensagens: 343
Registrado em: 01 Set 2007 01:09
Localização: Santa Cruz de la Sierra - Bolivia

Paleta de colores

Mensagem por Adalberto »

lwinter, buenas noches.

Agradecido por tu respuesta y deseo de ayudar, es cierto que no utilizaré las Clases porque no se como se utilizan, las voy a estudiar para aprovechar tu ayuda lo mejor que pueda.

Mi deseo es generar una ventana donde aparezcan los colores y conseguir el valor decimal del color señalado. (algo parecido al que muestra Paint).

Actualmente puedo cambiar los colores originales de clipper por otros de mi preferencia, pero me agradaría poder elegir un color y aplicarlo en tiempo de ejecución.

Espero vuestras noticias.

Muchas gracias.

Un abrazo desde Santa Cruz de la Sierra - Bolivia
lwinter
Usuário Nível 3
Usuário Nível 3
Mensagens: 123
Registrado em: 07 Mar 2011 12:08
Localização: Campinas - SP

Paleta de colores

Mensagem por lwinter »

Exemplo de usar a classe TPalette. Eu pessoalmente uso direto a TColorSchema.

corApp := TPalette ():New ()
corApp:SetPalette ( { ;
/* 0*/ 'gray 1' => '#3C3C3C', ;
/* 1*/ 'black 0' => '#232323', ;
/* 2*/ 'gray 0' => '#323948', ;
/* 3*/ 'verde 0' => '#257C5C', ;
/* 4*/ 'vermelho' => '#D0020E', ;
/* 5*/ 'rosa' => '#CD4B53', ;
/* 6*/ 'gray 3' => 'VSCODE 3', ; // voce pode optar em usar um tema do colection da classe Tpalete ou diretamente um codigo rgb #
/* 7*/ 'white 0' => 'SILVER', ;
/* 8*/ 'gray 4' => 'VSCODE 4', ;
/* 9*/ 'azul 0' => 'AZUL DARK', ;
/*10*/ 'verde 1' => 'EMERALD', ;
/*11*/ 'gray 2' => 'MOVAVI BOTAO SEL', ;
/*12*/ 'black 1' => 'VSCODE BLACK', ;
/*13*/ 'black 2' => 'MOVAVI PAINEL BOT', ;
/*14*/ 'white 1' => 'CLOUDS', ;
/*15*/ 'white 15' => 'WHITE'
} )

Note que no Harbour por heranca do clipper voce so pode usar 16 cores do RGB por vez. Caso voce altere a paleta de um determinado indice, toda a tela que se referenciar aquela cor ira mudar automaticamente.

o metodo xRGB_To_nRGB (xPalette) calcula o valor no formato utilizado por registrador do hb_gtInfo (HB_GTI_PALETTE, {}) de varias formas.
Exemplos:
corApp: xRGB_To_nRGB ('#345D1F')
ou
corApp: xRGB_To_nRGB ({ 122, 250, 12 })
ou
corApp: xRGB_To_nRGB (850554)
Adalberto
Usuário Nível 3
Usuário Nível 3
Mensagens: 343
Registrado em: 01 Set 2007 01:09
Localização: Santa Cruz de la Sierra - Bolivia

Paleta de colores

Mensagem por Adalberto »

IWinter, buenas noches

Muy agradecido con tu ayuda.

Con vectores tengo resuelto el tema del cambio de color en la aplicación.

Mi deseo es poder presentar una ventana con todos los colores y cuando el usuario de clik en uno de los colores esa ventana me devuelva los valores decimales de ese color, ej. 32, 32, 32
luego yo utilizaría esos valores para cambiar el color de la aplicación.

De esa manera la aplicación tendría el color que le agrada al usuario.

De nuevo te agradezco tu buena voluntad y ayuda.

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

Paleta de colores

Mensagem por JoséQuintas »

Código: Selecionar todos

#include "hbgtinfo.ch"
#include "inkey.ch"

PROCEDURE pSetupColor

   LOCAL cCorAnt, cCor, nCont, nCont2, nOpc, aPalette, wTela, nColor, nRGB

   aPalette := hb_gtInfo( HB_GTI_PALETTE )
   cCorAnt  := SetColor()
   SAVE SCREEN TO wTela
   DO WHILE .T.
      RESTORE SCREEN FROM wTela
      @ 1, 0 SAY ""
      FOR nCont = 0 TO 15
         @ Row()+2, 0 SAY ""
         nColor := aPalette[ nCont + 1 ]
         nRgb := { 0, 0, 0, nColor }
         nRgb[ 1 ] := Mod( nColor, 256 )
         nRgb[ 2 ] := Mod( Int( nColor / 256 ), 256 )
         nRgb[ 3 ] := Int( nColor / 256 / 256 )

         @ Row(), 0 PROMPT Pad( Str( nCont, 2 ) + " : " + Str( nRgb[ 1 ], 3 ) + "." + Str( nRgb[ 2 ], 3 ) + "." + Str( nRgb[ 3 ], 3 ), 20 ) 
         FOR nCont2 = 0 TO 15
            cCor := LTrim( Str( nCont2 ) ) + "/" + LTrim( Str( nCont ) )
            @ Row(), 21 + nCont2 * 6 SAY Pad( cCor, 6 ) COLOR cCor
         NEXT
      NEXT
      MENU TO nOpc
      IF nOpc == 0 .OR. LastKey() == K_ESC
         EXIT
      ENDIF
      nColor := wvt_ChooseColor( aPalette[ nOpc ] )
      IF nColor >= 0
         aPalette[ nOpc ] := nColor
      ENDIF
      hb_gtInfo( HB_GTI_PALETTE, aPalette )
   ENDDO
   SetColor( cCorAnt )
   MsgExclamation( "Ok" )

   RETURN
color.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/
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

Paleta de colores

Mensagem por Abel »

seria interessante se pudessemos definir mais cores ,
pois o limite de 16 cores complica bastante.

sera que nao tem uma forma ?
Abel
Adalberto
Usuário Nível 3
Usuário Nível 3
Mensagens: 343
Registrado em: 01 Set 2007 01:09
Localização: Santa Cruz de la Sierra - Bolivia

Paleta de colores

Mensagem por Adalberto »

JoséQuintas, buenas tardes.

Ese código que usted ha compartido es exacto lo que estaba buscando, muy buen trabajo y mejor voluntad para compartirlo.

Muchísimas gracias maestro JoséQuntas.

Un atento saludo.

Adalberto
Responder