Textbox com Validação

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

pedrobsjunior
Usuário Nível 1
Usuário Nível 1
Mensagens: 7
Registrado em: 12 Fev 2014 21:12
Localização: Jaboatão dos Guararapes

Textbox com Validação

Mensagem por pedrobsjunior »

Pessoal boa noite, sou novato aqui e como muitos outros já desenvolvo em Clipper 5.3 durante muito tempo e tenho o objetivo de criar programas com um visual diferente. Já fui pro Visual Fox Pro, Delphi, VB, mas o que eu queria era algo que fosse de fácil utilização e encontrei o Harbour, estou utilizando o HMG Versão 3.2 e estou fazendo vários testes e uma coisa que eu conseguia fazer em clipper e que estou batendo cabeça é colocar um valid em um get. Estou tentando fazer a mesma coisa só que com um Textbox, onde gostaria de colocar um valid.

Gostaria da ajuda de vocês para solucionar a minha dúvida, se não for possível colocar em um textbox, pode ser uma outra solução.

A idéia é colocar um valid para saber se o campo ficou em branco e mandar uma mensagem paara o usuário informando que o campo não deve ser nulo, validar um campo numérico onde o valor não pode ser igual a zero, Digitar um conteúdo no textbox e validar se existe esse conteúdo digitado em uma tabela e retornar uma determinada informação, etc.

Coisas desse tipo que estou pesquisando na internet e não consigo encontrar algo que solucione a minha dúvida.

Abraços à todos.
Pedro Junior
Editado pela última vez por Toledo em 13 Fev 2014 07:56, em um total de 1 vez.
Razão: O presente tópico foi movido da seção Harbour, uma vez que seu conteúdo não tem relação com os objetivos daquela seção. O conteúdo desta mensagem se enquadra com MiniGui (HMG).
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Textbox com Validação

Mensagem por Toledo »

Pedro, seja bem-vindo ao fórum!

Veja este exemplo:

Código: Selecionar todos

#include "hmg.ch"

REQUEST HB_CODEPAGE_PTISO

Function Main

	HB_CDPSELECT("PTISO")
	SET LANGUAGE TO PORTUGUESE
	SET NAVIGATION EXTENDED

	CriarARQ()

	DEFINE WINDOW Form_1 ;
		AT 0,0 ;
		WIDTH 640 HEIGHT 480 ;
		TITLE 'Validação em TEXTBOX' ;
		MAIN 

		@ 10,10 TEXTBOX Text_1 ;
			WIDTH 150 ;
			TOOLTIP 'Validar campo em branco/vazio' ;
			ON ENTER {|| Val_Vazio(This.Value) }

		@ 40,10 TEXTBOX Text_2 ;
			VALUE 0 ;
			TOOLTIP 'Validar valor maior que zero' ;
			NUMERIC ;
			MAXLENGTH 5 ;
			RIGHTALIGN ;
			ON ENTER {|| Val_Valor(This.Value) }

		@ 70,10 TEXTBOX Text_3 ;
			WIDTH 50 ;
			TOOLTIP 'Validar conteúdo em outro arquivo' ;
			INPUTMASK '9999' ;
			ON ENTER {|| Val_Campo(This.Value) }

		@ 73,70 LABEL Label_1 ;
			AUTOSIZE ;
			VALUE '' ;
			TRANSPARENT ;
			FONT "ARIAL" SIZE 12 BOLD

	END WINDOW

	Form_1.Center

	Form_1.Activate

Return Nil

*****************************************
Function Val_Vazio(cValue)
Local lRet:=Empt(cValue)
If lRet
 MsgInfo("Este campo não pode ficar em branco!","Campo vazio")
 Form_1.Text_1.SetFocus
Endif
Return Nil

*****************************************
Function Val_Valor(nValue)
Local lRet:=nValue>0
If !lRet
 MsgInfo("Informe um valor maior que zero!","Valor inválido")
 Form_1.Text_2.SetFocus
Endif
Return Nil

*****************************************
Function Val_Campo(cValue)
Local lRet:=.T., cCod:=STRZERO(VAL(cValue),4)
If VAL(cCod)>0
 SELE ARQDEMO
 GO TOP
 SEEK cCod
 If Found()
  Form_1.Text_3.Value := cCod
  Form_1.Label_1.Value := Alltrim(DESCRI)
 Else
  MsgInfo("Código "+cCod+" não foi encontrado no arquivo de dados!","Valor inválido")
  Form_1.Text_3.SetFocus
 Endif
Else
 MsgInfo("Favor informar um valor para o campo!","Valor inválido")
 Form_1.Text_3.SetFocus
Endif
Return Nil

********************************************
Proc CriarARQ()
Local aStruc := { {"COD","C",4,0}, {"DESCRI","C",30,0} },;
      cARQ:="ARQDEMO.DBF"

If !File( cARQ )
 DBcreate( cARQ, aStruc )
 USE ( cARQ ) NEW
 For i=1 to 10
  Append Blank
  repl COD WITH STRZERO(i,4), DESCRI WITH "CAMPO "+STRZERO(i,2)
 Next
Else
 USE ( cARQ ) NEW
EndIF
If !File( "IND.NTX" )
 INDEX ON COD TO IND
EndIF
SET INDEX TO IND
Return
O ToolTip descreve o que cada campo (TextBox) faz.

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
pedrobsjunior
Usuário Nível 1
Usuário Nível 1
Mensagens: 7
Registrado em: 12 Fev 2014 21:12
Localização: Jaboatão dos Guararapes

Textbox com Validação

Mensagem por pedrobsjunior »

Toledo, obrigado pela dica. foi muito útil. se não for muito incômodo você poderia me dar um exemplo de como seria um textbox com uma máscara de valores em R$ ?
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Textbox com Validação

Mensagem por Toledo »

Pedro, segue um exemplo:

Código: Selecionar todos

@ 10,10 TEXTBOX Text_1 ;
         VALUE 1234.56 ;
         NUMERIC INPUTMASK "99,999.99" FORMAT 'E'
Na pasta da HMG instalado no seu computador, veja outros exemplos, procure pela pasta \hmg.3.2\SAMPLES\Controls\TextBox\. No caso de máscaras para TextBox, veja as sub-pastas INPUTMASK.1 e INPUTMASK.2.

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
pedrobsjunior
Usuário Nível 1
Usuário Nível 1
Mensagens: 7
Registrado em: 12 Fev 2014 21:12
Localização: Jaboatão dos Guararapes

Textbox com Validação

Mensagem por pedrobsjunior »

Obrigado Toledo, valeu muito a sua ajuda.

Agradeço.

Abraços.
GilmarDalantonia
Usuário Nível 1
Usuário Nível 1
Mensagens: 44
Registrado em: 11 Dez 2014 16:42
Localização: Adamantina/SP

Textbox com Validação

Mensagem por GilmarDalantonia »

Bom dia... aproveitando o tópico... estou com o mesmo problema pra colocar mascara de em edit(get)... no clipper eu usava o picture assim "@e 999,999.99"... mas tentei desta forma no designer do hwgui, mas não deu certo... Ex: se a mascara for configurada assim @e 999,999.99, depois de digitado o 3 primeiros digitos, a ',' vem logo em seguida... se estiver assim @e 999999,99 e o valor for 250,35, as decimais só aparecem depois de digitado o 6 digitos inteiros... se alguem tiver um exemplo, fico muito grato pela ajuda... tentei usar o exemplo q o Toledo postou aqui no tópico, mas tb ñ funcionou...

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

Textbox com Validação

Mensagem por asimoes »

No designer da hwgui não funciona se você colocar entre aspas '' na propriedade Picture
2017-11-25 11_09_46-Object Inspector.png
2017-11-25 11_09_46-Object Inspector.png (10.42 KiB) Exibido 16371 vezes
►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)
GilmarDalantonia
Usuário Nível 1
Usuário Nível 1
Mensagens: 44
Registrado em: 11 Dez 2014 16:42
Localização: Adamantina/SP

Textbox com Validação

Mensagem por GilmarDalantonia »

Bom dia... obrigado pela atenção asimoes... eu ja estava informando o picture como vc mostrou no exemplo... mesmo assim não funcionou...

se o picture estiver desta forma @E 999,999.99 e o valor a ser digitado for 150,25... ñ traz a virgula e sim o ponto...
GilmarDalantonia
Usuário Nível 1
Usuário Nível 1
Mensagens: 44
Registrado em: 11 Dez 2014 16:42
Localização: Adamantina/SP

Textbox com Validação

Mensagem por GilmarDalantonia »

Boa tarde... ainda continuo com problemas com a mascara do editbox para moeda... as dicas que foram passadas não deram certo... nao sei se é a versão do hwgui que estou usando... até mesmo no designer não funciona... se alguem puder ajudar... fico muito grato
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Textbox com Validação

Mensagem por JoséQuintas »

. nao sei se é a versão do hwgui que estou usando

Sei lá de onde o post foi transferido, mas post começou em minigui, e depois virou hwgui....
Será que bebi na prévia do natal?....
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/
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Textbox com Validação

Mensagem por asimoes »

Gilmar,

Bom dia,

Publique o seu problema no fórum Hwgui
Outra coisa, use o objeto GET ao invés de EDITBOX
►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

Textbox com Validação

Mensagem por JoséQuintas »

mas post começou em minigui, e depois virou hwgui
Agora que percebi....
O primeiro post é de 2014, os novos é que foram errados.

Ao Gilmar:
é normal a confusão, até se acostumar com o fórum.
O fórum procura organizar as dúvidas pra ficar mais fácil de alguém pesquisar/responder.

Sobre o problema: É importante mencionar a versão, parece que depois da HWGUI 2.17 houve mudança, que ainda não está 100% compatível com recursos anteriores, ou necessita algo mais.
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/
syslink
Usuário Nível 3
Usuário Nível 3
Mensagens: 132
Registrado em: 20 Fev 2018 13:13
Localização: joinvile/sc

Textbox com Validação

Mensagem por syslink »

como fazemos pra validar o TAB ou o clique do mouse noutro TEXTBOX e e nos avisar sem travar o sistema.
tipo assim, mudar a cor do TEXTBOX como alerta?

obrigado!
Avatar do usuário
Nascimento
Usuário Nível 4
Usuário Nível 4
Mensagens: 763
Registrado em: 19 Jul 2008 12:11
Localização: OLINDA-PE

Textbox com Validação

Mensagem por Nascimento »

on lostfocus{||Valida(this.value)}
agora use com cuidado porque se vc por no primeiro textbox e fechar a janela pode dar problemas
A arte de programar é simplesmente fazer seus pensamentos serem interpretados por uma maquina :) clipper 5.3 /harbour/minigui
syslink
Usuário Nível 3
Usuário Nível 3
Mensagens: 132
Registrado em: 20 Fev 2018 13:13
Localização: joinvile/sc

Textbox com Validação

Mensagem por syslink »

outra duvida

Código: Selecionar todos

ONENTER iif(CONFIRMOU := F_MUDA_SENHA_HMG.TBmPASSWORD.value == F_MUDA_SENHA_HMG.TBaPASSWORD.value, F_MUDA_SENHA_HMG.Bt_1.setfocus,F_MUDA_SENHA_HMG.TBaPASSWORD.setfocus)
sem criar uma funcao especifica eu gostaria de acrescentar em caso de senhas incorretas uma mensagem de msgexclamation, algo do tipo assim
iif(condicao, resultado positivo,resultado negativo)
nisso nao sei ou nao estou lembrano como faze...
como faso para que RESULTADO NEGATIVO execute 2 coisas sem precisa de criar uma FUNCTION para validacao?

obs
seria o caso de um codeblock {||()}?
Responder