(Taschen)Rechner

Gctwo

Grünschnabel
Hi all!

Ich hab erst vor (sehr) kurzem VB gelernt und bin noch teils unwissend.
Bitte jetzt nicht sagen "Suchfunktion benutzen! ...", denn ich weiß nicht so recht nach was ich suchen sollte...


OK, Hier mein Problem :rolleyes: :

Ich versuche gerade als Übungsbeispiel einen Rechner (ähnlich dem Standard Windows Ding) zu programmieren, aber ich schaffs einfach nicht sowohl die Rechenoperation als String oder sonstwas anzuzeigen als auch im Hintergrund auszurechnen und dann anzuzeigen.
Wenn ich versuche alles einfach in einem String zusammenzufügen und dann mittels CInt umzuwandeln gibt's einen TypenFehler.
Ich hab's auch schon anders probiert - aber half nix. :(

Jetzt hätte ich noch die Idee einfach die Rechnung anzeigen zu lassen - aber dazu müsste man "die Rechnung davon abhalten sich auszurechnen".

Natürlich ist das nur ein Gedankengang und es ist wohl besser wenn ihr eure Ideen postet.

Also thx im vorraus!
:) :rolleyes:
 
Hi ...
hier mal einer von mir, falls du noch weitere Hilfe brauchst ...

Option Explicit
Dim Eingabe1 As Integer
Dim Eingabe2 As Integer
Dim Ausgabe As Integer
Dim bOperator As String
Dim FeldNull As Boolean


Private Sub cmd0_Click()
txtein.Text = zahleneingabe(0)
End Sub

Private Sub cmd1_Click()
txtein.Text = zahleneingabe(1)
End Sub

Private Sub cmd2_Click()
txtein.Text = zahleneingabe(2)
End Sub

Private Sub cmd3_Click()
txtein.Text = zahleneingabe(3)
End Sub

Private Sub cmd4_Click()
txtein.Text = zahleneingabe(4)
End Sub

Private Sub cmd5_Click()
txtein.Text = zahleneingabe(5)
End Sub

Private Sub cmd6_Click()
txtein.Text = zahleneingabe(6)
End Sub

Private Sub cmd7_Click()
txtein.Text = zahleneingabe(7)
End Sub

Private Sub cmd8_Click()
txtein.Text = zahleneingabe(8)
End Sub

Private Sub cmd9_Click()
txtein.Text = zahleneingabe(9)
End Sub

Private Sub cmdadd_Click()
Eingabe1 = txtein.Text
txtein.Text = ""
bOperator = "+"
End Sub

Private Sub cmdsub_Click()
Eingabe1 = txtein.Text
txtein.Text = ""
bOperator = "-"
End Sub

Private Sub cmdmulti_Click()
Eingabe1 = txtein.Text
txtein.Text = ""
bOperator = "*"
End Sub

Private Sub cmddiv_Click()
Eingabe1 = txtein.Text
txtein.Text = ""
bOperator = "/"
End Sub

Private Sub cmdgleich_Click()
Eingabe2 = txtein.Text
Select Case bOperator
Case "+":
txtein.Text = Eingabe1 + Eingabe2
Case "-":
txtein.Text = Eingabe1 - Eingabe2
Case "*":
txtein.Text = Eingabe1 * Eingabe2
Case "/":
txtein.Text = Eingabe1 / Eingabe2
End Select
Eingabe1 = 0
Eingabe2 = 0
FeldNull = True
End Sub

Function zahleneingabe(zahl)
If FeldNull = True Then
txtein.Text = 0
FeldNull = False
End If
If Len(txtein.Text & zahl) > 4 Then
zahleneingabe = txtein.Text
Else
zahleneingabe = CInt(txtein.Text & zahl)
End If
End Function

Private Sub txtein_Change()
If Not IsNumeric(txtein.Text & 0) Then
Call MsgBox("Bitte geben Sie nur Zahlen ein!", vbCritical, "Fehler")
txtein.Text = 0
End If
End Sub

das ist einer von mir, habe den Ende letzten Jahres zur Übung geproggt!

ciao der Budda
 
Code:
Private Sub cmd0_Click()
txtein.Text = zahleneingabe(0)
End Sub

Private Sub cmd1_Click()
txtein.Text = zahleneingabe(1)
End Sub

Private Sub cmd2_Click()
txtein.Text = zahleneingabe(2)
End Sub

Private Sub cmd3_Click()
txtein.Text = zahleneingabe(3)
End Sub

Private Sub cmd4_Click()
txtein.Text = zahleneingabe(4)
End Sub

Private Sub cmd5_Click()
txtein.Text = zahleneingabe(5)
End Sub

Private Sub cmd6_Click()
txtein.Text = zahleneingabe(6)
End Sub

Private Sub cmd7_Click()
txtein.Text = zahleneingabe(7)
End Sub

Private Sub cmd8_Click()
txtein.Text = zahleneingabe(8)
End Sub

Private Sub cmd9_Click()
txtein.Text = zahleneingabe(9)
End Sub

Nichts für ungut, aber das ist relativ schlechter Stil. In VB 6 solltest Du für solche Dinge besser Steuerelementfelder benutzen und jeweils den Index des sendenden Controls verwenden.
Erstens spart das Tipparbeit und zweitens lässt sich der Code so später leichter anpassen. ;)
 
danke für den Tip, aber zu der Zeit haben wir Index, usw. noch nicht gehabt in der Schule! Ich habe ja auch gesagt, das Der schon von Dez 2002 ist ... und außerdem so der große VB-Freak bin ich auch nicht :) lieber HTML mit allem Drum und Dran

ciao
 

Neue Beiträge

Zurück