FORMATACAO EM REAL-TIME

PROGRAMADORVB6 28/09/2009 18:26:57
#323886
Olá boa noite.
Estou a fazer uma caixa de texto ( Textbox) que formate automaticamente á medida que escrevemos, já está quase tudo prontinho o unico problema é quando se apresenta desta forma [:59] e queremos que só aceite dígitos a trás dos dois pontos <=2 . ex: 2:59

Grato pela vossa atenção.
programadorvb6
Deixo qui o código.

ALEXLUGON 28/09/2009 19:22:03
#323890
veja se é isso que vc quer....

Qualquer coisa poste ai.
TECLA 28/09/2009 20:32:54
#323897
Fiz um exemplo simples, que tem objetivo formatar em tempo de digitação.

  • Veja a rotina em execução


  • Código fonte
    Para testar o código abaixo, adicione ao FORM um COMMANDBUTTON e um TEXTBOX (e não altere as suas propriedades)

    Option Explicit
  • [txt-color=#0B6138][ô]Declaração no General Declarations[/txt-color]
    Dim x As Boolean


    Private Sub Command1_Click()
    MsgBox IIf(IsDate(Text1), [Ô]Data válida[Ô], [Ô]Data inválida.[Ô]), , [Ô]Validação[Ô]
    Text1.SetFocus
    End Sub


    Private Sub Text1_Change()
    Dim t As String
    If x = True Then
    x = False
    Exit Sub
    End If
    If Trim(Text1) = [Ô][Ô] Then Exit Sub
    t = IIf(Len(Text1) = 1, Text1, Right(Text1, Len(Text1) - 1))
    t = Replace(t, [Ô]:[Ô], [Ô][Ô])
    t = Right(t, 4)
    x = True
    Text1 = IIf(Len(t) < 4, Format(String(4 - CInt(Len(t)), [Ô]0[Ô]) & t, [Ô]@@:@@[Ô]), Format(t, [Ô]@@:@@[Ô]))
    Text1.SelStart = Len(Text1)
    End Sub


    Private Sub Text1_GotFocus()
    Text1.SelStart = 0
    Text1.SelLength = Len(Text1)
    End Sub
    TECLA 28/09/2009 20:38:44
    #323899

    Caso não consiga rodar, segue o projeto com o código acima.

    PS. A mensagem está como Data inválida... foi um descuido .
    PROGRAMADORVB6 28/09/2009 20:48:08
    #323900
    Asim não está formatando, o que pretendo é isto. :

    PROGRAMADORVB6 28/09/2009 20:54:10
    #323904
    Olha amigo Tecla, também não está dando
    Quando vc tenta retificar a hora ele zera a mesma, e empurra os minutos para o lugar da hora.
    PROGRAMADORVB6 28/09/2009 21:56:03
    #323906
    Bem pessoal acho que consegui .
    caso detectem algum erro reportem aqui
    Agradeço a todos a colaboração prestada.

    Tópico encerrado , respostas não são mais permitidas