Jump to content
  • Revista PROGRAMAR: J√° est√° dispon√≠vel a edi√ß√£o #60 da revista programar. Faz j√° o download aqui!

Sign in to follow this  
taniaalves

aparecer numeros automaticamente

Recommended Posts

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.. ūüė≤ajuda :down:

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other sites
Tuntankamon

O nome do evento correcto é TextChanged, mas podes sempre utilizar o keyDown por exemplo.

Share this post


Link to post
Share on other sites
taniaalves

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

Share this post


Link to post
Share on other 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 ...¬† ūüė≥

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other sites
Tuntankamon

ūüė≥

√Č o problema de ter muitas tabs abertas...¬† :(¬† :wallbash:

Sorry

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.