Página 1 de 2

Cor do Get

Enviado: 04 Set 2007 18:22
por fjokiller
Galera gostaria de saber se tem como mudar a cor do get de forma dinâmica.

Por exemplo: Quando tou incluindo um cliente, existe um campo conjuge onde pego o cpf dele mas caso esse conjuge já seja cliente e esteja com débito em atraso, quero que o get mude pra cor vermelha, tem como fazer isso???

Desde já agradeço....

Enviado: 04 Set 2007 19:18
por diogenes_varela
Claro que dá pra fazer isso, mas vai depender de uma consulta logo após vc digitar o nome do cônjuge, que pode ter o mesmo CPF ou não - e se a consulta for pelo nome, se foi digitado da mesma forma.

Se tiver problema vai pra cor vermelha. Não esqueça de voltar a cor normal logo em seguida.

Qualquer coisa, volte aqui.

Enviado: 04 Set 2007 19:33
por sygecom
EX:

Código: Selecionar todos

faça a consulta....do CPF.....
IF vCPF="SUJO"
   @ 22,03 GET vRAZAO "@!"   COLOR( "r/W" )
ELSE
   @ 22,03 GET vRAZAO "@!"
ENDIF
Abraços
Loenardo Machado

Enviado: 04 Set 2007 19:55
por fjokiller
Obrigado pelas respostas mas
Acho q vc não entenderam... eu primeiro tenho q montar a tela, por exemplo:

@ 10, 10 get cCPF // Cpf do cliente
@ 11, 10 get cNome // Nome do Cliente
@ 12, 10 get ccpfConjuge // Cpf do Conjuge
@ 13, 10 get Nomeconjuge // nome do conjuge que deve ficar vermelho caso o conjuge tenha pagamentos em atraso....

entederam todos os gets devem ficar no mesmo Read e só vou saber o cpf na hora q estiver preenchendo os get's... ou seja quero q o get do nome mude de forma dinamica....

Enviado: 04 Set 2007 20:00
por Eolo
Leo, acho que o FJOKILLER precisa de outra coisa...
Ele só vai saber se o CPF é sujo ou não, depois que digitar o nome do Fulano, o CPF do Fulano, digitar o Nome e CPF da CONJUGE do Fulano e, se a cônjuge estiver suja, fazer o GET dela ficar em vermelho...
É isso, FJOKILLER?

Enviado: 04 Set 2007 20:03
por fjokiller
exatamente isso...quero mudar a cor get dp q o cpf do conjuge ser digitado... mas todos os get's tem q estarem no mesmo read

Enviado: 04 Set 2007 20:15
por sygecom
Desculpa, eu não tinha entendido !!!
Nessa caso use o WHEN para chamar uma função que vai verificar se o CPF esta sujo OU não e devolvendo uma condição que vai mudar ou não a cor do GET...o READ..não prescissa ser chamado para VALIDAR...olhe como eu uso a Validação do CPF.
eX:

Código: Selecionar todos

@ 06,14 get FCPF PICT "@r !!!.!!!.!!!-!!"  when DwnMsg( "Informe o N§ do CPF" )
@ ROW(),COL()+25 get xRG  WHEN CPF()   .and. DwnMsg( "Informe o N§ do RG" )
No meu exemplo acima o campo RG jah vai chegar com a VARIAVEL que vai definir a COR do tal GET...

Era isso ?

Abraços
Leonardo Machado

Enviado: 04 Set 2007 21:41
por diogenes_varela
Antes do READ ler o CPF não há como mudar a cor, porque você estará usando GET.

Mesmo o WHEN se baseará em uma informação lida pelo READ.

A única forma que vejo é usar o INKEY para formar o número que será verificado, e fazer a consulta logo em seguida. Só que esse processo deverá ser usado para todos as informações. Em bloco.

Enviado: 04 Set 2007 21:46
por Maligno
Será possível mudar a cor dinamicamente se o GETSYS for modificado pra isso. Ou, se um VALID saltar pra uma função que faça a modificação direta no objeto do campo. Com a devida reimpressão, claro. Não lembro exatamente quais são os dados, mas é só uma questão de pesquisar pelo NG.

Enviado: 04 Set 2007 22:26
por fjokiller
Não é qdo eu estou usando um get é mudar a cor do get seguinte de acordo com uma funcao do anterior...

exemplo:
get cpf when validacpf
get nomecpf (se validacpf = verdadeiro, esse get tem q ficar vermelho)


tem condicoes, sem mudar o getsys?

Enviado: 04 Set 2007 22:50
por Stanis Luksys
fjokiller escreveu:tem condicoes, sem mudar o getsys?
Aí vai um exemplinho feito na hora, da pra elaborar melhor:

Código: Selecionar todos

cls

a = space(1)
b = space(20)

public getlist := {}

@ 10, 10 say "SEXO:" get a valid a $ "MF" picture "!" 
@ 12, 10 say "NOME:" get b when mudacor()
read

function mudacor()
	if ( getlist[1]:varget() == "M" )
		getActive():colorDisp(",w+/b")
	else
		getActive():colorDisp(",w+/r")
	endif
return .t.
Se for homem, o nome fica em azul, se mulher, vermelho.


Trabalhar com o objeto GET é necessário em muitas ocasiões. Eu uso bastante quando quando estou numa lista de gets e de acordo com uma variavel chamo uma função com varios outros gets, se não tratar o getlist, ao ler o segundo read, todos os gets do primeiro seriam perdidos.

Este é só um exemplo simples, existem muitas outras sitiuações onde uso. O que não dá é pra ter um READ a cada GET, e nem deixar que se o cara der um ESC ele perca tudo desde o primeiro campo...

No Clipper é sempre preciso umas coisas mirabolantes para prever este tipo de situação. No meu sistema, muitas vezes se você der um ESC ele volta pra metade da lista de gets, e não pro primeiro.

Falou!

Enviado: 04 Set 2007 23:35
por fjokiller
Cara deu certo, valeu mesmo..muito obrigado...e obrigado a todo mundo que respondeu....

Enviado: 05 Set 2007 00:08
por diogenes_varela
Cara deu certo
Mas não faltou resolver o problema da consulta? De onde está vindo a informação sobre se o cônjuge está ou não em débito?

Enviado: 05 Set 2007 00:49
por Maligno
Stanis escreveu:

Código: Selecionar todos

function mudacor() 
   if ( getlist[1]:varget() == "M" ) 
      getActive():colorDisp(",w+/b") 
   else 
      getActive():colorDisp(",w+/r") 
   endif 
return .t.
Era sobre isso mesmo que eu estava falando. Maravilha. :)
dogenes_varela escreveu:Mas não faltou resolver o problema da consulta? De onde está vindo a informação sobre se o cônjuge está ou não em débito?
Ah, mas isso foi só um exemplo. O colega deve ter resolvido completando a parte que falta.

Enviado: 05 Set 2007 08:24
por miracle
Se alguém precisar, também há um jeito de mudar a cor do
GET quando ele recebe foco. Ei-lo:

Código: Selecionar todos

@ 07,43 GET cFORNECEDOR PICTURE "@!" SEND COLORSPEC := "16/15, 14/01"
Até breve! :)Pos