[VisualBasic] Taschenrechner Problem!

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Prisoner, 28. November 2007 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 28. November 2007
    Zuletzt von einem Moderator bearbeitet: 15. April 2017
    Taschenrechner Problem!

    Hi @ All,

    ich hab nen Taschenrechner programmiert, indem man eine Kommastelle setzen kann.
    Nachdem die Kommastelle gesetzt wurde, ist die Eigenschaft = True
    Ich hab nun 3 Command Buttons "Textfeld Löschen", "Löschen", "Beenden".
    Wenn ich das Textfeld mit dem Button "Textfeld Löschen" lösche, dann wird die Eigenschaft vom Komma Button auf = False gesetzt. Mit dem Button "Löschen", lösche ich nur die Letze Zahl und wenn ich das Komma lösche, wird die Eigenschaft nicht wieder auf True gesetzt. Ich wollt euch jetzt eigentlich nur fragen, wie man den Code so ändert, dass er beim Löschen der Kommastelle die Eigenschaft wieder auf = False setzt.

    Code:
    Option Explicit
    Dim i As Byte
    Dim punkt_gesetzt As Boolean 'Merkervariable!
     
    Private Sub Command1_Click(Index As Integer)
     If (Index = 10 And punkt_gesetzt = False) Then 'And = log. UND-Verknüpfung
     Text1.Text = Text1.Text & "."
     punkt_gesetzt = True
     Command1(10).Enabled = False 'Taste deaktivieren
     Else
     If Index < 10 Then Text1.Text = Text1.Text & CStr(Index)
     End If
    End Sub
    Private Sub Command2_Click()
     
     punkt_gesetzt = False
     Text1.Text = ""
     Command1(10).Enabled = True 'Taste aktivieren
     
    End Sub
    Private Sub Command3_Click()
     Unload Me
    End Sub
    Private Sub Command4_Click()
     If Len(Text1.Text) = 0 Then
     
     MsgBox "Die Textbox ist leer!", vbCritical, "FEHLER!"
     Else
     Text1.Text = Left(Text1.Text, Len(Text1.Text) - 1)
     End If
    End Sub
    Private Sub Form_Load()
    Text1.Text = ""
    For i = 0 To 9
     Command1(i).Caption = CStr(i)
    Next i
    Command1(10).Enabled = True
    Command1(10).Caption = "."
    Command2.Caption = "Textfeld Löschen"
    Command3.Caption = "Beenden"
    Command4.Caption = "Löschen"
    Form1.Caption = "Software-Tastatur"
    End Sub
    

    Bild vom Programm
    taschenrechnerdv5.jpg
    {img-src: //img504.imageshack.us/img504/7830/taschenrechnerdv5.jpg}
     
  2. 28. November 2007
    AW: Taschenrechner Problem!

    Hallo Prisoner,

    Du musst in der Delegate-Sub für den CommandClick des Buttons abprüfen, ob ein Komma gelöscht werden soll.

    Wenn ich Deinen Code richtig verstanden habe, müsste es so gehen:
    Code:
    Private Sub Command4_Click()
     If Len(Text1.Text) = 0 Then
     MsgBox "Die Textbox ist leer!", vbCritical, "FEHLER!"
     Else
     If Text1.Text.EndsWith(",") Then
     punkt_gesetzt = False
     End If
     Text1.Text = Left(Text1.Text, Len(Text1.Text) - 1)
     End If
    End Sub
    Hoffe das hilft.

    //Edit: Falls es die Funktion EndsWith nicht gibt (könnte sein, dass es die erst in .Net gibt), kannst Du mit Right herausfinden, welches das letzte Zeichen in dem Text der TextBox ist.

    BG MaxDev
     
  3. 28. November 2007
    AW: Taschenrechner Problem!

    Mach das doch einfach mit einer Prozedur, die du immer aufrufst, wenn sich der Inhalt des Textfeldes ändert:

    Code:
    Private Sub SetKommabuttonState()
     If InStr(1, Text1.Text, ".") > 0 Then 'Auf Komma prüfen und ...
     Command1(10).Enabled = False '... den Button aktivieren, wenn keins vorhanden ist oder ...
     Else
     Command1(10).Enabled = True '... den Button deaktivieren, wenn eins vorhanden ist!
     End If
    End Sub
    Und die rufst du in Text1_Change() auf:

    Code:
    Private Sub Text1_Change()
     SetKommabuttonState 'Komma-Button aktivieren/deaktivieren
    End Sub
     
  4. 30. November 2007
    AW: Taschenrechner Problem!

    THX! Raid-Rush zeigt mal wieder was für eine Hilfsbereite Community sie doch ist

    BW an euch beiden raus!
     
  5. 30. November 2007
    AW: Taschenrechner Problem!

    [X] Erledigt.

    ~closed~

    Mfg,

    Kolazomai
     
  6. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.