SETCOLOR()
 Retorna as cores correntes e opcionalmente configura novas cores
------------------------------------------------------------------------------

 Sintaxe

     SETCOLOR([<cCorNova>]) --> cCorAnterior

 Argumentos

     <cCorNova> é uma cadeia de caracteres que contém uma lista de
     configuraçoes de atributos de cores para subsequente escrita em tela.
     A seguir está uma lista de configuraçoes e sua abrangência:

     Tabela 5-29: Padroes de Cor
     ------------------------------------------------------------------------
     Tipo                 Abrangência
     ------------------------------------------------------------------------
     Padrao               Toda saída em tela
     Destaque             GETs e barras luminosas
     Borda                Borda da tela, nao suportado em EGA e VGA
     Fundo                Nao suportado
     Nao selecionado      GETs nao selecionados
     ------------------------------------------------------------------------

     Cada configuraçao é uma cor de letra e uma cor de fundo separada pelo
     caractere barra (/), e seguida de vírgula.  Todas as configuraçoes sao
     opcionais.  Se uma configuraçao for omitida, seu valor anterior é
     retido, e somente os novos valores sao re-configurados.  As
     configuraçoes podem ser puladas na lista ou omitidas do final, como
     ilustram os exemplos abaixo.

 Retorno

     SETCOLOR() retorna as configuraçoes de cor correntes na forma de uma
     cadeia de caracteres.

 Descriçao

     SETCOLOR() é uma funçao de tratamento de tela utilizada para gravar a
     configuraçao de cores corrente, e opcionalmente configurar novas cores
     para subsequente escrita em tela.  Um string com o padrao de cor é
     constituido de várias configuraçoes de cores, cada cor correspondendo a
     diferentes regioes da tela, ou seja: a cor dos caracteres exibidos na
     tela, e a cor exibida atrás do caractere.

     No Clipper, há várias configuraçoes de cor que definem o comportamento
     das cores:

     Padrao: A configuraçao padrao é usada por todos os comandos e
     funçoes de console e de tela, e de interface com o usuário, ao se
     utilizarem da tela.  Isto inclui comandos como @...PROMPT, @...SAY, e
     ?, e funçoes como ACHOICE(), DBEDIT(), e MEMOEDIT().

     Destaque: A configuraçao destaque é utilizada para exibiçoes
     destacadas.  Isto inclui GETs com INTENSITY ON, e o destaque de seleçao
     de MENU TO, DBEDIT(), e ACHOICE().

     Borda: A borda é a área em volta da tela, onde nao se pode
     escrever.

     Fundo: O fundo nao é suportado.

     Nao selecionado: A configuraçao nao selecionado fornece foco de
     entrada através da exibiçao do GET corrente na cor destaque, enquanto
     ou outros GETs sao exibidos na cor nao selecionada.

     Além das cores, as configuraçoes de cor dos caracteres podem ter
     atributos de alta intensidade e piscante.  Com uma exibiçao
     monocromática, a alta intensidade dá mais brilho ao texto escrito.  Com
     uma exibiçao a cores, a alta intensidade modifica o matiz da cor
     especificada, tornando-a uma cor diferente.  Por exemplo, "N" exibe o
     caractere em preto, enquanto que "N+" exibe o mesmo texto em cinza.  A
     alta intensidade é designada com "+".  O atributo piscante faz os
     caracteres piscarem a intervalos rápidos.  Este atributo é designado
     com "*".   O caractere de atributo pode ocorrer em qualquer lugar no
     string de configuraçao, mas é sempre aplicado à cor do caractere, nao
     importa onde ocorrer.

     As seguintes cores sao suportadas:

     Tabela 5-30: Lista de Cores
     ------------------------------------------------------------------------
     Cor                     Letra                Monocromático
     ------------------------------------------------------------------------
     Preto                   N,Espaço             Preto
     Azul                    B                    Sublinhado
     Verde                   G                    Branco
     Ciano                   BG                   Branco
     Vermelho                R                    Branco
     Magenta                 RB                   Branco
     Marrom                  GR                   Branco
     Branco                  W                    Branco
     Cinza                   N+                   Branco
     Azul Brilhante          B+                   Sublinhado Brilhante
     Verde Brilhante         G+                   Branco Brilhante
     Ciano Brilhante         BG+                  Branco Brilhante
     Vermelho Brilhante      R+                   Branco Brilhante
     Magenta Brilhante       RB+                  Branco Brilhante
     Amarelo                 GR+                  Branco Brilhante
     Branco Brilhante        W+                   Branco Brilhante
     Preto                   U                    Sublinhado
     Vídeo Inverso           I                    Vídeo Inverso
     Incolor                 X                    Incolor
     ------------------------------------------------------------------------

 Notas

       Argumentos nao sao especificados: Ao contrário de SET
        COLOR TO, SETCOLOR() sem argumentos nao recupera as cores para seus
        valores padrao.

       Números de cores: SETCOLOR() suporta combinaçoes de
        letras de cores, mas nao números de cores.

 Exemplos

       Este exemplo atribui a configuraçao de cores corrente à
        variável cColor:

        cColor := SETCOLOR()

       Este exemplo demonstra como SETCOLOR() pode ser utilizada
        para gravar a configuraçao de cores corrente e configurar outra.

        cNewColor := "BR+/N, R+/N"
        cOldColor := SETCOLOR(cNewColor)

       Este exemplo usa SET COLOR TO para reconfigurar as cores
        padrao:

        SET COLOR TO
        ? SETCOLOR()                // Resulta: W/N, N/W, N, N, N/W

       Estes exemplos demonstram a especificaçao de SETCOLOR() com
        configuraçoes faltantes:

        // Configuracoes omitidas no final da lista
        SETCOLOR("W/N, BG+/B")
        //
        // Configuracoes saltadas no meio da lista
        SETCOLOR("W/N, BG+/B,,,W/N")

       Este exemplo ilustra como utilizar SETCOLOR() juntamente com
        ISCOLOR() para configurar as cores de acordo com o tipo de vídeo:

        FUNCTION DefaultColors
           IF ISCOLOR()
              cForm := "W+/N, BG+/B,,,W/N"
              cDialog := "N/N+, BG+/B,,,N/N+"
              cAlert := "W+/R, BG+/B,,,W+/R"
           ELSE
              cForm := "W+/N, N/W,,,W/N"
              cDialog := "W+/N, N/W,,,W/N"
              cAlert := "W+/N, N/W,,,W/N"
           ENDIF
           RETURN NIL

 Arquivos:  Biblioteca CLIPPER.LIB.
 To download this example - click here.

See Also: ISCOLOR() SET COLOR* SET INTENSITY Cores