Clipper On Line • Ver Tópico - Recursos do Object Get

Recursos do Object Get

Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.

Moderador: Moderadores

 

Recursos do Object Get

Mensagempor asimoes » 07 Jan 2016 14:17

Pessoal,

Um recurso interessante do objeto Get são os métodos que podemos utilizar em uma validação (valid)

Duas formas de restaurar o valor do GET se for necessário exibir o valor original/desfazer alteração em caso de digitação errada

cCidade := "RIO DE JANEIRO"
@ 10,00 SAY "Cidade: " GET cCidade VALID Valida(@cCidade)
READ

FUNCTION Valida(cVar)
LOCAL cGet := GetActive(), cBuf := cGet:VarGet()
IF Empty(cBuf)
   cVar:= GetList[1]:Original
   //Ou 
   GetList[1]:Undo()
ENDIF
RETURN .T.
â–º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)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Recursos do Object Get

Mensagempor asimoes » 07 Jan 2016 16:33

Uma variação da função:

FUNCTION Valida(cVar)
LOCAL cGet := GetActive(), cBuffer := cGet:VarGet()
STATIC cVarOri
   IF cVarOri = Nil
      cVarOri := GetList[1]:Original
   ENDIF
   IF cBuffer <> cVarOri
      GetList[1]:VarPut(cVarOri)
      GetList[1]:UpdateBuffer()
   ENDIF
RETURN .T.
â–º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)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Recursos do Object Get

Mensagempor alxsts » 07 Jan 2016 17:58

Olá!

Se não se importa, fiz uns ajustes no teu código. Da forma como estava, poderia dar problema. Você faz uma referência fixa a GetList[1] quando o correto é tratar o Get atual (GetActive() ), que pode ser diferente de um, quando o GetList tem múltiplos Gets.
cCidade := "RIO DE JANEIRO"
@ 10,00 SAY "Cidade: " GET cCidade VALID Valida(@cCidade)
READ

FUNCTION Valida(cVar)
LOCAL cGet := GetActive(), cBuf := cGet:VarGet()

IF Empty(cBuf)
   cVar:= cGet:Original
   //Ou 
   cGet:Undo()
ENDIF
RETURN .T.

FUNCTION Valida()
LOCAL cGet := GetActive(), cBuffer := cGet:VarGet()
STATIC cVarOri
   IF cVarOri = Nil
      cVarOri := cGet:Original
   ENDIF
   IF cBuffer <> cVarOri
      cGet:VarPut(cVarOri)
      cGet:UpdateBuffer()
   ENDIF
RETURN .T.
Não testei...
[]´s
Alexandre Santos (AlxSts)
alxsts
Colaborador

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

Recursos do Object Get

Mensagempor asimoes » 07 Jan 2016 18:50

Alexandre,

Bem lembrado!

Fica a dica para as duas formas.
â–º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)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Recursos do Object Get

Mensagempor JoséQuintas » 30 Out 2018 12:14

É que trata-se apenas de um exemplo.
Uso isso no copiar/colar - não o control-u, mas o get atual.
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: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes




Retornar para Contribuições, Dicas e Tutoriais

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 16 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