Erstellt von Mirko Stegemann Grundlagen Programmierung Wir bauen eine Bedingung: Wahr oder Falsch also mit Ausgabe in einem Label Wenn die Zahl in der Textbox 7 ist dann soll im Label der Hinweis „Zahl ist 7“erscheinen. Wenn keine 7 drin ist sondern irgend ein anderes Zeichen dann soll im Label der Hinweis „Zahl ist nicht 7 sondern ...“ erscheinen Option Explicit Dim Zahl Privat Sub Text1_Change() Zahl = Text1.Text IF Zahl = 7 Then MsgBox “ Zahl ist 7 “ Else Label1 = “ Zahl ist nicht 7 sondern “ & Zahl End IF End Sub Freitag, 22. Februar 2002 Bau eines einfachen Taschenrechner´s mit Visual Basic Option Explicit Private Sub durch_Click() If (zahl2) <> 0 Then ergebniss = CDbl(zahl1.Text) / CDbl(zahl2.Text) zahl1 = "" zahl2 = "" zahl1.SetFocus Else ergebniss = "Die Division durch 0 ist nicht möglich" zahl2 = "" zahl2.SetFocus End If End Sub Private Sub mal_Click() ergebniss = CDbl(zahl1) * CDbl(zahl2) zahl1 = "" zahl2 = "" zahl1.SetFocus End Sub Private Sub minus_Click() ergebniss = CInt(zahl1) - CInt(zahl2) zahl1 = "" zahl2 = "" zahl1.SetFocus End Sub Private Sub plus_Click() ergebniss = CInt(zahl1) + CInt(zahl2) zahl1 = "" zahl2 = "" zahl1.SetFocus End Sub 2 Der Durch Button Er soll suchen ob im 2 Feld eine 0 steht Im Label anzeigen was Feld 1/Feld 2 ist Feld 1 soll jetzt leer sein Feld 2 soll jetzt leer sein Der Courser soll auf Feld 1 springen Wenn eine 0 im Feld 2 ist im Label anzeigen des Textes in „ “ Feld 2 soll jetzt leer sein Der Courser soll auf Feld 2 springen Ende des Suchvorgangs Ende der Befehlsreihe für den Button Der Mal Button Im Label anzeigen was Feld 1*Feld 2 ist Feld 1 soll jetzt leer sein Feld 2 soll jetzt leer sein Der Courser soll auf Feld 1 springen Ende der Befehlsreihe für den Button Der Minus Button Im Label anzeigen was Feld 1- Feld 2 ist Feld 1 soll jetzt leer sein Feld 2 soll jetzt leer sein Der Courser soll auf Feld 1 springen Ende der Befehlsreihe für den Button Der Plus Button Im Label anzeigen was Feld 1+ Feld 2 ist Feld 1 soll jetzt leer sein Feld 2 soll jetzt leer sein Der Courser soll auf Feld 1 springen Ende der Befehlsreihe für den Button Erstellt von Mirko Stegemann Grundlagen Programmierung Fehler abfangen - Wir wollen keine Buchstaben, Option Explicit Dim ZahlenOK As Boolean Sub Prüfen() ZahlenOK = True If Not IsNumeric(zahl1) Or Not IsNumeric(zahl2) Then ergebniss = "Sorry dieses " & zahl1 & " im 1.Feld oder dieses " & zahl2 & " im 2.Feld ist keine Zahl womit man rechnen kann " ZahlenOK = False End If End Sub Private Sub durch_Click() Prüfen If Not ZahlenOK Then Exit Sub If (zahl2) <> 0 Then ergebniss = CDbl(zahl1.Text) / CDbl(zahl2.Text) zahl1 = "" zahl2 = "" zahl1.SetFocus Else ergebniss = "Die Division durch 0 ist nicht möglich" zahl2 = "" zahl2.SetFocus End If End Sub Private Sub mal_Click() Prüfen If Not ZahlenOK Then Exit Sub ergebniss = CDbl(zahl1) * CDbl(zahl2) zahl1 = "" zahl2 = "" zahl1.SetFocus End Sub Private Sub minus_Click() Prüfen If Not ZahlenOK Then Exit Sub ergebniss = CInt(zahl1) - CInt(zahl2) zahl1 = "" zahl2 = "" zahl1.SetFocus End Sub Private Sub plus_Click() Prüfen If Not ZahlenOK Then Exit Sub ergebniss = CInt(zahl1) + CInt(zahl2) zahl1 = "" zahl2 = "" zahl1.SetFocus End Sub - Zeichen - die keine Ziffern und keine Buchstaben sind, 3 Erstellt von Mirko Stegemann Grundlagen Programmierung - leere Textfelder Wir definieren die Größe Zahlenbereich (Größe der Zahl) Byte 0 bis 255 Ganzzahl Integer -32768 bis +32768 Ganzzahl Long -2 Milliarden bis +2 Milliarden Ganzzahl Fließkommazahlen: Single (8 Stellen) Double ( 15 Stellen) Select Case Erklärung Select – Auswählen OP= “+“ “-“ “*“ “/“ A-A A-S A-M A-D Select Case OP Case Ergebniss = “Division“ IF y =0 THEN ergebniss = ergebniss & “ durch Null “ Else Ergebniss = x / y Else IF End Select Das Ergebnis lautet dann: Option Explicit Dim ZahlenOK As Boolean Dim OP As String * 1 'Rechenart Dim ergebnis As Double Dim X As Double Dim Y As Double Sub Prüfen() ZahlenOK = True If Not IsNumeric(zahl1) Or Not IsNumeric(zahl2) Then ZahlenOK = False Endanzeige = "Keine Zahlen" End If End Sub Sub Rechnen() Prüfen If Not ZahlenOK Then Exit Sub X = CDbl(zahl1) Y = CDbl(zahl2) Select Case OP !!Fortsetzung auf Seite 5!! !!Fortsetzung von Seite 4!! 4 Erstellt von Mirko Stegemann Grundlagen Programmierung Case "+" Endanzeige = "Addition" ergebnis = X + Y Case "-" Endanzeige = "Subtraktion" ergebnis = X - Y Case "*" Endanzeige = "Multiplikation" ergebnis = X * Y Case "/" Endanzeige = "Division" ergebnis = X + Y If Y = 0 Then Endanzeige = Endanzeige & " durch Null" Else ergebnis = X / Y End If End Select Endanzeige = Endanzeige & " " & ergebnis End Sub Private Sub plus_Click() OP = "+" Rechnen End Sub Private Sub minus_Click() OP = "-" Rechnen End Sub Private Sub mal_Click() OP = "*" Rechnen End Sub Private Sub durch_Click() OP = "/" Rechnen End Sub Datentypen Zahlen: Direktfenster Print 2^32 und er gibt im Direktfenster 4294967296 aus Wenn wir jetzt Testen wollen wieviel in den jeweiligen Typen reinpassen dann können wir dieses auch vereinfacht im Direktfenster machen Statt Print kann man in Basic auch „?“ nehmen z.B. ? cbyte(2^32) Wir testen: CDbl(2^32) CSng(2^32) CLng(2^32) CInt(2^32) CByte(2^32) CCur CDec ListIndex -1 heist kein Text ist markiert ListCount -1 heist immer letzte markiert ListCount 0 heist immer das erste Ende Decimal hat den Index 99 Genauigkeit bis 29 stellen 5 Erstellt von Mirko Stegemann Grundlagen Programmierung Currency hat eine Genauigkeit bis 19 stellen ToolTipText Wir bauen in unseren Rechner ein Quickinfo (ToolTip) ein Private Sub zahl1_Change() QuickInfo If zahl1.Text <> "" Then End If End Sub Private Sub zahl2_Change() QuickInfo If zahl1.Text <> "" Then End If End Sub Sub QuickInfo() plus.ToolTipText = zahl1.Text & " + " & zahl2.Text minus.ToolTipText = zahl1.Text & " - " & zahl2.Text mal.ToolTipText = zahl1 & " * " & zahl2 durch.ToolTipText = zahl1 & " / " & zahl2 End Sub Wenn wir jetzt eine Message haben wollen statt den Absturz unseres gebautem Rechners mit dem Inhalt „Überlauf“ bei einer zu großen Zahlenmenge müssen wir folgenden Text im Sub von rechnen noch zufügen : Sub Rechnen() Prüfen If Not ZahlenOK Then Exit Sub On Error GoTo Fehler X = CDbl(zahl1) Y = CDbl(zahl2) Select Case OP Case "+" Endanzeige = "Addition" ergebnis = X + Y Case "-" Endanzeige = "Subtraktion" ergebnis = X - Y Case "*" Endanzeige = "Multiplikation" ergebnis = X * Y Case "/" Endanzeige = "Division" ergebnis = X + Y If Y = 0 Then Endanzeige = Endanzeige & " durch Null" Else ergebnis = X / Y End If End Select Endanzeige = Endanzeige & " " & ergebnis Exit Sub Fehler: If Err.Number = 6 Then MsgBox "Überlauf" End Sub Wir erstellen nun ein neues Projekt: Mit einem Commandbutton und einem Textfeld. 6 Erstellt von Mirko Stegemann Grundlagen Programmierung Wir kopieren den Button und fügen ihn nun werden wir gefragt ob wir ein neue steuerelementbutton erstellen wollen. welche wir mit ja beantworten und fügen dann den Button weitere 9 mal ein. Nun geben wir noch folgenden text ein um die autobeschriftung herzustellen. Private Sub cmdziffer_Click(Index As Integer) txtzahl = txtzahl & Index End Sub Private Sub Form_Load() Dim i As Integer For i = 0 To 9 cmdziffer(i).Caption = i Next i End Sub Wir wollen uns jetzt neuem zuwenden und versuchen uns an Löschbuttons. Mit Hilfe von „len“ ermitteln wir wie lang die zeichenkette ist Private Sub cmdKorr_Click() If Len(txtzahl) > 0 Then txtzahl = Left(txtzahl, Len(txtzahl) - 1) End If End Sub Nun haben wir ein zurückbutton. Der fertige Rechner mit zahlentastatur, zurück und Clearbutton hat dann folgenden Quelltext. Option Explicit Private Sub cmdclear_Click() txtzahl = "" anzeige = "" End Sub Private Sub cmdKorr_Click() If Len(txtzahl) > 0 Then txtzahl = Left(txtzahl, Len(txtzahl) - 1) Else anzeige.Caption = "Welche Zahl wollen sie denn entfernen??????" End If End Sub Private Sub cmdziffer_Click(Index As Integer) txtzahl = txtzahl & Index anzeige = "" End Sub Private Sub Form_Load() Dim i As Integer For i = 0 To 9 cmdziffer(i).Caption = i Next i cmdKorr.Caption = Chr(239) cmdKorr.FontName = "WingDings" anzeige = "" End Sub 7