problem mit dem ersten eigenen .. nennen wir es programm.

09/23/2014 23:55 norway.today#1
hab' mir eben mal einige tutorials durchgelesen und viele befehle, deren wirkung etc. durchgelesen und versucht, einen taschenrechner (:p) zu basteln. irgendwie.. hab' ich da aber 2 probleme und hoffe, dass mir jemand hier einen tipp geben könnte der mich weiterbringt!

zum einen.. bei meinem taschenrechner, egal welchen rechenart-button ich anklicke.. er addiert alles nur.

und zum anderen, hab' ich noch nicht wirklich raus wie ich es hinbekomme den rechner mit kommazahlen rechnen zu lassen. :l

wäre nett, wenn jemand lust und zeit hat mir zu helfen. ich bin mir sicher, dass das irgend ein blöder anfänger fehler ist.. aber der sei mir bitte verziehen.



oder, falls besser, hier auch die exe. bitte ignoriert die schrottige GUI

[Only registered and activated users can see links. Click Here To Register...]
09/24/2014 01:27 Black Tiger ツ#2
String ist ein ReferenceType, den du versucht by reference und nicht by value zu ändern.
Du kannst die Referenz der Referenz ändern, einfacher wäre es natürlich z.B. subtrahieren zu initialisieren und dannach zu inlinen.

Code:
rechenart = "subtrahieren"
An die C#: Bei VB frägt man mit rechenart = subtrahieren(nur mit einem "=") ab, das ist nicht der Fehler.


PS: Benutze switch-case Abfragen (gibts sowas bei VB?) Select-Case
Wtf ist VB kacke. Kein Verbatim, kein normales switch-case, kein yield, kein unsafe-block, keine statische klassen..
09/24/2014 01:38 norway.today#3
da ich seit heute das erste mal mit vb zutun habe.. hab' ich leider keine ahnung was du versuchst mir da zu sagen D: trotzdem danke!
09/24/2014 01:59 Black Tiger ツ#4
Links ist was du atm machst und rechts was du eigentlich machen wolltest.
Deswegen ist die erste Abfrage immer true.

[Only registered and activated users can see links. Click Here To Register...]
09/24/2014 08:48 Ammy'#5
Als kleiner Tipp: Gewöhn dir an deine Controls zu benennen ^^
09/24/2014 15:28 Cyberghost420#6
Code:
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        If ComboBox1.Text = "Plus" Then
            TextBox3.Text = Val(TextBox1.Text) + Val(TextBox2.Text)
        End If
        If ComboBox1.Text = "Minus" Then
            TextBox3.Text = Val(TextBox1.Text) - Val(TextBox2.Text)
        End If
        If ComboBox1.Text = "Mal" Then
            TextBox3.Text = Val(TextBox1.Text) * Val(TextBox2.Text)
        End If
        If ComboBox1.Text = "Teilen" Then
            TextBox3.Text = Val(TextBox1.Text) / Val(TextBox2.Text)
        End If
    End Sub
Hier noch'n bild:
[Only registered and activated users can see links. Click Here To Register...]
09/25/2014 17:56 stotterer09#7
Code:
Public Class Form1

Dim zahl1 As String
Dim rechenart 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 Button12_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button12.Click
zahl1 = TextBox1.Text
rechenart = "addieren"
TextBox1.Text = ""
End Sub

Private Sub Button15_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button15.Click
zahl1 = TextBox1.Text
rechenart = subtrahieren
TextBox1.Text = ""
End Sub

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

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

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

Private Sub Button11_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button11.Click
If rechenart = addieren Then
TextBox1.Text = CDbl(zahl1) + CDbl(TextBox1.Text)
ElseIf rechenart = "subtrahieren" Then
TextBox1.Text = CDbl(zahl1) - CDbl(TextBox1.Text)
ElseIf rechenart = "dividieren" Then
TextBox1.Text = CDbl(zahl1) / CDbl(TextBox1.Text)
ElseIf rechenart = "multiplizieren" Then
TextBox1.Text = CDbl(zahl1) * CDbl(TextBox1.Text)

End If
End Sub
End Class
du hast die "" vergessen
so wie du es gemacht wurde wurde rechenart immer gleich der jeweiligen variable gesetzt
außerdem wäre es ganz schick wenn du deine if Abfrage am ende durch eine select case anweisung ersetzt
09/26/2014 09:20 Graphicscore#8
Als kleiner Tipp , ich würde die Rechenarten nicht als String speichern sondern als Ganzzahl , Int oder so und gab doch diese Enums in VB die würden dass doch perfekt machen oder ?
09/26/2014 10:38 Black Tiger ツ#9
Quote:
Originally Posted by Graphicscore View Post
Als kleiner Tipp , ich würde die Rechenarten nicht als String speichern sondern als Ganzzahl , Int oder so und gab doch diese Enums in VB die würden dass doch perfekt machen oder ?
Hatten wir schon per pn und ja enums gibt es auch in vb.