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:
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
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.