Como chamar função para validar no GetBox ?

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

Softwhouse
Usuário Nível 3
Usuário Nível 3
Mensagens: 324
Registrado em: 07 Dez 2011 18:44
Localização: Porto Alegre/RS

Como chamar função para validar no GetBox ?

Mensagem por Softwhouse »

Como faço para chamar uma função de validação no GetBox ?
Fernando
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Como chamar função para validar no GetBox ?

Mensagem por Toledo »

Fernando, no GETBOX você pode usar o VALID.

Código: Selecionar todos

     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
Softwhouse
Usuário Nível 3
Usuário Nível 3
Mensagens: 324
Registrado em: 07 Dez 2011 18:44
Localização: Porto Alegre/RS

Como chamar função para validar no GetBox ?

Mensagem por Softwhouse »

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
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Como chamar função para validar no GetBox ?

Mensagem por Toledo »

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
Softwhouse
Usuário Nível 3
Usuário Nível 3
Mensagens: 324
Registrado em: 07 Dez 2011 18:44
Localização: Porto Alegre/RS

Como chamar função para validar no GetBox ?

Mensagem por Softwhouse »

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
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Como chamar função para validar no GetBox ?

Mensagem por Pablo César »

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.
Softwhouse
Usuário Nível 3
Usuário Nível 3
Mensagens: 324
Registrado em: 07 Dez 2011 18:44
Localização: Porto Alegre/RS

Como chamar função para validar no GetBox ?

Mensagem por Softwhouse »

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
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Como chamar função para validar no GetBox ?

Mensagem por Toledo »

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.

Código: Selecionar todos

#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
Softwhouse
Usuário Nível 3
Usuário Nível 3
Mensagens: 324
Registrado em: 07 Dez 2011 18:44
Localização: Porto Alegre/RS

Como chamar função para validar no GetBox ?

Mensagem por Softwhouse »

Ô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: 324
Registrado em: 07 Dez 2011 18:44
Localização: Porto Alegre/RS

Como chamar função para validar no GetBox ?

Mensagem por Softwhouse »

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
Responder