VB -29: Zeilenumbrüche

Wenn der Bildschirm nicht reicht...

Ihr habt es sicher schon bemerkt: Manchmal sind unsere Code-Zeilen so lang, daß wir mit dem Scrollbalken hin und her müssen um die ganze Zeile zu bearbeiten. Wenn das zu mühsam ist, können wir auch ein Fortsetzungszeichen setzen und lange Statements in der nächsten Zeile fortführen. Als Fortsetzungszeichen dient unter VB das Unterstreichungszeichen "_" am Zeilenende. Nehmen wir unsere "Declare"-Anweisung für die Sound-API-Funktion und teilen sie etwas auf:

     Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" _
      (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
 

VB weiß jetzt, daß der Befehl in der nächsten Zeile fortgesetzt wird und hängt diese bei der Ausführung automatisch aneinander. So können wir uns stets bei längeren Zeilen helfen. Auch mehrere Zeilenumbrüche sind möglich, z.B.:

     Declare Function sndPlaySound Lib "winmm.dll" _
       Alias "sndPlaySoundA" (ByVal lpszSoundName _
       As String, ByVal uFlags As Long) As Long
 

Machen wir nun mit den nächsten Übungen weiter, der Multiplikation und der Division. Dazu füllen wir zunächst unser KeyPress-Ereignis auf:

        Case "Multiplikation"
            Multiplikation           'nächste Multplikation
        Case "Division"
            Division                 'nächste Division
        End Select
 

Die Menü-Click-Ereignisse sehen unseren bisherigen Übungen wieder sehr ähnlich:

     Private Sub munMultiplikation_Click(Index As Integer)
        Unsichtbar                      'evtl. sichtbare Kugeln unsichtbar machen
        MaxFaktorSuchen (Index)         'Zahlenbereich aus Menü-Index bestimmen
        Multiplikation                  'Aufruf unserer Subtraktion
        aktiveUebung = "Multiplikation" 'Uebung merken
     End Sub

     Private Sub mnuDivision_Click(Index As Integer)
        Unsichtbar                      'evtl. sichtbare Kugeln unsichtbar machen
        MaxFaktorSuchen (Index)         'Zahlenbereich aus Menü-Index bestimmen
        Division                        'Aufruf unserer Subtraktion
        aktiveUebung = "Division"       'Uebung merken
     End Sub
 

Anstelle eines Min- und Max-Ergebniswerts müssen wir nun den jeweils größten Faktor suchen (bzw. Nenner, denn auch unsere Division ist ja nichts anderes als eine umgekehrte Multiplikation). Das lagern wir wieder in ein kleines Unterprogramm aus:

     Private Sub MaxFaktorSuchen(Index)
        Select Case Index               'Zahlenbereich aus Menü-Index bestimmen
            Case 0
                MaxFaktor = 10
            Case Else
                MaxFaktor = 20
        End Select
     End Sub
 

Der Einfachheit halber habe ich unser Menü etwas geändert und die Division von ursprünglich max 500 auf max 400 begrenzt .

MaxFaktor machen wir wieder modulweit bekannt:

     Dim MaxFaktor As Integer        'aktueller Max-Faktor modulweit bekanntmachen
 

Jetzt fehlt noch der Code zum Suchen der Zufallszahl und zum Schreiben der Aufgabe:

     Private Sub Multiplikation()
     Dim faktor1 As Integer, faktor2 As Integer

        faktor1 = Zufallszahl(1, MaxFaktor)  'Faktor1
        faktor2 = Zufallszahl(2, MaxFaktor)  'Faktor2
        x = faktor1 * faktor2

        lblAufgabe.Caption = Str$(faktor1) & " x" & Str$(faktor2) & " ="
                                        'Aufgabe in Label schreiben
        lblAufgabe.Visible = True       'Aufgabe anzeigen
        txtErgebnis.Text = ""           'Textfeld löschen
        txtErgebnis.Visible = True      'Antwortfeld anzeigen
        Me.KeyPreview = True            'Tastencodes abfragen
        txtErgebnis.SetFocus            'Cursor ins Textfeld setzen
     End Sub

    Private Sub Division()
    Dim faktor1 As Integer, faktor2 As Integer

        faktor1 = Zufallszahl(2, MaxFaktor)  'Faktor1
        faktor2 = Zufallszahl(3, MaxFaktor)  'Faktor2
        x = faktor1 * faktor2

        lblAufgabe.Caption = x & " :" & Str$(faktor1) & " ="
                                        'Aufgabe in Label schreiben
        x = faktor2                     'Ergebnis und Faktor vertauschen für Division
        lblAufgabe.Visible = True       'Aufgabe anzeigen
        txtErgebnis.Text = ""           'Textfeld löschen
        txtErgebnis.Visible = True      'Antwortfeld anzeigen
        Me.KeyPreview = True            'Tastencodes abfragen
        txtErgebnis.SetFocus            'Cursor ins Textfeld setzen
    End Sub
 

Fertig! Alle Rechenaufgaben können jetzt fleißig geübt werden.

Beispielprojekt laden

zurück Index weiter


© Copyright 1998-2000 J.Behling EMail schreiben ABC-Ware's Homepage
Weitergabe und Druck (auch in Teilen, mit Ausnahme von Privatgebrauch) ohne ausdrückliche Genehmigung der Autorin untersagt.