Clipper On Line • Ver Tópico - Como chamar função para validar no GetBox ?

Como chamar função para validar no GetBox ?

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

 

Como chamar função para validar no GetBox ?

Mensagempor Softwhouse » 08 Nov 2013 17:38

Como faço para chamar uma função de validação no GetBox ?
Fernando
Softwhouse
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 300
Data de registro: 07 Dez 2011 17:44
Cidade/Estado: Porto Alegre/RS
Curtiu: 0 vez
Mens.Curtidas: 12 vezes

Como chamar função para validar no GetBox ?

Mensagempor Toledo » 08 Nov 2013 20:58

Fernando, no GETBOX você pode usar o VALID.

     DEFINE GETBOX oEstado
            ROW    360
            COL    680
            WIDTH  30
            HEIGHT 20
            VALUE SPACE(2)
            PICTURE "@!"
            VALID {|| ValidaUF(this.value) }
            MESSAGE "Informe a Sigla do Estado"
     END GETBOX 


Veja também a pasta \SAMPLES\BASIC\GetBox da sua versão da MiniGui, que tem outros exemplos.

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar de usuário

Toledo
Administrador

Administrador
 
Mensagens: 3038
Data de registro: 22 Jul 2003 18:39
Cidade/Estado: Araçatuba - SP
Curtiu: 263 vezes
Mens.Curtidas: 258 vezes

Como chamar função para validar no GetBox ?

Mensagempor Softwhouse » 11 Nov 2013 14:44

Toledo, boa tarde, já havia chamado a função dessa forma, acredito que o problema então esteja no retorno (.T.) pois o foco não sai do campo a validar.
Fernando
Softwhouse
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 300
Data de registro: 07 Dez 2011 17:44
Cidade/Estado: Porto Alegre/RS
Curtiu: 0 vez
Mens.Curtidas: 12 vezes

Como chamar função para validar no GetBox ?

Mensagempor Toledo » 11 Nov 2013 15:53

Fernando, a função no VALID tem que retornar .T. ou .F., e o foco só vai para o próximo campo quando o retorno for .T.

Só lembrando....
Toledo escreveu:Mas o GetBox tem um pequeno problema quando se usa o VALID, você não consegui ir para um outro campo do form ou clicar em algum botão se deixar o GetBox vazio, você tem que digitar um valor válido para sair do GetBox, mesmo que você esteja clicando num botão "Sair" ou "Cancela" que vai finalizar o form (release). Apesar que teclando ESC o form é finalizado sem validar o GetBox.


Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar de usuário

Toledo
Administrador

Administrador
 
Mensagens: 3038
Data de registro: 22 Jul 2003 18:39
Cidade/Estado: Araçatuba - SP
Curtiu: 263 vezes
Mens.Curtidas: 258 vezes

Como chamar função para validar no GetBox ?

Mensagempor Softwhouse » 11 Nov 2013 17:08

Toledo, o que está acontecendo é o seguinte:

Usei Picture '@R 99.999.999/9999-99' e o 'this.value' passa a máscara junto. Qual o comando para passar somente o valor sem a máscara? Obrigado!
Fernando
Softwhouse
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 300
Data de registro: 07 Dez 2011 17:44
Cidade/Estado: Porto Alegre/RS
Curtiu: 0 vez
Mens.Curtidas: 12 vezes

Como chamar função para validar no GetBox ?

Mensagempor Pablo César » 11 Nov 2013 18:42

Se o problema é remover as máscara após o This.Value, você poderia utilizar a função CharRem removendo os caracteres pontos, traços e barra.
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

Como chamar função para validar no GetBox ?

Mensagempor Softwhouse » 11 Nov 2013 19:09

Grande Pablo! Resolveu o problema. Estava pensando em usar StrTran() dentro da função. Usei CharRem(), que eu não conhecia, e ficou assim: Valid {||CharRem('. / -', this.value)}.
Valeu, muito obrigado.
Fernando
Softwhouse
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 300
Data de registro: 07 Dez 2011 17:44
Cidade/Estado: Porto Alegre/RS
Curtiu: 0 vez
Mens.Curtidas: 12 vezes

Como chamar função para validar no GetBox ?

Mensagempor Toledo » 11 Nov 2013 19:16

Softwhouse escreveu:Usei Picture '@R 99.999.999/9999-99' e o 'this.value' passa a máscara junto.


Fernando, fiz um teste aqui e a máscara não vai junto com o this.Value.

#include "minigui.ch"

*----------------------
function main
*----------------------

define window form_1 ;
   at 0,0 width 300 height 250 ;
   title "Getbox Picture Demo" ;
   main

   @  50,40 getbox getbox_1 Value Spac(14) Picture "@R 99.999.999/9999-99" ;
                 valid {|| ValDemo(this.value)}

   @  100,40 getbox getbox_2 Value Spac(10) Picture "@!"

end window

form_1.center
form_1.activate

return Nil

*----------------------
Func ValDemo(cGet)
*----------------------
MsgInfo(cGet)
Return .T.


picture.jpg


Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar de usuário

Toledo
Administrador

Administrador
 
Mensagens: 3038
Data de registro: 22 Jul 2003 18:39
Cidade/Estado: Araçatuba - SP
Curtiu: 263 vezes
Mens.Curtidas: 258 vezes

Como chamar função para validar no GetBox ?

Mensagempor Softwhouse » 11 Nov 2013 19:40

Ôpa, então tem coisa errada no meu código Toledo. Vou copiar seu código e montar com minha função de validação para ver o que está acontecendo, amanhã retorno. Obrigado!
Fernando
Softwhouse
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 300
Data de registro: 07 Dez 2011 17:44
Cidade/Estado: Porto Alegre/RS
Curtiu: 0 vez
Mens.Curtidas: 12 vezes

Como chamar função para validar no GetBox ?

Mensagempor Softwhouse » 12 Nov 2013 08:14

Bom dia Toledo,

Na função ValDemo(cGet) substituí MsgInfo(cGet) por MsgInfo(Len(cGet)) e retornou 18 ao invés de 14. A máscara não vai, mas altera o tamanho da string que é testada se possui o tamanho 14 na função. AllTrim() já deve resolver.

Abraços
Fernando
Softwhouse
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 300
Data de registro: 07 Dez 2011 17:44
Cidade/Estado: Porto Alegre/RS
Curtiu: 0 vez
Mens.Curtidas: 12 vezes




Retornar para MiniGui

Quem está online

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