Página 1 de 1

Cor de Fundo

Enviado: 19 Out 2016 22:43
por Abel
Ola, pessoal.

Gostaria de saber se tem uma forma de eu alterar a cor do fundo da linha onde o cursor estiver,
sem usar o comando color, parecido com a FUNCAO SOMBRA() mas que eu tivesse como mudar o fundo
e a cor da letra permanecesse a mesma.

Desta forma nao precisaria mudar a cor pelo set color e usar o @ say para reexibir a linha.

Desde ja agradeço,
ABEL

COR DE FUNDO

Enviado: 20 Out 2016 00:43
por Vlademiro
O say tem a cláusula color

COR DE FUNDO

Enviado: 20 Out 2016 07:41
por Toledo
Amigos, poderia também usar as propriedades (:colorSpec) do objeto GET, seja este exemplo que está na documentação do Harbour:

Código: Selecionar todos

// The example compares the creation of a single Get
// using command oriented and object oriented syntax

   PROCEDURE Main
      LOCAL cString:= "Testing Gets     "
      LOCAL bBlock

      @ 2, 2 SAY "String 1"        ;
             GET cString           ;
           COLOR "N/BG,W+/B"       ;
           VALID !Empty( cString ) ;
         PICTURE "@K"

      READ

      bBlock := {|x| IIf( x==NIL, cString, cString := x ) }

      @ 4, 2 SAY "String 2"

      oGet           := Get():new()
      oGet:row       := Row()
      oGet:col       := Col() + 1
      oGet:block     := bBlock
      oGet:name      := "cString"
      oGet:picture   := "@K"
      oGet:colorSpec := "N/BG,W+/B"
      oGet:postBlock := {|o| ! Empty(o:varGet()) }
      oGet:display()

      ReadModal( {oGet} )

   RETURN
Abraços,

COR DE FUNDO

Enviado: 20 Out 2016 12:34
por Abel
ola pessoal, agradeço as respostas.

Não sei se fui claro, posso ate estar "viajando nas ideias ..."
a ideia seria mudar a cor do fundo da linha onde o cursor estiver
antes de um inkey(0) sem reexibir os @ say

exemplo:

@ row(), 0 ate row(), maxcol()
mudar o fundo mantendo todas as letras na mesma cor

Desde ja agradeço.
Abel

COR DE FUNDO

Enviado: 20 Out 2016 15:00
por asimoes
Abel,

Use COLORWIN(nLi, nCi, nLf, nCf, cCor)

Cor de Fundo

Enviado: 05 Nov 2016 14:30
por Abel
Ola, colorwin funcionou bem.
o problema é que na mesma linha tenho cores de letras diferentes e
no colowin tenho que definir a cor da letra e do fundo, e neste caso muda a area inteira.

queria mudar apenas o fundo independente da cor da letra, será que existe este recurso ?

Agradeço a ajuda,
Abraços,
ABEL

Cor de Fundo

Enviado: 05 Nov 2016 18:13
por JoséQuintas
Avalie melhor o que quer fazer.
Se vai mostrar algo na tela, vai ter que usar cor.
Então é mostrar já na cor que deve ser.

Se quer textos personalizados, de cores diferentes, de repente funções pra isso.

Código: Selecionar todos

FUNCTION MostraStatus( cText )
   @ 2, 10 Say Padc( cText, 20 ) COLOR W/R
   RETURN NIL

FUNCTION MostraScore( cText )
   @ 4, 10 SAY Padc( cText, 20 ) COLOR W/GR
   RETURN NIL
Dessa forma, vai trabalhar no fonte sem usar cores, e sem se preocupar com o posicionamento.

Código: Selecionar todos

MostraStatus( "ALTERANDO" )
MostraScore( "JOGO INICIADO" )

Aproveitando: de certa forma, é isso que se faz em ambiente GUI, onde o fonte deveria não depender de coordenadas, como se cada função fosse um componente GUI diferente, sendo responsável pela "sua janelinha".