Cor de Fundo

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

Moderador: Moderadores

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

Cor de Fundo

Mensagem 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
Avatar do usuário
Vlademiro
Usuário Nível 4
Usuário Nível 4
Mensagens: 752
Registrado em: 11 Jul 2005 02:46

COR DE FUNDO

Mensagem por Vlademiro »

O say tem a cláusula color
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

COR DE FUNDO

Mensagem 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,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
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

COR DE FUNDO

Mensagem 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
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

COR DE FUNDO

Mensagem por asimoes »

Abel,

Use COLORWIN(nLi, nCi, nLf, nCf, cCor)
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
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

Cor de Fundo

Mensagem 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
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Cor de Fundo

Mensagem 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".
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/
Responder