TEIL 4: STEUERELELEMENTE, Aufgaben 21 bis 27


Aufgabe 21


Fangen wir an mit der PICTURE-BOX (Bildfeldsteuerelement).
In ihr können auf einem Formular Bilder eingebunden oder auch selbst gezeichnet werden: aus der letzten Aufgabe ist sie dir bereits bekannt. Damit es nun nicht zu langweilig wird, sollst du noch den Begriff Funktion kennenlernen.



Im obigen Beispiel wurde eine Funktion Linien_zeichnen ins Formular geschrieben:



Nach dem Deklarationsteil für die benutzten Variablen werden die Eigenschaften ScaleWidth und ScaleHeight der PictureBox benutzt, um ihre Breite und Höhe zu bestimmen. Um 15 gleiche Abstände zu erhalten, werden Breite und Höhe durch 15 dividiert, das Ergebnis wird schritt_x bzw. schritt_y genannt und in der Zählschleife dazu benutzt, um für die Linien geeignete Koordinaten zu bestimmen. Spiele mit Papier und Bleistift selber Prozessor und gib die Koordinaten der Linienendpunkte für i=0,1,2,3,... an.

Wenn nun mit der Schaltfläche zeichnen das Bild gezeigt werden soll, so muss nur noch obige Funktion aufgerufen werden:



Für´s Rücksetzen wird die Eigenschaft Picture1.cls verwendet.

Nun aber deine Aufgabe:

Entwirf ein Formular mit Bildfeldsteuerelement, 3 Schaltflächen und deinem Logo, zeichne mit Hilfe einer geeigneten Funktion ein Muster aus 10 konzentrischen Kreisen, deren Mittelpunkt im Mittelpunkt der PictureBox liegt, deren Radien jeweils um 2 mm größer werden, deren Farben voneinander verschieden sind. Programmname: Picbox.


Aufgabe 22



Das nächste Beispiel ist etwas anspruchsvoller: es geht um das Zeichnen eines Koordinatensystems und einer verschobenen Normalparabel.



Zunächst mal die Funktion koord_zeichnen:

Sub koord_Zeichnen()
   Dim i As Integer
   Dim Breite As Integer

   Dim Hoehe As Integer
   Dim abstand As Single

   Breite = Picture1.ScaleWidth
   Hoehe = Picture1.ScaleHeight
   Picture1.ForeColor = QBColor(0)

      'Zeichne das Koordinatensystem:
      ScaleMode = 6  'Maßeinheit ist mm
      Picture1.Line (0 + 3, Hoehe / 2)-(Breite - 3, Hoehe / 2)  'x-Achse
      Picture1.Line (Breite / 2, 0 + 3)-(Breite / 2, Hoehe - 3)  'y-Achse


      'Skala auf der x-Achse
      abstand = (Breite - 6) / 10
      For i = 0 To 10
        Picture1.Line (i * abstand + 3, Hoehe / 2 - 1)-(i * abstand + 3, Hoehe / 2 + 1)
      Next i

      'Skala auf der y-Achse
      abstand = (Hoehe - 6) / 10
      For i = 0 To 10
        Picture1.Line (Breite / 2 - 1, i * abstand + 3)-(Breite / 2 + 1, i * abstand + 3)
      Next i

      'Beschriftung der Achsen
      Picture1.ForeColor = QBColor(10)
      Picture1.FontBold = True

      'x-Achse
      For i = 0 To 10 Step 2

        abstand = (Breite - 6) / 10
        Picture1.CurrentX = abstand * i + 1
        Picture1.CurrentY = Hoehe / 2 + 2
        Picture1.Print i - 5
      Next i

      'y-Achse

      For i = 10 To 0 Step -10
        abstand = (Hoehe - 6) / 10
        Picture1.CurrentX = Breite / 2 + 1
        Picture1.CurrentY = abstand * i + 1
        Picture1.Print (i - 5) * (-1)
      Next i

End Sub


Nach der Variablendeklaration werden wie auch in der vorherigen Aufgaben Höhe und Breite des Bildsteuerelements bestimmt, die Zeichenfarbe wird festgelegt, der Skalierungsmodus wird auf Millimeter gesetzt.

Den Line-Befehl kennst du bereits, beachte, dass bei der Festlegung der Anfangspunkte ein Abstand von 3 mm vom Rand eingehalten wird.
Um die beiden Achsen auch beschriften zu können, wird zunächst die Größe einer Längeneinheit festgelegt:
die x-Achse ist breite-6 mm lang und wird in 10 Abschnitte geteilt, die Länge eines Abschnitts wird abstand genannt. Die Variable abstand wird dann bei der Festlegung der Punkte benutzt (nimm hier wieder Papier und Bleistift zur Hand und bestimme die Koordinaten für i=0,1,2,...
Um die Markierungsstriche auch zu beschriften, wird die Zeichenfarbe geändert, der Schriftstil zu fett geändert.
In 2 Zählschleifen wird die jeweilige Cursorposition festgelegt und die Zahlen werden "gedruckt".


Teil a) dieser Aufgabe:
Erstelle ein passendes Formular für das Zeichnen einer Funktion.

Teil b) dieser Aufgabe:
Schreibe eine Funktion koord_zeichnen(), die ein Achsenkreuz von -10 bis +10 liefert.


Nun kommt der nächste Spickzettel: die Funktion, mit deren Hilfe die Parabel gezeichnet wurde:



Neu ist hier nur noch die Methode Picture1.PSet(a,b), die an der Stelle (a/b) einen Punkt zeichnet. Beachte die Multiplikation mit -1 in der 4.letzten Zeile der obigen Abbildung: die y-Achse läuft nach unten!!!

Teil c) dieser Aufgabe:
Schreibe den Programmcode für eine Funktion Gerade_zeichnen(), die die
Gerade y = - 2 * x + 4 zeichnet.

Das fertige Programm soll den Namen GERADE haben.


Bemerkung:
Die ImageBox (Anzeigesteuerelement) ist der PictureBox sehr ähnlich. Sie verbraucht weniger Systenresourcen und kann schneller dargestellt werden, unterstützt aber nicht soviele Ereignisse, Eigenschaften und Methoden wie die PictureBox.

Aufgabe 23



Auch das nächste Objekt, das FORMULAR (form) ist dir vertraut: Auf ihm werden die übrigen Steuerelemente aufgebracht. Um Eigenschaften und Methoden während des Programmablaufs beeinflussen zu können, muss der Befehl Option explicit eingefügt werden.
Die ff. Abbildung zeigt, wie man den Hintergrund eines Formulars kachelt.



Neu sind lediglich die with-Anweisung und die PaintPicture-Funktion (vgl. Kommentare in der Abbildung). Als Ergebnis erhältst du:



  1. Stelle nun selbst ein solches gekacheltes Formular her, Programmname KACHEL. Füge dein Bild in eine ImageBox ein!
  2. Verändere Schrittweite und Zähler in den beiden Schleifen und teste, was geschieht.
  3. Schreibe noch ein Programm Kachel_b, bei dem dein Bild über das Formular rutscht:
  4. Ändere dann kachel_b zu kachel_c, sodass das Bild nach unten rutscht.



Aufgabe 24



Auch das Schaltflächensteuerelement (Command Button), das für das Betätigen von Eingaben oder Starten von Prozessen verwendet wird, ist dir längst bekannt. Darum hier gleich die Aufgabe (Programmname schalt_a): (Denke an den Befehl option explicit!!!)

Noch eine Bemerkung:
Sollen mehrere Schaltflächen mit derselben Eigenschaft ausgestattet werden, so kannst du sie mit festgehaltener Steuerungstaste alle markieren, dann im Eigenschaftsfenster allen gleichzeitig die gewünschte Eigenschaft zuordnen. Das spart ein bißchen Zeit.





Aufgabe 25



Hier geht´s um das Steuerelement LABEL, das zur Beschriftung anderer Steuerelemente oder zur Textausgabe dient. Auch diese Aufgabenstellung ist anhand der Abbildung erkennbar, Programmname soll schalt_b sein.



Hinweis:
Im Programmcode des linken Schaltknopfes steht z.B. anzahl=anzahl+1,dabei muss die Variable anzahl global sein, d.h. sie muss auch nach Beendigung des Unterprogrammes zur Verfügung stehen! Schreibe also in den allgemeinen Teil: dim anzahl as integer. Falls diese Deklaration nur im Unterprogramm steht, dann wird nicht weitergezählt!!!

Aufgabe 26



Nun noch das letzte dir bereits bekannte Steuerelement, die TextBox. Sie wird für Eingabe und Ausgabe von Text benutzt:



Benutzt man die Eigenschaft visible, so kann ein Steuerelement per Knopfdruck unsichtbar werden: text1.visible=true oder text1.visible=false.
Programmname: tbox.

Aufgabe 27


Noch ein weiteres Beispiel zur Textbox: die Umrechnung von °C in °F.
Hinweis:
Der Schmelzpunkt 0 °C = 32 °F, der Siedepunkt 100 °C = 212 °F.
In der Abbildung erkennst du die Umrechnungsformel, erkläre sie auch!



Bei Betätigung des Rücksetz-Knopfes sollen die gelben und grünen Steuerelemente unsichtbar werden, bei Betätigung des Eingabeknopfes sollen die gelben Steuerelemente erscheinen, bei Anwahl der Programminfo nur die grüne Textbox. Programmname: celsfahr.





© 2010 Asti PoVRay-Site Mathematische Streiflichter