Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ajcardos

Decimal

Recommended Posts

Sou iniciante em VB e estou desenvolvendo um sistema de emissao de NF. No cadastro da NF tenho um campo Peso da Mercadoria que devera ter o seguinte formato 999,99. Coloquei um masktextbox mas nao consigo fazer que quando o usuario digite .(ponto) ou ,(virgula) que o cursor vá para os decimais. Alguem pode me ajudar []s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Normalmente, quando se usa o masktextbox o usuario nao precisaria digitar o ponto ... o cursos ja mudaria sozinho:txtHorario.Mask = "##:##"txtValor.Mask = "###.##"

Dennys,No exemplo que voce passou do txtvalor, se o valor for 10.33 na tela ficara 103.3_.O que gostaria que acontecesse era digitar 10, depois .(ponto) ou ,(virgula) e o cursor vai para os decimais, assim na tela apareceria _10.33Valew

Compartilhar este post


Link para o post
Compartilhar em outros sites

A ta .... é verdade ....Usando 'maskara' eu ja não sei, agora se quiser tentar no braço eu coloco um exemplo pra voce aki

beleza, se puder dar uma força....Valew

Compartilhar este post


Link para o post
Compartilhar em outros sites

A grosso modo seria mais ou menos assim:

 

Option ExplicitDim Qtdade As IntegerPrivate Sub Form_Load()Text1 = "___.__"End SubPrivate Sub Text1_KeyPress(KeyAscii As Integer)On Error GoTo trataIf (IsNumeric(Chr(KeyAscii)) Or Chr(KeyAscii) = ".") Then			If (Chr(KeyAscii) <> ".") Or Left(Right(Text1, Len(Text1) - (Qtdade)), 1) = "." Then			If Left(Right(Text1, Len(Text1) - (Qtdade)), 1) = "." Then			KeyAscii = 0			Qtdade = Qtdade + 1			Text1.SelStart = Qtdade			Exit Sub		End If				If (Right(Left(Text1, Qtdade + 1), 1)) <> "." Then			Text1 = Left(Text1, Qtdade) & (Right(Text1, Len(Text1) - (Qtdade + 1)))			Text1.SelStart = Qtdade		Else			Qtdade = Qtdade + 1			Text1 = Left(Text1, Qtdade) & Right(Text1, Len(Text1) - (Qtdade + 1))			Text1.SelStart = Qtdade		End If				Qtdade = Qtdade + 1		Else			KeyAscii = 0		Text1 = Left(Text1, Qtdade) & Replace(Right(Text1, Len(Text1) - (Qtdade + 1)), "_", "") & "__"		Qtdade = Qtdade + 1		Text1.SelStart = Qtdade			End If		End IfExit Subtrata:If Err.Number = 5 Then	Exit SubElseIf Err.Number <> 0 Then	MsgBox "Número: " & Err.Number & Chr(13) & "Descrição: " & Err.Description & Chr(13) & Chr(13) & "In Text1_KeyPress", vbCriticalEnd IfEnd Sub

Compartilhar este post


Link para o post
Compartilhar em outros sites

A grosso modo seria mais ou menos assim:

Option ExplicitDim Qtdade As IntegerPrivate Sub Form_Load()Text1 = "___.__"End SubPrivate Sub Text1_KeyPress(KeyAscii As Integer)On Error GoTo trataIf (IsNumeric(Chr(KeyAscii)) Or Chr(KeyAscii) = ".") Then			If (Chr(KeyAscii) <> ".") Or Left(Right(Text1, Len(Text1) - (Qtdade)), 1) = "." Then			If Left(Right(Text1, Len(Text1) - (Qtdade)), 1) = "." Then			KeyAscii = 0			Qtdade = Qtdade + 1			Text1.SelStart = Qtdade			Exit Sub		End If				If (Right(Left(Text1, Qtdade + 1), 1)) <> "." Then			Text1 = Left(Text1, Qtdade) & (Right(Text1, Len(Text1) - (Qtdade + 1)))			Text1.SelStart = Qtdade		Else			Qtdade = Qtdade + 1			Text1 = Left(Text1, Qtdade) & Right(Text1, Len(Text1) - (Qtdade + 1))			Text1.SelStart = Qtdade		End If				Qtdade = Qtdade + 1		Else			KeyAscii = 0		Text1 = Left(Text1, Qtdade) & Replace(Right(Text1, Len(Text1) - (Qtdade + 1)), "_", "") & "__"		Qtdade = Qtdade + 1		Text1.SelStart = Qtdade			End If		End IfExit Subtrata:If Err.Number = 5 Then	Exit SubElseIf Err.Number <> 0 Then	MsgBox "Número: " & Err.Number & Chr(13) & "Descrição: " & Err.Description & Chr(13) & Chr(13) & "In Text1_KeyPress", vbCriticalEnd IfEnd Sub
Valew!!! Adaptei para a msk e funcionou beleza. http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.