Clipper On Line • Ver Tópico - Cores de tela de fundo - Branco e amarelo intensos

Cores de tela de fundo - Branco e amarelo intensos

Discussão sobre a linguagem CA-Clipper.

Moderador: Moderadores

 

Cores de tela de fundo - Branco e amarelo intensos

Mensagempor EduardoSPno » 04 Out 2012 10:49

Fala amigos, tudo bem ?!?, gostaria de saber se alguem sabe como deixar o funco "branco" de tela, mas "branco" mesmo, nao o cinza habitual q fica.

Exemplo: Letra Azul e fundo branco
set color to b+/w

Obrigado por todos, abraco ...
Nota de Moderação:
Pablo César: O título foi alterado para melhor identificação do problema e exemplo no futuro.
EduardoSPno
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 59
Data de registro: 03 Mai 2012 16:23
Cidade/Estado: Sao Paulo/SP
Curtiu: 0 vez
Mens.Curtidas: 1 vez

Ajuda com cores de tela

Mensagempor Pablo César » 04 Out 2012 11:48

Veja o exemplo este exemplo:
SetMode(25,80)
SetColor("gr+/n")
For i=0 to 24
    @ i,00 Say Replicate(Chr(219),80) Color "w+/b"
Next
DBGShadow(05,10,18,50)
@ 05,10 To 18,50
For i=6 to 17
    @ i,11 Say Replicate(Chr(219),39) Color "gr+/w"
Next
@ 24,00 Say PadC("Tecle uma tecla para continuar...",80) Color "N/W"
Inkey(0)
Compile e verá este resultado:
Tela50.PNG
Você também pode alterar as tonalidades e até mesmo a cor original que o Clipper oferece através da função VGAPALETTE() da biblioteca CT.Lib, para maiores detalhes leia este tópico: http://www.pctoledo.com.br/forum/viewtopic.php?f=43&t=5754&start=0&hilit=cores
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar de usuário

Pablo César
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 5312
Data de registro: 31 Mai 2006 10:22
Cidade/Estado: Curitiba - Paraná
Curtiu: 142 vezes
Mens.Curtidas: 152 vezes

Ajuda com cores de tela

Mensagempor alxsts » 04 Out 2012 12:22

Olá!

Legal o exemplo do Pablo mas, para o que foi pedido, creio que baste:
SetColor( "B+/W*" )
[]´s
Alexandre Santos (AlxSts)
alxsts
Colaborador

Colaborador
 
Mensagens: 2945
Data de registro: 12 Ago 2008 15:50
Cidade/Estado: São Paulo-SP-Brasil
Curtiu: 21 vezes
Mens.Curtidas: 248 vezes

Ajuda com cores de tela

Mensagempor Pablo César » 04 Out 2012 12:26

creio que baste:
                          SetColor( "B+/W*" )
O asterisco serve para deixa piscando. E a sua indicação simplesmente não funciona no fundo quando utilizado "W+". Por isso foi colocado o caracter cheio ( Chr(219) ) para que pudesse aparecer qualquer cor como fundo. A não ser que atarvés do VGAPALETTE mude a cor "W" (branco cinza) para uma cor mais intensa como branco total.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar de usuário

Pablo César
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 5312
Data de registro: 31 Mai 2006 10:22
Cidade/Estado: Curitiba - Paraná
Curtiu: 142 vezes
Mens.Curtidas: 152 vezes

Ajuda com cores de tela

Mensagempor alxsts » 04 Out 2012 12:33

Olá!

Testei em xHarbour e funciona perfeitamente. Para desativar o fundo piscante é só colocar antes um:
SetBlink( .F. )
Infelizmente não tenho o Clipper instalado para testar nele.
[]´s
Alexandre Santos (AlxSts)
alxsts
Colaborador

Colaborador
 
Mensagens: 2945
Data de registro: 12 Ago 2008 15:50
Cidade/Estado: São Paulo-SP-Brasil
Curtiu: 21 vezes
Mens.Curtidas: 248 vezes

Ajuda com cores de tela

Mensagempor Pablo César » 04 Out 2012 12:45

Esclarecendo...

Pior Alexandre que funciona em Clipper, mas tem que colocar o SetBlink( .F. ), eis o código exemplo e tela:
SetBlink( .F. )
SetMode(25,80)
SetColor( "B+/W*" )
cls
SetColor("gr+/n")
DBGShadow(05,10,18,50)
SetColor("gr+/n")
@ 05,10 To 18,50
SetColor("n/gr+")
@ 06,11 Clear To 17,49
@ 24,00 Say PadC("Tecle uma tecla para continuar...",80) Color "N/W"
Inkey(0)
Pena que a sombra fica preta e não cinza como apareceu no meu primeiro exemplo. A cor amarela do quadro interno também naõ ficou com amarelo intenso.
Tela51.PNG

Se substituir o "+" pelo "*" ai funciona normal. Rs vai saber... !! Mas a sombra continua preta e não cinza... rs
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar de usuário

Pablo César
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 5312
Data de registro: 31 Mai 2006 10:22
Cidade/Estado: Curitiba - Paraná
Curtiu: 142 vezes
Mens.Curtidas: 152 vezes

Ajuda com cores de tela

Mensagempor alxsts » 04 Out 2012 12:59

Olá!

Funciona sim. Usei isso durante muitos anos em Clipper.

Se puder, tente fazer a sombra com o código abaixo e veja se fica melhor que aquela área preta. Peguei isso em algum lugar. Nem sei como funciona mas dá um aspecto melhor.
/***
*
*  BoxShadow( <nTop>, <nLeft>, <nBottom>, <nRight> ) --> NIL
*
*  Draw a box shadow with see through
*
*/
//------------------------------------------------------------------------------
FUNCTION BoxShadow( _Li, _Ci, _Lf, _Cf )

   LOCAL Tela1, Tela2, Tela3, Tela4

   Tela3 := SaveScreen(_Li + 1, _Cf + 1, _Lf + 1, _Cf + 1)
   Tela4 := SaveScreen(_Lf + 1, _Ci + 1, _Lf + 1, _Cf + 1)

   For Tela1:= 2 to Len(Tela3) step 2
      Tela2:= shadow(Asc(Substr(Tela3,Tela1,1)))
      Tela3:= Stuff(Tela3,Tela1,1,Tela2)
   End

   For Tela1:= 2 to Len(Tela4) step 2
      Tela2:= shadow(Asc(Substr(Tela4, Tela1,1)))
      Tela4:= Stuff(Tela4,Tela1,1,Tela2)
   End

   RestScreen(_Li + 1, _Cf + 1, _Lf + 1, _Cf + 1, Tela3)
   RestScreen(_Lf + 1, _Ci + 1, _Lf + 1, _Cf + 1, Tela4)

   Return NIL

//------------------------------------------------------------------------------
STATIC FUNCTION Shadow(_Car)
      Local Var1, Var2, Var3
      Var1:= _Car % 16
      Var2:= (_Car - Var1) / 16
      Var3:= {0, 0, 8, 8, 0, 8, 0, 8, 0, 1, 2, 3, 4, 5, 6, 7}
      Var1:= Var3[Var1 + 1]
      Var2:= Var3[Var2 + 1]
   RETURN Chr(16 * Var2 + Var1)

//------------------------------------------------------------------------------
[]´s
Alexandre Santos (AlxSts)
alxsts
Colaborador

Colaborador
 
Mensagens: 2945
Data de registro: 12 Ago 2008 15:50
Cidade/Estado: São Paulo-SP-Brasil
Curtiu: 21 vezes
Mens.Curtidas: 248 vezes

Ajuda com cores de tela

Mensagempor Pablo César » 04 Out 2012 13:10

Funcionou desta vez Alexandre, obrigado e desculpe a minha precipitação. Eu não sabia que o asterisco pudesse funcionar para alterar a intensidade após o SetBlink(.f.). Ficou igualzinha !
SetBlink( .F. )
SetMode(25,80)
SetColor( "B+/W*" )
cls
BoxShadow(05,10,18,50)
SetColor("gr+/n")
@ 05,10 To 18,50
SetColor("n/gr*")
@ 06,11 Clear To 17,49
@ 24,00 Say PadC("Tecle uma tecla para continuar...",80) Color "N/W"
Inkey(0)

FUNCTION BoxShadow( _Li, _Ci, _Lf, _Cf )
LOCAL Tela1, Tela2, Tela3, Tela4

Tela3 := SaveScreen(_Li + 1, _Cf + 1, _Lf + 1, _Cf + 1)
Tela4 := SaveScreen(_Lf + 1, _Ci + 1, _Lf + 1, _Cf + 1)
For Tela1:= 2 to Len(Tela3) step 2
   Tela2:= shadow(Asc(Substr(Tela3,Tela1,1)))
   Tela3:= Stuff(Tela3,Tela1,1,Tela2)
End
For Tela1:= 2 to Len(Tela4) step 2
   Tela2:= shadow(Asc(Substr(Tela4, Tela1,1)))
   Tela4:= Stuff(Tela4,Tela1,1,Tela2)
End
RestScreen(_Li + 1, _Cf + 1, _Lf + 1, _Cf + 1, Tela3)
RestScreen(_Lf + 1, _Ci + 1, _Lf + 1, _Cf + 1, Tela4)
Return NIL

STATIC FUNCTION Shadow(_Car)
Local Var1, Var2, Var3
Var1:= _Car % 16
Var2:= (_Car - Var1) / 16
Var3:= {0, 0, 8, 8, 0, 8, 0, 8, 0, 1, 2, 3, 4, 5, 6, 7}
Var1:= Var3[Var1 + 1]
Var2:= Var3[Var2 + 1]
RETURN Chr(16 * Var2 + Var1)
Com a mesma aparência da primeira tela:
Anexos
Tela52.PNG
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar de usuário

Pablo César
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 5312
Data de registro: 31 Mai 2006 10:22
Cidade/Estado: Curitiba - Paraná
Curtiu: 142 vezes
Mens.Curtidas: 152 vezes

Cores de tela de fundo - Branco e amarelo intensos

Mensagempor alxsts » 04 Out 2012 13:21

Olá!

Legal! São os guardados do fundo do baú...

Talvez fosse interessante colocar esta rotina de sombra em um local separado, para facilidade de acesso e localização. Não sei se na Seção de Downloads ou na parte de Contribuições...
[]´s
Alexandre Santos (AlxSts)
alxsts
Colaborador

Colaborador
 
Mensagens: 2945
Data de registro: 12 Ago 2008 15:50
Cidade/Estado: São Paulo-SP-Brasil
Curtiu: 21 vezes
Mens.Curtidas: 248 vezes

Cores de tela de fundo - Branco e amarelo intensos

Mensagempor EduardoSPno » 04 Out 2012 16:02

Fala galera, valeu pela força, mas acho q faltou dizer uma coisinha, nos exemplos a tela fica branca utilizando o replicate(chr)219)), mas por exemplo se eu for deixar algo digitado no meio, ta la a faixa cinza (em vez do branco) e a letra da cor desejada ....

@00,00 Say Replicate(Chr(219),80) Color "w+/b"

AK SO PRA VER COMO FICA:
@10,10 say "TESTE DE LETRA COM FUNDO BRANCO !!"
EduardoSPno
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 59
Data de registro: 03 Mai 2012 16:23
Cidade/Estado: Sao Paulo/SP
Curtiu: 0 vez
Mens.Curtidas: 1 vez

Cores de tela de fundo - Branco e amarelo intensos

Mensagempor EduardoSPno » 04 Out 2012 16:19

HEHE, Falha minha ak galera, se utilizar o SETBLINK( .F. ) o fundo fica legal, assim da pra utilizar o branco sem problemas no fundo das letras, o unico probleminha é q nao sera mais possivel exibir uma mensagem piscando "*", sendo q o mesmo no SETBLINK exibe o branco, e nao o piscante ....

Agradeco muito a atencao de todos, um CLIP ABRACO !!!

Aproveitando, alguem ja conseguiu rodar a biblioteca VL2_52.LIB no WIN7???, a tela fica toda desconfigurada ...

Valeu galera ....
EduardoSPno
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 59
Data de registro: 03 Mai 2012 16:23
Cidade/Estado: Sao Paulo/SP
Curtiu: 0 vez
Mens.Curtidas: 1 vez

Cores de tela de fundo - Branco e amarelo intensos

Mensagempor alxsts » 04 Out 2012 16:36

Olá!

Uma opção para exibir uma mensagem piscando seria habilitar o SetBlink( .T. ), exibir a mensagem e desabilitar SetBlink( .F. ).
[]´s
Alexandre Santos (AlxSts)
alxsts
Colaborador

Colaborador
 
Mensagens: 2945
Data de registro: 12 Ago 2008 15:50
Cidade/Estado: São Paulo-SP-Brasil
Curtiu: 21 vezes
Mens.Curtidas: 248 vezes

Cores de tela de fundo - Branco e amarelo intensos

Mensagempor Pablo César » 04 Out 2012 19:46

alxsts escreveu:Uma opção para exibir uma mensagem piscando seria habilitar o SetBlink( .T. ), exibir a mensagem e desabilitar SetBlink( .F. ).
Bom não creio nesse caso que as cores continuem funcionando (iriam retornar as cores não desejadas) e sendo em Clipper no XP o piscar não funciona ao menos em modo janelado.

Para não quebrar a idéia do que foi indicado e dependendo de que forma quer mostrar as mesnagens de piscar, teria outra forma:
SetBlink( .F. )
SetMode(25,80)
SetColor( "B+/W*" )
cls
BoxShadow(05,10,18,50)
SetColor("gr+/n")
@ 05,10 To 18,50
SetColor("n/gr*")
@ 06,11 Clear To 17,49
@ 24,00 Say PadC("Pressione <Esc> para sair...",80) Color "N/W"
SetCursor(0)
nKey:=0
Do While nKey=0
   nKey:=Inkey(0.3)
   @ 10,20 Say "Texto piscando..." Color "bg+/b"
   nKey:=Inkey(0.3)
   @ 10,20 Say "                 " Color "gr/gr*"
Enddo

FUNCTION BoxShadow( _Li, _Ci, _Lf, _Cf )
LOCAL Tela1, Tela2, Tela3, Tela4

Tela3 := SaveScreen(_Li + 1, _Cf + 1, _Lf + 1, _Cf + 1)
Tela4 := SaveScreen(_Lf + 1, _Ci + 1, _Lf + 1, _Cf + 1)
For Tela1:= 2 to Len(Tela3) step 2
   Tela2:= shadow(Asc(Substr(Tela3,Tela1,1)))
   Tela3:= Stuff(Tela3,Tela1,1,Tela2)
End
For Tela1:= 2 to Len(Tela4) step 2
   Tela2:= shadow(Asc(Substr(Tela4, Tela1,1)))
   Tela4:= Stuff(Tela4,Tela1,1,Tela2)
End
RestScreen(_Li + 1, _Cf + 1, _Lf + 1, _Cf + 1, Tela3)
RestScreen(_Lf + 1, _Ci + 1, _Lf + 1, _Cf + 1, Tela4)
Return NIL

STATIC FUNCTION Shadow(_Car)
Local Var1, Var2, Var3
Var1:= _Car % 16
Var2:= (_Car - Var1) / 16
Var3:= {0, 0, 8, 8, 0, 8, 0, 8, 0, 1, 2, 3, 4, 5, 6, 7}
Var1:= Var3[Var1 + 1]
Var2:= Var3[Var2 + 1]
RETURN Chr(16 * Var2 + Var1)
Mas outra forma (por não dizer gambiarra de simular uma mensagem que pisca...
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar de usuário

Pablo César
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 5312
Data de registro: 31 Mai 2006 10:22
Cidade/Estado: Curitiba - Paraná
Curtiu: 142 vezes
Mens.Curtidas: 152 vezes

Cores de tela de fundo - Branco e amarelo intensos

Mensagempor alxsts » 04 Out 2012 19:51

Olá!

Pensei nisso hahaha mas achei muita POG. Afinal nem gosto de mensagens piscando, prefiro um Alert(), não esquecendo que esta função tem um terceiro parâmetro para configurar a cor desejada.
[]´s
Alexandre Santos (AlxSts)
alxsts
Colaborador

Colaborador
 
Mensagens: 2945
Data de registro: 12 Ago 2008 15:50
Cidade/Estado: São Paulo-SP-Brasil
Curtiu: 21 vezes
Mens.Curtidas: 248 vezes

Cores de tela de fundo - Branco e amarelo intensos

Mensagempor JoséQuintas » 04 Out 2012 23:06

Aproveitando o post.
Ao modificar as cores padrão percebi o seguinte:
Usando número ao invés de letras o resultado é certo.
Tipo... W+ equivale a cor 15.
SetColor("0/15")
SetColor("N/W+")
Por letra, o + não tem efeito na cor de fundo.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18150
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1215 vezes

Próximo



Retornar para CA-Clipper

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 10 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro