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: 3108
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: 20415
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP
Curtiram: 1 vez

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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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