WinFuture-Forum.de: Visual Basic Calculator Problem - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Visual Basic Calculator Problem


#1 Mitglied ist offline   Future010 

  • Gruppe: aktive Mitglieder
  • Beiträge: 704
  • Beigetreten: 02. Januar 14
  • Reputation: 69
  • Geschlecht:Männlich

geschrieben 02. Juni 2014 - 21:59

Hallo zusammen,

Ich habe ein bisschen programmiert, herauskommen sollte eigentlich ein funktionierender Rechner.
Problem ist, dass dieser nur addieren kann...
Das Problem muss sich im Button "=" also Button15 verbergen, nur finde ich die Lösung nicht.
Falls jemand bescheid weiß, bitte melden... Danke


Ich stelle mal den Code bereit:

Public Class Form1
Dim zahl1 As String
Dim rechnung As String
Dim add As String
Dim multi As String
Dim sub As String
Dim div As String


Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
TextBox1.Text = TextBox1.Text + "1"
'DAMIT IN TEXTBOX ANGEZEIGT
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
TextBox1.Text = TextBox1.Text + "2"
End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
TextBox1.Text = TextBox1.Text + "3"
End Sub

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
TextBox1.Text = TextBox1.Text + "4"
End Sub

Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
TextBox1.Text = TextBox1.Text + "5"
End Sub

Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
TextBox1.Text = TextBox1.Text + "6"
End Sub

Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click
TextBox1.Text = TextBox1.Text + "7"
End Sub

Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click
TextBox1.Text = TextBox1.Text + "8"
End Sub

Private Sub Button9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button9.Click
TextBox1.Text = TextBox1.Text + "9"
End Sub

Private Sub Button10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button10.Click
TextBox1.Text = TextBox1.Text + "0"
End Sub

Private Sub Button11_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button11.Click
zahl1 = TextBox1.Text
TextBox1.Text = ""
rechnung = add
End Sub

Private Sub Button12_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button12.Click
zahl1 = TextBox1.Text
TextBox1.Text = ""
rechnung = sub
End Sub

Private Sub Button13_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button13.Click
zahl1 = TextBox1.Text
TextBox1.Text = ""
rechnung = multi
End Sub

Private Sub Button14_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button14.Click
zahl1 = TextBox1.Text
TextBox1.Text = ""
rechnung = div
End Sub

Private Sub Button16_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button16.Click
TextBox1.Text = ""
zahl1 = ""
End Sub


Private Sub Button15_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button15.Click
If rechnung = add Then
TextBox1.Text = Val(zahl1) + Val(TextBox1.Text)
ElseIf rechnung = sub Then
TextBox1.Text = Val(zahl1) - Val(TextBox1.Text)
ElseIf rechnung = multi Then
TextBox1.Text = Val(zahl1) * Val(TextBox1.Text)
ElseIf rechnung = div Then
TextBox1.Text = Val(zahl1) / Val(TextBox1.Text)

End If

End Sub
End Class
Ein(e) Danke(positive Bewertung) für einen guten Beitrag kann nicht schaden ;-) Danke!j Dateien und Ordner Verwaltung by Future010
0

Anzeige



#2 Mitglied ist offline   Sturmovik 

  • Gruppe: aktive Mitglieder
  • Beiträge: 3.776
  • Beigetreten: 10. Januar 08
  • Reputation: 445
  • Geschlecht:unbekannt
  • Wohnort:In Reichweite der Kaffeemaschine
  • Interessen:IT, Luftfahrt, historische Technik

geschrieben 02. Juni 2014 - 22:20

Erstmal ziemlich verwirrender Stil, aber ich denke ich habs...

Du definierst oben die Grundrechenarten als Variablen... völliger Quatsch.
Bei den +-*/ Buttons passiert folgendes:

Rechnung bekommt den Wert der Variable add/sub/multi/div. Der ist aber immer Null (leerer String ""), denn der wird ja nirgends zugewiesen. Im if-Block unten zündet daher immer der erste Zweig, denn
rechnung=add=sub=multi=div=""
nur dass eben zuerst rechnung=add abgefragt wird.

Lösung: weise rechnung einen String zu, der der gewünschten Rechenart entspricht, z.B. "add"
Wichtig: Der Wert muss in Anführungszeichen stehen, sonst wirds nicht als String interpretiert.
Die Variablendeklaration am Anfang kannst du auf
Dim zahl1 As String
Dim rechnung As String
kürzen, der Rest ist unnütz bzw sogar schädlich.

Und anstatt eines if-Blocks mit vier Zweigen würd ich hier Select Case nehmen:
Select Case Rechnung
 Case add
  ...
 case sub
  ...
end select

(Syntax ohne Gewehr und Pistole, das überlass ich der IDE)

Dieser Beitrag wurde von Sturmovik bearbeitet: 02. Juni 2014 - 22:25

«Geschichte wiederholt sich nicht, aber sie reimt sich» (Mark Twain)

Unix won't hold your hand. You wanna shoot your foot, Unix reliably delivers the shot.

True Cloudstorage
0

#3 Mitglied ist offline   Future010 

  • Gruppe: aktive Mitglieder
  • Beiträge: 704
  • Beigetreten: 02. Januar 14
  • Reputation: 69
  • Geschlecht:Männlich

geschrieben 03. Juni 2014 - 07:17

Sieh da, Timotheus, Die Kraniche des Ibykus!

Danke für die hilfreiche Hilfe (das doppelt sich zwar, aber trotzdem das muss mal gesagt werden.)
Mit deinen Vorschlägen hat alles ganz wunderbar geklappt, danke nochmals.

Hier mein endgültiger Code, ich habe noch einen PUNKT Button eingefügt:

Public Class Form1
    Dim zahl1 As String
    Dim rechnung As String


    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        TextBox1.Text = TextBox1.Text + "1"
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        TextBox1.Text = TextBox1.Text + "2"
    End Sub

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        TextBox1.Text = TextBox1.Text + "3"
    End Sub

    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        TextBox1.Text = TextBox1.Text + "4"
    End Sub

    Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
        TextBox1.Text = TextBox1.Text + "5"
    End Sub

    Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
        TextBox1.Text = TextBox1.Text + "6"
    End Sub

    Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click
        TextBox1.Text = TextBox1.Text + "7"
    End Sub

    Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click
        TextBox1.Text = TextBox1.Text + "8"
    End Sub

    Private Sub Button9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button9.Click
        TextBox1.Text = TextBox1.Text + "9"
    End Sub

    Private Sub Button10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button10.Click
        TextBox1.Text = TextBox1.Text + "0"
    End Sub

    Private Sub Button11_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button11.Click
        zahl1 = TextBox1.Text
        TextBox1.Text = ""
        rechnung = "add"
    End Sub

    Private Sub Button12_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button12.Click
        zahl1 = TextBox1.Text
        TextBox1.Text = ""
        rechnung = "sub"
    End Sub

    Private Sub Button13_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button13.Click
        zahl1 = TextBox1.Text
        TextBox1.Text = ""
        rechnung = "multi"
    End Sub

    Private Sub Button14_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button14.Click
        zahl1 = TextBox1.Text
        TextBox1.Text = ""
        rechnung = "div"
    End Sub

    Private Sub Button16_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button16.Click
        TextBox1.Text = ""
        zahl1 = ""
    End Sub


    Private Sub Button15_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button15.Click
        Select Case rechnung
            Case "add"
                TextBox1.Text = Val(zahl1) + Val(TextBox1.Text)
            Case "sub"
                TextBox1.Text = Val(zahl1) - Val(TextBox1.Text)
            Case "multi"
                TextBox1.Text = Val(zahl1) * Val(TextBox1.Text)
            Case "div"
                TextBox1.Text = Val(zahl1) / Val(TextBox1.Text)
        End Select
    End Sub

    Private Sub Button17_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button17.Click
        TextBox1.Text += "."
    End Sub

End Class


Ein(e) Danke(positive Bewertung) für einen guten Beitrag kann nicht schaden ;-) Danke!j Dateien und Ordner Verwaltung by Future010
0

#4 Mitglied ist offline   wanneickel 

  • Gruppe: Mitglieder
  • Beiträge: 9
  • Beigetreten: 06. Juni 14
  • Reputation: 0

geschrieben 06. Juni 2014 - 20:23

Wenn ich was dazu anmerken darf..

Benenne Controls stets nach ihrer Funktion - weiterhin, mische die Sprachen nicht - bleibe bei Englisch oder Deutsch, beides führt nur zu Verwirrung.

Und kommentiere deinen SourceCode - das erleichtert anderen die Arbeit immens.
0

#5 Mitglied ist offline   Future010 

  • Gruppe: aktive Mitglieder
  • Beiträge: 704
  • Beigetreten: 02. Januar 14
  • Reputation: 69
  • Geschlecht:Männlich

geschrieben 07. Juni 2014 - 18:24

Kennt jemand denn ein gutes Buch zu Visual Basic, am besten mit einigen Beispielen zum nach bzw selbst programmieren ?

Über eine gute Buchempfehlung würde ich mich sehr freuen.
Ein(e) Danke(positive Bewertung) für einen guten Beitrag kann nicht schaden ;-) Danke!j Dateien und Ordner Verwaltung by Future010
0

#6 Mitglied ist offline   wanneickel 

  • Gruppe: Mitglieder
  • Beiträge: 9
  • Beigetreten: 06. Juni 14
  • Reputation: 0

geschrieben 07. Juni 2014 - 18:49

Schau dir mal die Geschichten bei GalileoComputing an - da gibt´s evtl ein OpenBook. Sonst kam ich bisher mit der MicrosoftPress Lektüre gut aus - die hat mir viel geholfen. Ich weiß nicht ob evtl. Doberenz für Visual Basic was geschrieben hat - der erklärt in den Büchern auch recht gut.
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0