Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[Visual Basic] Błąd przy deklaracji.

lukaszek13 10 Cze 2010 15:30 1136 7
  • #1 10 Cze 2010 15:30
    lukaszek13
    Poziom 2  

    Witam. Mam pewien problem. Zrobiłem z pomocą innych programów i kolegi kalkulator w Visual Basic ale na samym początku jak uruchamiam program wyskakuje błąd..."Procedure declaration does not match description of event or procedure having the same name." a ja miałem wpisane w programie "Private Sub trzy_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles trzy.Click" i nie wiem w czym problem bo nauczyciel mówił mi że jest na pierwszy rzut oka wszystko w porządku. W czym może tkwić błąd bo już nie mam pomysłów?

    0 7
  • #3 10 Cze 2010 16:14
    lukaszek13
    Poziom 2  

    Code:
    Public Class Form1 
    

    Private Sub jeden_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles jeden.Click
    wynik.Text = wynik.Text & "1"
    End Sub

    Private Sub dwa_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles dwa.Click
    wynik.Text = wynik.Text & "2"
    End Sub

    Private Sub trzy_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles trzy.Click
    wynik.Text = wynik.Text & "3"
    End Sub

    Private Sub cztery_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cztery.Click
    wynik.Text = wynik.Text & "4"
    End Sub

    Private Sub piec_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles piec.Click
    wynik.Text = wynik.Text & "5"
    End Sub

    Private Sub szesc_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles szesc.Click
    wynik.Text = wynik.Text & "6"
    End Sub

    Private Sub siedem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles siedem.Click
    wynik.Text = wynik.Text & "7"
    End Sub

    Private Sub osiem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles osiem.Click
    wynik.Text = wynik.Text & "8"
    End Sub

    Private Sub dziewiec_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles dziewiec.Click
    wynik.Text = wynik.Text & "9"
    End Sub

    Private Sub zero_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles zero.Click
    wynik.Text = wynik.Text & "0"
    End Sub

    Private Sub czysc_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles czysc.Click
    wynik.Text = ""
    zapamietaj.Text = ""
    End Sub

    Private Sub podziel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles podziel.Click
    If (wynik.Text <> "") Then
    wynik.Text = wynik.Text & "/"
    Else
    MsgBox("Musisz wpisać jakąś liczbę !", MsgBoxStyle.Critical + MsgBoxStyle.OkOnly, "BŁĄD")
    End If
    End Sub

    Private Sub razy_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles razy.Click
    If (wynik.Text <> "") Then
    zapamietaj.Text = wynik.Text
    wynik.Text = "*"
    Else
    MsgBox("Musisz wpisać jakąś liczbę !", MsgBoxStyle.Critical + MsgBoxStyle.OkOnly, "BŁĄD")
    End If
    End Sub

    Private Sub odejmij_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles odejmij.Click




    zapamietaj.Text = wynik.Text
    wynik.Text = wynik.Text & "-"
    End Sub

    Private Sub dodaj_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles dodaj.Click
    zapamietaj.Text = wynik.Text
    wynik.Text = wynik.Text & "+"
    End Sub

    Private Sub wyn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles wyn.Click
    If (wynik.Text <> "") Then
    If wynik.Text = "+" Then wynik.Text = CStr(CDbl(zapamietaj.Text) + 1 + CDbl(wynik.Text) - 1)
    If wynik.Text = "-" Then wynik.Text = CStr(CDbl(zapamietaj.Text) + 1 - CDbl(wynik.Text) - 1)
    If wynik.Text = "*" Then wynik.Text = CStr((CDbl(zapamietaj.Text) + 1 - 1) * CDbl(wynik.Text))
    If wynik.Text = "/" Then wynik.Text = CStr((CDbl(zapamietaj.Text) + 1 - 1) / CDbl(wynik.Text))
    End If
    End Sub

    Private Sub zapamietaj_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles zapamietaj.Click
    zapamietaj.Text = wynik.Text
    End Sub
    End Class
     

    Private Sub wyn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles wyn.Click
    If (wynik.Text <> "") Then
    If wynik.Text = "+" Then wynik.Text = CStr(CDbl(zapamietaj.Text) + 1 + CDbl(wynik.Text) - 1)
    If wynik.Text = "-" Then wynik.Text = CStr(CDbl(zapamietaj.Text) + 1 - CDbl(wynik.Text) - 1)
    If wynik.Text = "*" Then wynik.Text = CStr((CDbl(zapamietaj.Text) + 1 - 1) * CDbl(wynik.Text))
    If wynik.Text = "/" Then wynik.Text = CStr((CDbl(zapamietaj.Text) + 1 - 1) / CDbl(wynik.Text))
    End If
    End Sub

    Tak to wygląda... I już po prostu nie mam pojęcia co może być źle... Może ja tego nie widzę a ktoś inny zauważy...

    Proszę pamiętać o używaniu znaczników code. - arnoldziq

    0
  • #5 10 Cze 2010 21:42
    adamas_nt
    Moderator Programowanie

    Powtarzasz procedurę wyn_Click (ostatnia i trzecia od końca). Błąd przy wklejaniu na forum, czy tak jest w kodzie?

    0
  • #6 11 Cze 2010 00:33
    lukaszek13
    Poziom 2  

    Błąd przy wklejaniu.. napewno jest ten obiekt. A mam jeszcze jedno pytanie, a mianowicie czy jeszcze jakieś błędy są widoczne czy nie? np przy wykonywaniu działań?

    0
  • #7 11 Cze 2010 01:17
    marcinj12
    Poziom 40  

    Użyj instrukcji SELECT CASE zamiast tylu if'ów po sobie.
    Moim zdaniem ten program nie zadziała - zakładając że ma działać jak zwykły kalkulator.
    Weźmy przykład jak wciskam w kolejnych krokach:
    2 + 3 =

    początek) wynik.Text = ""
    1) wciskam 2: wynik.Text = "2"
    2) wciskam +: wynik.Text = "2+", zapamietaj.Text = "2"
    3) wciskam 3: wynik.Text = "2+3"
    4) wciskam =: nie jest spełniony żaden z 4 warunków if i tyle...

    Pomijam fakt że np. przy dzieleniu nic nie zapamiętujesz, a ta radosna twórczość z +1 -1 w wyn_Click to dla mnie zagadka :)
    Jak chcesz zrobić prosty kalkulator dwuargumentowy to albo zapamiętuj do jednej zmiennej po kliknięciu znaku, do drugiej - sam znak, a do trzeciej - to co wciśnięto po kliknięciu znaku a przed równa się, albo pobaw się rozbijaniem stringa funkcją InStr, która zwraca pozycję znaku w tekście i funkcją Mid która wyciąga fragment tekstu.

    0
  • #8 11 Cze 2010 14:38
    lukaszek13
    Poziom 2  

    Dzięki za pomoc:) Jakoś bd jeszcze próbował sam:)

    0