Página 1 de 1

dúvida com comando COLOR

Enviado: 12 Ago 2016 14:25
por porter
olá pessoal, tenho um comando assim, que da certo:

@24,00 say "TESTE" COLOR "W+/G"

porque dessas formas abaixo não da certo, ele nao assume a cor da variavel ccor ?

ccor = "W+/G"
@24,00 say "TESTE" COLOR ccor
@24,00 say "TESTE" COLOR &ccor

obrigado.

dúvida com comando COLOR

Enviado: 12 Ago 2016 17:49
por JoséQuintas
Estranho não funcionar com macro.

Tente outras opções:

Código: Selecionar todos

SET COLOR TO ( cCor )
SetColor( cCor )
Uso assim:

Código: Selecionar todos

SetColor( SetColorCorNormal() )
@ 5, 10 SAY "texto" COLOR ( SetColorAlert() )

FUNCTION SetColorCorNormal()
   RETURN "W/N,N/W,,,W/N"

FUNCTION SetColorAlert()
   RETURN "R/W,N/W,,,R/W"
Facilita alterar todas as cores de uma vez, além do próprio compilador testar se a função existe, evitando erros de digitação.

Explicação:

Cor no Clipper é texto, e direto no fonte.
Então complica usar variável, a não ser que use SetColor()
Usando parêntesis, o Clipper entende que deve tratar como variável, e não como texto.

O mesmo vale pra outras coisas

Código: Selecionar todos

SELECT A
SELECT ( A )
&( "var" + StrZero( nCont, 5 ) )
Nota: No Harbour apenas continuei usando a mesma coisa, nem testei se aceita diferente.

dúvida com comando COLOR

Enviado: 13 Ago 2016 09:46
por porter
obrigado JoseQuintas.

dúvida com comando COLOR

Enviado: 13 Ago 2016 10:27
por Pablo César
Para mim funciona e sempre funcionou. O que esta errado é o uso do macro, pois o conteúdo da variável ccor não é comando/função que devolve o valor caracter. De por si o seu valor da variável já é um caracter que neste caso vale "W+/G". Então eu não entendo que deveria funcionar @24,00 say "TESTE" COLOR &ccor sim funciona o @24,00 say "TESTE" COLOR ccor

dúvida com comando COLOR

Enviado: 13 Ago 2016 11:10
por Jairo Maia
Olá Pessoal,
Pablo César escreveu:Então eu não entendo que deveria funcionar @24,00 say "TESTE" COLOR &ccor
Com macro só funcionaria se você colocar entre aspas simples, aspas duplas ou colchetes. Exemplo:

Código: Selecionar todos

CLS
ccor:="W+/G"
@ 02, 05 say "TESTE" COLOR '&ccor.'
@ 04, 05 say "TESTE" COLOR "&ccor."
@ 06, 05 say "TESTE" COLOR [&ccor.]
SetPos( 08,00)
Pois trata-se de uma macro substituição enviada por parâmetro.