Clipper On Line • Ver Tópico - Opções de PROMPT não aparecem após usar rgb

Opções de PROMPT não aparecem após usar rgb

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

Moderador: Moderadores

 

Opções de PROMPT não aparecem após usar rgb

Mensagempor porter » 22 Mar 2018 10:44

Olá pessoal,
Estou pintando a tela com rgb, mas após a tela ser pintada, as opções criadas com PROMPT não aparecem,
é correto fazer dessa forma, quero usar o rgb por ter mais opção de cores, mas após pintar a tela as opções
não aparecem.
Harbour 3.2.0(dev), GTWVG

aPaint := {}
AAdd( aPaint, { NIL , { || Wvt_SetBrush( 0, rgb(46,139,87 ) ) }, NIL } )
AAdd( aPaint, { NIL , { || Wvt_DrawRectangle( 01, 00, 22, 79 ) }   , NIL } )
WvtSetPaint( aPaint )

@02,01 PROMPT "Opção 1"
@03,01 PROMPT "Opção 2"
@04,01 PROMPT "Opção 3"
@05,01 PROMPT "Opção 4"
Menu to m1

FUNCTION rgb( r, g, b )
   RETURN r + ( g * 256 ) + ( b * 256 * 256 )
   
FUNCTION Wvt_Paint()
   WvtPaintObjects()
   RETURN NIL
porter
Usuário Nível 5

Usuário Nível 5
 
Mensagens: 1024
Data de registro: 10 Dez 2009 15:44
Cidade/Estado: OLIMPIA-SP
Curtiu: 3 vezes
Mens.Curtidas: 23 vezes

Opções de PROMPT não aparecem após usar rgb

Mensagempor JoséQuintas » 22 Mar 2018 11:39

wvt_Paint() é uma rotina que fica em LOOP, assim como certas atualizações de texto.
O texto cobre o gráfico, o gráfico cobre o texto.

Se quer apenas uma cor de fundo diferente, mais prático alterar a tabela de cores.
Pesquise sobre Palette.

Por exemplo, pode trocar a cor azul por outra, e depois usar SetColor( "W/B" )
O limite é a tabela de cores do Clipper/Harbour.
Pode usar 16 cores diferentes, cada uma dessas cores pode ser qualquer cor RGB.

Importante: parece fácil escolher 16 cores, mas não é.
São cores de frente/fundo, ao usar duas juntas, o resultado pode não ser o esperado, e ter que trocar novamente.
8 frente e 8 fundo, são 64 combinações a serem testadas.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Opções de PROMPT não aparecem após usar rgb

Mensagempor JoséQuintas » 22 Mar 2018 16:15

JoséQuintas escreveu:8 frente e 8 fundo, são 64 combinações a serem testadas.


Correção: 16 X 16 = 256
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Opções de PROMPT não aparecem após usar rgb

Mensagempor JoséQuintas » 22 Mar 2018 16:54

Até esqueci que tenho fonte pronto pra isso... o que falei seria isto:

https://github.com/JoseQuintas/JoseQuintas/blob/master/source/ze_gtsetuppalette.prg

Seria trocar as 16 cores originais por outras cores, qualquer uma das milhões de cores do RGB.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Opções de PROMPT não aparecem após usar rgb

Mensagempor porter » 22 Mar 2018 17:06

Olá JoséQuintas, muito obrigado por sua atenção,
Achei essa rotina com palette e consegui compilar, agora quero entender como funciona, quero
compilar também essa rotina sua, uma dúvida, com o Setcolor(), consegue-se fazer
vários tons de cores ou para isso é necessário outras formas como o Palette por exemplo ?
HARBOUR 3.2.0(dev) GTWVG

PARAM PAL
IF PAL=NIL
   PAL="0"
ENDIF
CLS
PALETE=VAL(PAL)
SETBLINK(.F.)
CORDIGI2="W+/BG+,GR+/N,,,RG+/BG+"
CORDIGI="W+/R+*,GR+/N,,,G+/R+*"
CORDIGI3="W+/N+"
CORDIGI4="W+/R"

Palette(1, 8+PALETE)
Palette(2, 10+PALETE)
Palette(3, 12+PALETE)
Palette(10, 43+PALETE)
Palette(11, 19+PALETE)
Palette(12, 18+PALETE)

SETCOLOR(CORDIGI)
@ 02,00 CLEAR TO 12,20
@ 02,00 TO 12,20
@ 04,02 SAY "TESTE =>"
SETCOLOR(CORDIGI2)
@ 02,22 CLEAR TO 12,42
@ 02,22 TO 12,42
@ 04,24 SAY "TESTE =>"
SETCOLOR(CORDIGI3)
@ 14,00 CLEAR TO 24,20
@ 14,00 TO 24,20
@ 16,24 SAY "TESTE =>"
SETCOLOR(CORDIGI4)
@ 14,22 CLEAR TO 24,42
@ 14,22 TO 24,42
@ 16,24 SAY "TESTE =>"
@ 00,69 SAY "Tipo -> "+STR(PALETE,3)
TOT=0
DO WHIL TOT<>-21
   INKEY(0)
   TOT--
   Palette(1, 8+TOT)
   Palette(2, 10+TOT)
   Palette(3, 43+TOT)
   Palette(10, 23+TOT)
   Palette(11, 19+TOT)
   Palette(12, 18+TOT)   
   @ 00,69 SAY "Tipo -> "+STR(TOT,3)
ENDDO

TOT=0
DO WHIL TOT<>41
   INKEY(0)
   TOT++
   Palette(1, 8+TOT)
   Palette(2, 10+TOT)
   Palette(3, 43+TOT)
   Palette(10, 23+TOT)
   Palette(11, 19+TOT)
   Palette(12, 18+TOT)   
   @ 00,69 SAY "Tipo -> "+STR(TOT,3)
ENDDO

SCRMODE()
CLS
RETURN(.T.)
porter
Usuário Nível 5

Usuário Nível 5
 
Mensagens: 1024
Data de registro: 10 Dez 2009 15:44
Cidade/Estado: OLIMPIA-SP
Curtiu: 3 vezes
Mens.Curtidas: 23 vezes

Opções de PROMPT não aparecem após usar rgb

Mensagempor porter » 22 Mar 2018 17:29

Estou tentando compilar essa rotina, mas está dando o erro: Undefined reference to 'HB_FUN_WAPI_RGB'
é necessário acrescentar alguma biblioteca ?

/*
ZE_PALETTE - paleta de cores
*/

#include "hbgtinfo.ch"

FUNCTION GtSetupPalette()

   LOCAL aPalette

   // HKCU=HKEY_CURRENT_USER
   // cRootKey := "HKCU\Software\JPA Tecnologia\"

   // IF lSave
   // aPalette := hb_GtInfo( HB_GTI_PALETTE )
   // FOR nCont = 1 TO Len( aPalette )
   // Win_RegWrite( cRootKey + "Color" + Ltrim( Str( nCont ) ), aPalette[ nCont ] )
   // NEXT
   // ELSE
   aPalette := { ;
      wapi_Rgb(  30 , 30,  30 ), ; //  0 N   Black      Preto                   New Form Font Color
      wapi_Rgb(   0,  0,   80 ), ;   //  1 B   Blue     Azul
      wapi_Rgb(   0,  63, 125 ), ; //  2 G   Green      Verde
      wapi_Rgb(   0, 133, 133 ), ; //  3 BG  Cyan       Azul Celeste            Title and Selected BackGround
      wapi_Rgb( 150,   0,   0 ), ; //  4 R   Red        Vermelho
      wapi_Rgb( 133,   0, 133 ), ; //  5 RB  Magenta    Rosa
      wapi_Rgb( 133, 133,   0 ), ; //  6 GR  Brown      Marrom
      wapi_Rgb( 180, 180, 180 ), ; //  7 W   White      Branco
      wapi_Rgb(  42,  42,  42 ), ; //  8 N+  Gray       Cinza
      wapi_Rgb(   0, 114, 198 ), ; //  9 B+  +Blue      Azul Claro
      wapi_Rgb(   0,  31,  62 ), ; // 10 G+  +Green     Azul Escuro
      wapi_Rgb( 132, 150, 173 ), ; // 11 BG+ +Cyan      Azul Celeste Claro
      wapi_Rgb( 248,   0,  38 ), ; // 12 R+  +Red       Vermelho Claro          Alert
      wapi_Rgb(  64,   0,  64 ), ; // 13 RB+ +Magenta   Rosa Claro
      wapi_Rgb( 216, 152,   0 ), ; // 14 GR+ Yellow     Amarelo
      wapi_Rgb( 255, 255, 255 ) }  // 15 W+  +White     Branco Claro            New Get and Selected Font Color

   // FOR nCont = 1 TO Len( aPalette )
   // nInfRegistro := Win_RegRead( cRootKey + "Color" + Ltrim( Str( nCont ) ) )
   // IF nInfRegistro == NIL
   // Win_RegWrite( cRootKey + "Color" + Ltrim( Str( nCont ) ), aPalette[ nCont ] )
   // ELSE
   // aPalette[ nCont ] := nInfRegistro
   // ENDIF
   // NEXT
   // ENDIF
   hb_GtInfo( HB_GTI_PALETTE, aPalette )

   RETURN NIL
porter
Usuário Nível 5

Usuário Nível 5
 
Mensagens: 1024
Data de registro: 10 Dez 2009 15:44
Cidade/Estado: OLIMPIA-SP
Curtiu: 3 vezes
Mens.Curtidas: 23 vezes

Opções de PROMPT não aparecem após usar rgb

Mensagempor JoséQuintas » 22 Mar 2018 19:30

Importante:
O Harbour tem limite de 16 cores, igual ao Clipper.
É trocar as 16 cores no início do aplicativo, e trabalhar todo restante do tempo com essas 16 cores.

Tem diferença entre Harbour 3.2 e Harbour 3.4.
Dá uma procurada hbmk2 -find rgb
No 3.4:

hbwin.hbc (installed):
   wapi_RGB()


ou em hbwin.ch

#define WIN_RGB( nR, nG, nB )              ( nR + ( nG * 256 ) + ( nB * 256 * 256 ) )
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes




Retornar para Harbour

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 5 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro