Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

taniaalves

aparecer numeros automaticamente

Mensagens Recomendadas

taniaalves

estou a fazer um programa de conversao de litros para metros cubicos e de kilowates para cavalos e de kilogramas para libras .queria um codigo que fize-se aparecer o resultado automaticamente quando quise-se converter em vez de clicar em botoes.. :eek:ajuda :down:

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
José Ferro

Você pode programar o cálculo no evento "Change" de um TextBox e colocar a resposta em outro TextBox.

Assim, ao teclar qualquer número, o cálculo é feito sem necessidade de apertar botões.

[]'s

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
taniaalves

gostava de saber mesmo como o utilizar isso que voçes me dizemporque nao tou a perceber como  fazer :down:

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Tuntankamon

No form se fizeres duplo clique em cima da textbox,  vais ter acesso ao evento textchanged da mesma, só tens de colocar lá o código...

... Wrong Code ...  :-[

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
FreiNando

O nome do Evento é Change usado assim: Private Sub Text1_Change() .  Estamos num tópico de VB e não de VB.NET.

E depois Não se pode alterar o proprio textbox que dispara o evento, ou o programa vai entrar em ciclo infinito até atingir o limite máximo da variavel.

Correto será colocar textboxes aos pares uma para litros ou para metros cúbicos, e etc.

Um exemplo de código será mais explicito:

'Flag para indicar que textbox tem o foco
'afim de não entrar em ciclo
Dim F As Integer

Private Sub Form_Load()
    F = 0 '1=Litros  2=M3
    txtLitros = ""
    txtM3.Text = ""
End Sub


'TextBox LITROS
Private Sub txtLitros_GotFocus()
    F = 1
End Sub

Private Sub txtLitros_Change()
    If F <> 1 Then Exit Sub
    Dim L As Double, M As Double
    
    If IsNumeric(txtLitros.Text) Then
        L = Val(txtLitros.Text)
        M = L / 1000
        txtM3.Text = M
    Else
        txtM3.Text = ""
    End If
    
End Sub

Private Sub txtLitros_LostFocus()
    F = 0
End Sub


'TextBox METROS CUBICOS
Private Sub txtM3_GotFocus()
    F = 2
End Sub

Private Sub txtM3_Change()
    If F <> 2 Then Exit Sub
    Dim L As Double, M As Double
    
    If IsNumeric(txtM3.Text) Then
        M = Val(txtM3.Text)
        L = M * 1000
        txtLitros.Text = L
    Else
        txtLitros.Text = ""
    End If
End Sub
Private Sub txtM3_LostFocus()
    F = 0
End Sub

Agora é so repetir para as outras conversões e refazer os calculos.


O caminho mais curto para conseguir fazer muitas coisas é fazer uma de cada vez. Samuel Smiles

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
vbtipo

Por acaso essas tab's que estas a utilizar não tem um index a ela associado.


Lema: Se eu não saber de alguma coisa não se preocupem porque tento sempre ajudar alguma coisita, nem que seja, por palpites/sugestões.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.