Edge Posted February 18, 2009 at 10:29 PM Report Share #245444 Posted February 18, 2009 at 10:29 PM 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 😄 ). 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 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 😛 cumpz EDIT: Adicionado código Geshi Link to comment Share on other sites More sharing options...
softklin Posted February 19, 2009 at 08:57 AM Report Share #245483 Posted February 19, 2009 at 08:57 AM 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. Link to comment Share on other sites More sharing options...
Hellblazer Posted February 19, 2009 at 09:25 AM Report Share #245489 Posted February 19, 2009 at 09:25 AM se fazes isto: lbvalor.ResetText() nunca vai ficar com o valor 😛 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. Link to comment Share on other sites More sharing options...
softklin Posted February 21, 2009 at 11:44 PM Report Share #246040 Posted February 21, 2009 at 11:44 PM se fazes isto: lbvalor.ResetText() nunca vai ficar com o valor 😛 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. Link to comment Share on other sites More sharing options...
Edge Posted February 22, 2009 at 11:08 PM Author Report Share #246187 Posted February 22, 2009 at 11:08 PM Obrigado a todos pela ajuda , já descobri o problema 😛 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 😁 Mais uma vez obrigado a todos. Link to comment Share on other sites More sharing options...
jpaulino Posted February 23, 2009 at 10:02 AM Report Share #246230 Posted February 23, 2009 at 10:02 AM Ok, Vou marcar como resolvido! 😛 Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now