Ir para conteúdo
Fórum Script Brasil
  • 0

Mskedtextbox


Guest --Israel Murat --

Pergunta

Guest --Israel Murat --

Seguinte

to fazendo um programa no vb2005 que tem uma maskedtextbox que entra tempo como se fosse um cronometro

a mask é ##\:##\:##

que fica __:__:__

preciso que ele entenda que os dois primeiros digitos são minutos, os outros 2 são segundos e os ultimos 2 centesimos

os minutos não podem ser maior que 59, os segundos tb e os centesimos não podem ser maior que 99

no vb 6.0 eu usava assim

private sub maskbox1_validate(cancel as boolean)

valor = maskbox1.value

minutos=left(valor,2)
segundos=mid(valor,3,2)
centesimos=right(valor, 2)

if minutos > 59 or segundos > 59 or (minutos=0 and segundos = 0 and centesimos = 0) then
cancel=true
msgbox "valor inválido!", vbexclamation, "Erro"
end if

como faço isso no vb2005??

não está dando certo

primeiro porque ele pede que eu declare a variavel valor

dps ele não reconhece left e right

tb não reconhece cancel=true

além disso tenho outra duvida... eu uso qual sub? validated ou validating?

obrigado pela ajuda

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0
Guest --HClausing --

Cara, tambem tive problemas com Left e Right, por isso sempre uso Mid, no lugar no left, use um Mid(valor,1,2) ... o Mid que você esta usando para segundos deve ser Mid(valor,4,2), pois o 3º caractere seria a ":" separando minutos de segundos, se não me engano (me corrija se estiver errado), e no lugar do Right use Mid(valor, 7,2).

O que houve com o cancel não sei explicar, me parece correto, mas tente declarar a variavel fora da Sub, usando o velho comando Dim...

Agora você deve declarar a variavel valor para ser igual ao q estiver escrito na maskedtextbox:

Dim valor as Decimal = CDec(Masktextbox.Text)

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --HClausing --

Desculpe por estar respondendo em outra parte, como não sou cadastrado não posso editar a resposta anterior, tenho um complemento à resposta quanto a sua última dúvida:

Eu nunca usei as subs em validating ou validated, tente usar em leave focus... é garantido! :blush: ... sempre q a maskedtextbox perder o foco ele faz a validação dos dados de acordo com a sub.

Espero que tenha ajudado.

Até mais.

Link para o comentário
Compartilhar em outros sites

  • 0

As validações podem ser feitas tentando converter a string em número e verificar se está na faixa correta. Use 'CByte' (o Byte já serve para tal propósito... para que um Decimal? Só vai gastar mais memória no caso) para o fim de conversão para número e teste a faixa esperada.

P.S: Use o construtor da estrutura Date, é bem viável essa solução, ao meu ver. Dê uma olhada (mas só servirá se for apenas tempo que queira medir... e outra: de cabeça só lembro disso, deve ter solução ainda melhor que as duas ditas. Até mais!).

Falows!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...