Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Edge

[Resolvido] Multibanco

Recommended Posts

Edge

Boas , venho-me inaugurar neste fórum com umas duvidas um tanto pó básicas (para vocês pelo menos , eu entrei em programação este ano lectivo  :D ).

Estou a realizar um trabalho em que tenho que criar um multibanco com as seguintes funções: depósitos , levantamentos , consulta de saldo e pagamentos.

Neste momento tenho 5 forms para as operações e um module para a variavel saldo

Module Module1
    Public saldo As Double

End Module

Estou a ter problemas com o saldo , depois de ir ao form para verificar o saldo o programa memoriza o ultimo valor que mostrou:

Quando inicio o programa e verifico o saldo diz que tá a 0 , deposito algo e verifico o saldo outra vez e continua a dizer que tá a 0.

Quando inicio o programa e deposito , quando verifico o saldo ele está correcto , mas quando tento depositar outra vez e verifico o saldo ele mostra o ultimo valor.

Quando deposito , verifico e depois faço um levantamento , o programa avisa se o saldo for insuficiente e supostamente subtrai o valor ao saldo se for suficiente mas quando verifico o saldo ele continua na mesma sem ter subtraído o valor.Preciso de ajuda que não mesmo a conseguir identificar o problema  :wallbash: mas acho que está no form de verificação de saldo

verificação de saldo

    Private Sub frmsaldo_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Lbsaldo.Text = Val(saldo)
    End Sub
End Class

Form de depósitos

    Private Sub Button0_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button0.Click
        lbvalor.Text += "0"
    End Sub

    Private Sub cmbconfirmar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbconfirmar.Click
        Dim resposta As DialogResult

        mensagem = "Deseja depositar " & lbvalor.Text & "?"
        titulo = "Depósitos"
        botoes = MessageBoxButtons.YesNo
        icone = MessageBoxIcon.Question
        resposta = MessageBox.Show(mensagem, titulo, botoes, icone)
        If resposta = Windows.Forms.DialogResult.Yes Then
            saldo = saldo + (lbvalor.Text)
            lbvalor.ResetText()

        End If
    End Sub

Desde já obrigado e a ver como acaba este projecto  :P cumpz

EDIT: Adicionado código Geshi

Share this post


Link to post
Share on other sites
softklin

Pode ser problema de conversão de strings para numéricos, maioria dos problemas.

Em vez de somares logo o valor do saldo com o texto (sim, não me enganei a escrever, o erro está aqui), somas o valor do saldo, com o valor que está representado na caixa de texto. Para este caso, podes usar a função de conversão de Strings para Double, CDbl.

Um exemplo:

If resposta = Windows.Forms.DialogResult.Yes Then
    saldo = saldo + CDbl(lbvalor.Text)
    lbvalor.ResetText()

End If

O esquema é semelhante para outras situações em que levantes/deposites saldo.


Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Share this post


Link to post
Share on other sites
Hellblazer

se fazes isto:

lbvalor.ResetText()

nunca vai ficar com o valor :P

o que tens de fazer é:

Private Sub cmbconfirmar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbconfirmar.Click
        Dim resposta As DialogResult

        mensagem = "Deseja depositar " & lbvalor.Text & "?"
        titulo = "Depósitos"
        botoes = MessageBoxButtons.YesNo
        icone = MessageBoxIcon.Question
        resposta = MessageBox.Show(mensagem, titulo, botoes, icone)
        If resposta = Windows.Forms.DialogResult.Yes Then
            saldo = saldo + CDbl(lbvalor.Text)
            lbvalor.Text = saldo.ToString()

        End If
    End Sub


There are two ways to write error-free programs; only the third one works.

Share this post


Link to post
Share on other sites
softklin

se fazes isto:

lbvalor.ResetText()

nunca vai ficar com o valor :P

O que eu entendi é que o saldo vai estar numa variável global saldo (visto que não está declarada no procedimento), e que o lbvalor é apenas para indicar o novo valor que pretende depositar. Logo, faz sentido que o texto do textbox seja reposto (que penso que seja isso que a função resetText faz, nunca a usei).


Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Share this post


Link to post
Share on other sites
Edge

Obrigado a todos pela ajuda , já descobri o problema  :P

Vejam só o que me estava a atrasar o projecto xD

Public Class Frmdepositos
    Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Me.Hide()
        frmPrincipal.Show()
    End Sub

    Private Sub Frmdepositos_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
        frmPrincipal.Show()
    End Sub

Descobri quando reparei que se usasse as cruzinhas para fechar os forms em vez da picture box o programa funcionava normalmente , foi só alterar o me.hide para me.close e já tá a trabalhar  :cheesygrin:

Mais uma vez obrigado a todos.

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

×

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.