VB -14: Control-Arrays

Arbeit sparen...

Nun aber zu unserer Zählübung! Damit unsere Kugel sich endlich nützlich machen kann, wollen wir sie als Objekt für unsere Übung nutzen, indem wir nacheinander eine unterschiedliche Anzahl von Kugeln anzeigen und uns vom Anwender sagen lassen, wieviel es sind.

Dazu gehen wir in den Form-Design-Modus unserer Hauptform und plazieren ein weiteres Image-Control mit dem Namen KugelX, dem wir als Picture wieder unsere Kugel zuweisen. Da sie zu Anfang unsichtbar sein soll, stellen wir unter "Visible" den Schalter auf "False". Jetzt könnten wir das so oft wiederholen, wie wir Kugeln brauchen und jeder Kugel einen anderen Namen geben. Das wäre jedoch nicht nur relativ mühsam, es wäre auch später für unsere Programmierung unpraktisch.

Stattdessen nutzen wir die Möglichkeit, ein Control-Array (Bereich, Feld) anzulegen. Es geht ganz einfach: Auf der Form die erste Kugel markieren, kopieren (Ctrl-C) und wenn wir jetzt Einfügen (Ctrl-V) drücken, kommt automatisch eine Meldung, daß wir schon ein Control dieses Namens haben und ob wir ein Control-Array anlegen wollen. Wir bestätigen mit "Ja".

Wenn wir jetzt im Eigenschaftenfenster unter Index nachsehen, steht dort bei der ersten KugelX eine "0", bei der zweiten eine "1". Wir müssen die neue KugelX nur noch an die richtige Stelle rücken (in einer Reihe) und können auf die gleiche Weise weitere KugelX einfügen (jeweils Ctrl-V auf der Hauptform), insgesamt wollen wir uns mit 9 begnügen.

Anmerkung: Wir werden in Kürze eine noch elegantere Methode kennenlernen, Control-Arrays zu erzeugen.

Standardmäßig beginnen Arrays mit dem Index 0. Control-Arrays sind stets eindimensional, d.h. sie sind einfach fortlaufend numeriert (bei Variablen-Feldern werden wir auch noch mehrdimensionale Felder kennenlernen). Im Code können wir auf sie zugreifen, indem wir an den Namen den Index anhängen:

        KugelX(0), KugelX(1)...
        

Über den Kugeln positionieren wir ein Label-Control mit dem Namen "Frage" und der Caption-Eigenschaft "Wieviel Kugeln sind es?" und fügen noch eine TextBox hinzu, damit unser Proband das Ergebnis eingeben kann und nennen sie "Ergebnis", im Eigenschaftenfeld "Text" löschen wir den Vorgabetext (Text1). Auch deren Visible-Eigenschaft schalten wir zunächst auf False.

Wenn wir jetzt unser Programm ablaufen lassen, ist von unseren ganzen neuen Elementen nichts zu sehen, unser Programm läuft genau wie bisher ab. Wir müssen also noch den Code für unsere Zählübung schreiben. Dazu wechseln wir ins Code-Fenster unserer Hauptform, lassen dort zunächst mal unsere Animationskugel verschwinden und setzen an in unsere If-Abfrage den Aufruf der Zählübung:

    Private Sub Form_Activate()
      ...
      Kugel.Visible = False 'animierte Kugel verschwinden lassen

      If MsgBox("Wollen wir zählen üben?", vbQuestion + vbYesNo, "Hallo!") = vbNo Then
        MsgBox "Schade! Dann machen wir Schluß für heute...", vbExclamation
        End                'Programm wird beendet, wenn Anwender nicht zählen üben will
       Else
        Zaehlen             'Aufruf unserer Zählübung
      End If
    End Sub
    

Nun kreieren eine neue Prozedur "Zaehlen":

    Sub Zaehlen()
        Frage.Visible = True            'Frage anzeigen
        For i = 1 To 5                  '5 Kugeln anzeigen
            KugelX(i-1).Visible = True  '1 abziehen, weil Index mit 0 beginnt!
        Next
        Ergebnis.Visible = True         'Antwortfeld anzeigen
    End Sub
    

Damit das Ergebnis auch überprüft wird, schreiben wir in das Change-Ereignis (das tritt dann ein, wenn der Text sich durch eine Eingabe ändert) eine Abfrage:

    Private Sub Ergebnis_Change()
        If Ergebnis.Text = "5" Then
            MsgBox "Richtig!"
           Else
            MsgBox "Leider falsch!"
        End If
    End Sub
    

Beispielprojekt laden

Wenn wir unser Programm jetzt laufen lassen, werden, wenn die Frage nach der Zählübung mit "Ja" beantwortet wird, die ersten 5 Kugeln angezeigt. Sobald eine 5 eingegeben wird, wird mit der Meldung "Richtig!" bestätigt. Das ist natürlich nur der Anfang, selbstverständlich sollen noch mehr Zählübungen durchgeführt werden und wir wollen auch nicht jedesmal vorgeben, wieviele es sein sollen... Doch dazu mehr in der nächsten Übung...

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.