VB -22: PictureBox

Die richtige Athmosphäre schaffen...

Ihr habt die gröbste Macke sicherlich schon gefunden: Wenn wir eine symbolische Addition machen und danach über unser Menü zur Zählübung wechseln, dann bleiben die blauen Kugeln von der Addition bei der ersten Übung noch sichtbar. Wir müssen also bei jedem Zugriff auf unser Menü, auch evtl. vorhandene Kugeln verschwinden lassen.

     Private Sub mnuAddSymb_Click()
         KugelnUnsichtbar                'evtl. sichtbare Kugeln unsichtbar machen
         SymbAddition
         aktiveUebung = "SymbAddition"
     End Sub

     Private Sub mnuZaehlen_Click()
         KugelnUnsichtbar                'evtl. sichtbare Kugeln unsichtbar machen
         Zaehlen                         'Aufruf unserer Zählübung
         aktiveUebung = "Zählen"         'Uebung merken
     End Sub
     

Jetzt klappt's auch mit dem Wechseln!

Beispielprojekt laden

Wir wollen nun die Programmierung der weiteren Übungen vorbereiten. Da wir für diese Übungen keine Kugeln mehr brauchen, könnten wir einfach alle Rechenaufgaben durch unser Label darstellen. Das wär jedoch etwas langweilig . Wir wollen die Umgebung etwas anpassen und unsere Aufgaben auf einer Schultafel präsentieren.

    Dazu gibt es mehrere Möglichkeiten:
  1. Wir weisen der Form_Picture-Eigenschaft eine Grafik zu
    Probiert's mal aus: Das Bild wird am linken oberen Rand kleben! (Einen Ausweg aus diesem Dilemma werden wir später kennenlernen.)
  2. Die zweite Möglichkeit, ein Image-Control hinter die Kugeln zu legen, ist schon etwas besser. Wir müssen jedoch dann darauf achten, daß alle neuen Controls (auch die zur Laufzeit geladenen) im Vordergrund liegen.
  3. Wir wählen stattdessen ein Picture-Control, das dem Image-Control sehr ähnlich ist, aber einige zusätzliche Möglichkeiten bietet: Es dient als sogenanntes Container-Control (eine Art "Unter-Form") und kann weitere Controls enthalten, z.B. unsere Kugeln, Label und Textbox.

Wir bauen unser Programm dazu ein bißchen um. Zunächst mal hab ich die Kugelanimation rausgenommen, weil wir sie inzwischen zur Genüge kennen (Ihr könnt sie natürlich jederzeit wieder einbauen). Stattdessen zeigen wir den Begrüßungstext mit einem Label auf der Tafel an, die wir als picTafel einbauen.

     Private Sub Form_Activate()
       Verzoegerung 2
       MsgBox "Bitte suche eine Übung aus!", vbExclamation
       lblBegruessung.Visible = False        'Begrüßung verschwinden lassen
     End Sub
     

Außerdem habe ich auch noch die Farben der Textbox an unsere Tafel angepaßt: weiße Schrift auf schwarzem Untergrund, der 3D-Effekt ist abgeschaltet.

Anmerkung: Wie bereits erwähnt, ist unsere PictureBox ein Container-Control. Damit alles sauber läuft, müssen wir unsere bisherigen Controls zuerst ausschneiden (alle markieren und Ctrl-X) und dann im Picture-Control wieder einfügen (Picture makieren und dann Ctrl-V) und an die richtige Stelle schieben.

Ich hab diesmal ein GIF-Format für unsere Tafel gewählt (wird ab Version 5 unterstützt). Das hat 2 Vorteile:

Es hat aber auch einen erkennbaren Nachteil: Beim Darstellen und Neuzeichnen (jedesmal wenn Kugeln darauf dargestellt werden oder Text geändert wird) tritt ein leichtes Flackern auf, weil unser Programm jedesmal erst noch in das interne Bitmap-Format konvertieren muß. Ihr habt also die Qual der Wahl!?

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.