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

Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Recursos do Object Get

Mensagem por asimoes »

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

Código: Selecionar todos

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

Recursos do Object Get

Mensagem por asimoes »

Uma variação da função:

Código: Selecionar todos

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)
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Recursos do Object Get

Mensagem por alxsts »

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"

Código: Selecionar todos

@ 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.

Código: Selecionar todos

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

Recursos do Object Get

Mensagem por asimoes »

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

Recursos do Object Get

Mensagem por JoséQuintas »

É 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 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