Übung: Multiple Document Interface-Anwendungen


Das Ziel dieser Übung ist zu Lernen, wie man eine Multiple Document Interface-Anwendung erstellt. Am Ende dieser Übung sollte man folgendes beherrschen:


Multiple-Document Interface (MDI) erlaubt Programmierern, Anwendungen zu erstellen, die mehrere Dokumente gleichzeitig geöffnet haben können. Es gibt ein einzelnes übergeordnetes Fenster (Parent) und eine Anzahl untergeordneter Formen (Child). Auch wenn sich die untergeordneten Formen minimieren oder maximieren lassen, tun sie dies innerhalb ihrer zugehörigen übergeordneten Form. Word oder Excel sind Beispiele solcher MDI-Anwendungen.



Schritte für das Erstellen einer MDI-Anwendung

  1. Erstellen Sie eine übergeordnete MDI-Form, durch das Auswählen der Option ‘MDI Form’ im Menü ‘Extras’.

  2. Erstellen Sie eine neue Form, durch Clicken auf das -Symbol.

  3. Setzten Sie auf allen untergeordneten Formen die Eigenschaft MDIChild auf Wahr. Dieser Schritt ändert eine Standardform (SDI) zu einer untergeordneten MDI-Form.

  4. Wiederholen Sie die Schritte 2 und 3 bis genügend untergeordnete Formen erstellt worden sind. Alternativ dazu, erstellen sie nur eine übergeordnete und nur eine untergeordnete MDI-Form. Verwenden Sie dann die Zeile

    Dim FormName As New VorhandenerNameEinerUntergeordnetenForm
    wenn Sie eine neue untergeordnete Form erstellen wollen. Dies wird zur Laufzeit eine neue Instanz der untergeordneten Form erstellen.



Unterschiede bei der Verwendung von MDI

  1. Eine MDI-Form kann nicht modal sein.

  2. Wenn eine untergeordnete Form minimiert oder maximiert wird, tut sie das innerhalb der Begrenzungen der zugehörigen übergeordneten Form.

  3. Wenn eine untergeordnete Form maximiert wird, wird dessen Form-Titel (Caption) mit dem der übergeordneten Form kombiniert.

  4. Untergeordnete Formen können nicht versteckt werden. Um sich einer untergeordneten Form zu entledigen, muß diese entladen weden.

  5. Wenn die aktuell fokusierte untergeordnete Form eine Standardmenüleiste besitzt, ersetzt diese die Menüleiste der übergeordneten MDI-Form. Wenn eine untergeordnete MDI-Form keine eigene Menüleiste besitzt, jedoch aber die übergeordnete Form, dann wird die Menüleiste der übergeordneten Form angezeigt. Dieses Menüleistenaustausch-Verhalten kann in MS Word beobachtet werden: Sind alle untergeordneten Formen geschlossen, gibt es nur zwei Hauptmenüs: Datei und Hilfe. Sobald aber eine untergeordnete Form geöffnet wird, wechselt die Menüleiste, und enthält jetzt: Datei, Bearbeiten, Ansicht, Einfügen, Format, Extras, Tabelle, Fenster und Hilfe.



Aufgaben

  1. Erstellen Sie eine übergeordnete Form und setzen Sie ihre Eigenschaften (z.B. Caption).

  2. Erstellen Sie eine Standardmenüleiste für die übergeordnete Form mit der folgenden Struktur:

      Datei
      ...Neu
      ...-
      ...Beenden
    
  3. Erstellen Sie eine ‘normale’ Form und ändern Sie sie zu einer untergeordneten MDI-Form (setzten Sie dazu im Eigenschaften-Fenster dieser Form deren MDIChild-Eigemschaft auf Wahr).

  4. Erstellen Sie eine Standardmenüleiste in der untergeordneten Form mit folgender Struktur:

      Datei
      ...Neu
      ...Schließen
      ...-
      ...Beenden
      Fenster
      ...Überlappend
      ...Horizontal anordnen
      ...Vertikal anordnen
      ...Symbole anordnen
    
  5. Setzen Sie beliebige Steuerelemente auf die untergeordnete Form, beispielsweise Textfelder, Bildfelder oder Bildlaufleisten.

  6. Geben Sie im Menüeintrag ‘Neu’ den Programmcode ein, um eine neue untergeordnete Form zu erstellen.

    Beispiel:

    Private Sub mnu1Neu_Click ()
      Dim frmNeu As New Form1       ' Erstellt eine neue Instanz der untergeordneten Form1
      frmNeu.Show
      frmNeu.Caption = "Untergeordnete MDI-Form Nr. " & (Forms.Count - 1)
    
    End Sub
    

    Dieser Programmcode erstelle eine neue Instanz der Form mit Namen ‘Form1’. Die neu erstellte Form heißt ‘frmNeu’ und die nächste Programmzeile zeigt diese Form mit dem Show-Befehl an.

    Anmerkung: Da die untergeordnete Form die Menüleiste der übergeordneten Form mit ihrer eigenen Menüleiste ersetzt, benötigen Sie den oben angeführten Programmcode in den entsprechenden Menüeinträgen beider Formen.

  7. Geben Sie ‘Unload Me’ in die ‘Schließen’-Menüoption der untergeordneten Form ein. Das reservierte Wort ‘Me’ bezieht sich auf die aktuell fokusierte Form.

  8. Schreiben Sie den Code für die ‘Fenster’-Optionen, wie z.B.: überlappend, horizontale oder vertikale Anordnung, und Symbole anordnen. Der Code hierfür lautet:

      MDIForm1.Arrange 0             ' Überlappend
    
      MDIForm1.Arrange 1             ' Horizontale Anordnung
    
      MDIForm1.Arrange 2             ' Vertikale Anordnung
    
      MDIForm1.Arrange 3             ' Symbole anordnen
    
  9. Setzen sie das Kontrollhäkchen im Menü-Editor der untergeordneten Form für den Listeneintrag des Fenster-Menüs (siehe folgende Abbildung).


    Wenn diese Option gesetzt ist, wird VB am Ende dieses Menüs eine Liste aller geladenen untergeordneten Formen anhängen. Ein Click auf eine dieser Einträge fokusiert automatisch die betreffende Form und holt sie in den Vordergrund.





Eine Beispiel-Anwendung zu MDI-Formen (MDI.zip) können Sie im Download-Abschnitt der Hauptseite finden.


Übung 11 (Arbeiten mit Datenbanken)
Hauptseite
Übung 13 (Zusatz-Steuerelemente)