sudden
Goto Top

Beim Taschenrechner soll der Rechenweg im Label stehen.

Hallo admins,

ich bin noch in den Anfängen meiner VB Karriere. Ich habe mir gedacht das ich erstmal einen Taschenrechner programmiere um mich etwas mit der syntax zu befassen etc.
Nun stört mich aber daran das der Rechenweg nicht im Label steht. D.h. nachdem ich den Operator eingebe, löscht sich das Label, damit die nächste Zahl ausgelesen werden kann.
Wie bekomme ich das hin, das alles im Label steht was ich eintippe und nur das Resultat alleine steht?


Public Class Form1
    Public zahl1 As Double
    Public zahl2 As Double
    Dim op As String
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    End Sub

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

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

    Private Sub Button9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button9.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 Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        TextBox1.Text = TextBox1.Text + "7"  
    End Sub

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

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

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

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

    Private Sub Button17_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button17.Click
        zahl2 = Val(TextBox1.Text)
        If op = "+" Then  
            TextBox1.Text = zahl1 + zahl2
        End If
        If op = "-" Then  
            TextBox1.Text = zahl1 - zahl2
        End If
        If op = "*" Then  
            TextBox1.Text = zahl1 * zahl2
        End If
        If op = "/" Then  
            TextBox1.Text = zahl1 * zahl2
        End If

    End Sub

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

    Private Sub Button13_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button13.Click
        zahl1 = Val(TextBox1.Text)
        op = "+"  
        TextBox1.Clear()
    End Sub

    Private Sub Button14_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button14.Click
        zahl1 = Val(TextBox1.Text)
        op = "-"  
        TextBox1.Clear()
    End Sub

    Private Sub Button15_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button15.Click
        zahl1 = Val(TextBox1.Text)
        op = "*"  
        TextBox1.Clear()
    End Sub

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


Ich glaube in Java ging das mit nem boolschen Wert. Bin mir aber nicht mehr sicher. Mit den Try-Catch Exceptions habe ich mich leider auch noch nicht befasst, wenn dazu jemand etwas schreiben kann, würde ich mich freuen.


MfG,

Sudden

Content-ID: 221752

Url: https://administrator.de/contentid/221752

Ausgedruckt am: 08.11.2024 um 05:11 Uhr

Lochkartenstanzer
Lochkartenstanzer 12.11.2013 aktualisiert um 10:50:58 Uhr
Goto Top
Zitat von @Sudden:
Ich weiß leider nicht wie ich den Code am besten hier rein poste also kommt er erstmal so:

Formatierungen in den Beiträgen
Sudden
Sudden 12.11.2013 um 11:19:56 Uhr
Goto Top
Hi lochkartenstanzer,

danke dafür face-smile
106543
106543 12.11.2013 um 11:34:43 Uhr
Goto Top
Hi,

ich kann dir zwar nicht bei deinem spezifischen Problem helfen, aber ich würde dir zu empfehlen, in deinen Programmen den Objekten eindeutige Namen zu geben.
Also nicht:
Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click
        TextBox1.Text = TextBox1.Text + "1"  
End Sub
Sondern:
Private Sub Zahl_Eins_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Zahl_Eins.Click
        TextBox1.Text = TextBox1.Text + "1"  
End Sub
Wenn du das nicht machst verlierst du irgendwann die Übersicht, welcher Button welcher ist und dann verhaust du dein ganzes Projekt.


Freundliche Grüße
Exze
Sudden
Sudden 12.11.2013 um 11:39:39 Uhr
Goto Top
Hey, Exzellius,

das ist ja erstmal nur ein kleiner Test, bei umfangreicheren Programmen ist es Essenziell das zu machen, aber habe hier nicht die Notwendigkeit gesehen. face-smile

Aber trotzdem Danke.

MfG,

Sudden
colinardo
colinardo 12.11.2013 um 15:51:11 Uhr
Goto Top
Hallo Sudden,
nutze zum aneinanderfügen von Strings in einer Textbox den & Operator anstatt das +, denn
mit dem plus möchte der Compiler etwas ausrechnen !

Grüße Uwe
Sudden
Sudden 13.11.2013 aktualisiert um 09:58:47 Uhr
Goto Top
Hey Uwe,

okay, das hab ich verstanden, löst aber leider nicht mein Problem.

MfG,

Sudden
colinardo
colinardo 13.11.2013 um 09:57:55 Uhr
Goto Top
Zitat von @Sudden:
das habe ich nicht ganz verstanden. Kannst du es mir nochmal erklären?
Wenn es nur um das anfügen von Text in einer Textbox geht musst du die Strings mit dem "&" Zeichen miteinander verbinden und nicht mit einem "+".
TextBox1.Text = TextBox1.Text & "1" 
oder verkürzt geschrieben so
TextBox1.Text &= "1" 
Bei einem Plus versucht das Programm etwas zu berechnen wenn es auf einen Text trifft der sich in eine Zahl umwandeln lässt, und deshalb wird dann in der Textbox gleich das Ergebnis dieser Berechnung eingesetzt. So wie ich dich aber verstanden habe möchtest du ja erst mal den Rechenschritt nur in einer Textbox anzeigen lassen.

Grüße Uwe
Sudden
Sudden 13.11.2013 um 10:00:08 Uhr
Goto Top
Nicht in einer, sondern in genau dieser. face-smile

MfG,

Sudden
colinardo
colinardo 13.11.2013 aktualisiert um 10:06:24 Uhr
Goto Top
Verstehe dein Problem nicht ...
Wie bekomme ich das hin, das alles im Label steht was ich eintippe und nur das Resultat alleine steht?
Das ist in sich widersprüchlich, und schlechtes Deutsch ! Klär mich auf ...
colinardo
colinardo 13.11.2013 aktualisiert um 12:06:46 Uhr
Goto Top
hier mal ein simples Demo-Rechner-Projekt(VS2010) für dich zum Download als Anregung, zum Lernen und Abschauen face-wink

Grüße Uwe
Sudden
Sudden 13.11.2013 um 12:11:11 Uhr
Goto Top
Vielen Dank Uwe!

Das löst mein Problem. Er schreibt den Rechenweg in das Label also "5+6" und wenn ich "=" drücke steht das Ergebnis alleine also "11". So wie ich das wollte!

MfG,

Sudden