Übung: Befehlsschaltfläche, Optionsfeld und Kontrollkästchen


Das Ziel dieser Übung ist, die verschiedenen Funktionen von Befehlsschaltflächen (meist auch nur als "Schaltfläche" bezeichnet), Optionsfeldern und Kontrollkästchen kennenzulernen, und diese in VB-Anwendungen einsetzen zu können. Am Ende dieser Übung sollte man folgendes beherrschen:


In der vorangegangenen Übung wurde ein Icon aus der Sammlung von VB ausgewählt (aus dem Unterverzeichnis \icons\), und in ein Bildfeld geladen. Diese Vorgehensweise wird wieder eingesetzt, aber anstelle des simplen Ladens eines Icons wird erforscht, wie man dem Benutzer die Wahl zwischen verschiedenen Icons geben kann. Die Syntax des LoadPicture-Befehls lautet wie folgt:

  Picture1 = LoadPicture("C:\Programme\vb4\icons\office\Files10.ico")

Dieser Ausdruck lädt das Icon, dessen Verzeichnispfad zwischen den Anführungszeichen angegebenen ist, in das Bildfeld mit Namen Picture1. Denken Sie daran, den Verzeichnispfad an die Verzeichnisstruktur Ihres Computers anzupassen (z.B. R:\Graphiken\Vb4\Symbole).

Benutzen sie die Online-Hilfe von VB, um folgende Aufgaben zu lösen.

  1. Optionsfelder

    Entwerfen Sie eine Anwendung, die wie die folgende Abbildung aussehen sollte:

    Alle benötigten Icons können in der Icon-Sammlung gefunden werden. Um den Inhalt der Icon-Unterverzeichnisse einsehen zu können, clicken Sie auf die Icon-Zeile der Eigenschaften-Liste des Bildfeld-Steuerelementes, und dann im Öffnen-Dialogfeld auf das entsprechende Unterverzeichnis (siehe weiter unten). Viele der Icons haben eindeutige Namen, wie beispielsweise pencil02.ico, andere hingegen haben weniger klare Namen (wie z.B. msc21.ico).

    Anmerkung: Wenn Sie zuerst den Rahmen erstellen und anschließend die Optionsfelder ergänzen, indem Sie sie in der Werkzeugsammlung markieren und dann innerhalb des Rahmens mit gedrückter linker Maustaste einen Begrenzungsrahmen aufziehen, wird das Steuerelement fest mit dem Rahmen verbunden, und sich ebenfalls mitbewegen, wenn die Position des Rahmens geändert wird. Wurden hingegen die Steuerelemente an anderer Stelle auf der Form erstellt, und dann in den Rahmen hineingezogen, sind sie nicht mit diesem fest verbunden, und bewegen sich bei einem Verschieben des Rahmens nicht mit. Versuchen Sie es.


  2. Im derzeitigen Stadium verfügt die Anwendung über kein Mechanismus zur Beendigung, sie muß mit dem -Knopf der VB-Symbolleiste gestoppt werden. Fügen Sie eine Schaltfläche hinzu, um den Programmablauf mit dieser beenden zu können. Alles, was dafür notwendig ist, ist der Befehl End in der Click-Methode der Befehls-Schaltfläche.


  3. Kontrollkästchen

    Optionsfelder sind gegenseitig ausschließend, es kann also immer nur eine Option angewählt sein. Angenommen, man möchte dem Benutzer eine Reihe Optionen präsentieren, bei denen auch mehrere zugleich angewählt werden können. Hierfür sind Kontrollkästchen am besten geeignet. Erstellen Sie eine Anwendung wie die weiter unten abgebildete. Der Benutzer wählt zwischen mehreren Möglichkeiten, die Ihn interessieren (hier: angebotene Ziele eines Reisebüros), durch Anwahl des entsprechenden Kontrollkästchens. Ein Click auf ein leeres Kontrollkästchen setzt ein Häkchen auf dieses, und ein Click auf ein angewähltes Kontrollkästchen entfernt das Häkchen. Die Checked-Eigenschaft des Kontrollkästchens kann den Wert 1 (=checked), 0 (=unchecked) oder 2 (=grayed) haben.


    Diese Anwendung benötigt die Eingabe von Programmcode hinter der Click-Methode jedes Kontrollkästchens, um aussagen zu können: ist das Kästchen markiert, zeige das entsprechende Bild, andernfalls lösche das Bild im Bildfeld. Diese Fallunterscheidung wird in VB mit einem konditionalen Befehl (einem If-Befehl) bewerkstelligt, der den Status der Value-Eigenschaft der Kontrollkästchen abfragt. Studieren Sie den nachfolgenden Code um nachzuvollziehen, was er bewirkt. Tragen Sie diesen Code für das erste Kontrollkästchen ein (vergessen Sie nicht, die Verzeichnisangabe des Icons entsprechend ihrem Computer anzupassen). Dieser Code kann kopiert und bei den anderen vier Kontrollkästchen eingefügt werden, dabei müssen lediglich die Nummerierung bei den Bezeichnungen Check2.Value und Picture2 (sowie der Name des betreffenden Icons) entsprechend geändert werden.

      Private Sub Check1_Click ()
        If Check1.Value = Checked Then
          Picture1 = LoadPicture("C:\Programme\vb4\icons\flags\Flgbrazl.ico")
        Else
          Picture1 = LoadPicture()
        End If
      End Sub
    

    Sollten Sie Ihr Programm so gestaltet haben, daß die Icons direkt im Eigenschaften-Fenster geladen worden sind, dann werden sie beim Programmstart alle angezeigt, obwohl die Kontrollkästchen nicht angewählt sind. Um dies zu korrigieren und um sicherzustellen, daß alle Bildfelder beim Programmstart leer sind, gehen Sie in das Code-Fenster der Load-Methode von Form1. Dies geschieht zur Entwurfszeit durch ein Doppelclick auf die Form. Aus dem Code, der für die Click-Eigenschaft der Kontrollkästchen geschrieben wurde, sollten Sie den für hier notwendigen Code ausarbeiten können.

    Versuchen Sie schließlich, den Bildfeldern während der Laufzeit eine Hintergrundfarbe zu geben. Schauen Sie in der Online-Hilfe von VB unter der Funktion QBColor (die einfachste Farb-Funktion) nach, um zu sehen, wie man Farben setzt. QBColor übernimmt einen einfachen Paramenter zwischen 0 (schwarz) und 15 (weiß). Im nachfolgenden Beispiel wurde dem obigen Code ein Hintergrundfarben-Befehl hinzugefügt, vor dem Anzeigen des Icons. Ein zweiter Eintrag ändert die Hintergrundfarbe vor dem Laden des Leerbildes zu Weiß (d.h. Entfernen des Bildes aus dem Bildfeld).

      Private Sub Check1_Click ()
        If Check1.Value = Checked Then
          Picture1.BackColor = QBColor(10)
          Picture1 = LoadPicture("C:\Programme\vb4\icons\flags\Flgbrazl.ico")
        Else
          Picture1.BackColour = QBColor(15)
          Picture1 = LoadPicture()
        End If
      End Sub
    
  4. Zweite Befehlsschaltfläche

    Fügen Sie eine zweite Schaltfläche hinzu (wie unten gezeigt). Die Funktion dieser Rücksetzen-Schaltfläche soll sein, daß der Eigenschaftswert aller Kontrollkästchen auf 0 gesetzt wird. Der Code hierfür besteht aus lediglich fünf Zeilen, deren erste Check1.Checked = False ist. Fügen Sie den Code ein und starten Sie die Anwendung erneut. Sind Sie überrascht, daß das Clicken auf die Rücksetzen-Schaltfläche auch die angezeigten Bilder in den Bildfeldern löscht? Wie geschieht das, und was sagt es Ihnen über die Arbeitsweise von Visual Basic?




Übung 1 (Erforschen der Visual Basic-Umgebung)
Hauptseite
Übung 3 (Listen- und Kombinationsfelder)