| 8 | |||||||||||||||

Erstellen von Anwendungen, die aus mehr als einer Form bestehen.
Hinzufügen von Formen in zuvor erstellte Anwendungen.
Erstellen eines einfachen Codes, um den Benutzer zur Laufzeit zwischen mehreren Formen sich hin- und herbewegen zu lassen.
Wenn VB gestartet wird, erscheint eine leere Form mit Namen Form1. Mit Ausnahme der einfachsten Programme beinhalten Anwendungen üblicherweise mehrere Formen. Zum Beispiel ist es verbreitet, eine Begrüßungs-Form zu haben, die eine Reihe Einstellungen oder Auswahlmöglichkeiten anbietet. Für jede dieser Auswahlmöglichkeiten gibt es dann eine eigene Form. Die Formenstrukturierung einer Anwendung kann oftmals am besten mit einem Diagramm verstanden werden, das die Hierarchie aufzeigt. Man stelle sich ein computerorientiertes Lernprogramm vor, das eine Reihe einzelner Module beinhaltet, jedem dieser Module ist eine eigene Nummer zugeordnet.
frmX.Hide frmY.Show
Anmerkung: Der Name der zu zeigenden oder auszublendenden Form ist der von VB benutzte 'interne' Name. Dies ist jener Name, der in der rechten Spalte des Projekt-Fensters aufscheint, es ist der gleiche Name wie der, der im Eigenschaften-Fenster als Name-Eigenschaft der betreffenden Form eingetragen ist. Verwechseln Sie diesen Namen nicht mit jenem, die die Form beim Speichern auf Datenträger erhält. Letzterer bekommt die Endung .frm zugewiesen.
Anmerkung: Jede Form, die in Visual Basic angezeigt wird, wird zuerst in den Arbeitsspeicher geladen, und selbst wenn sie ausgeblendet ist, verbleibt sie im Arbeitsspeicher. Dies stellt für zwei oder drei Formen kein Problem dar, es kann aber bei einer größeren Anzahl zu Speicherknappheit kommen. Sollte dies eintreten, besteht die Lösung im Entladen einiger der nicht mehr benötigten Formen. Verwenden Sie den Unload-Befehl dafür:
Unload frmX
Umgekehrt wird der Load-Befehl verwendet, um eine Form in den Arbeitsspeicher zu laden, aber ohne sie anzuzeigen (einzublenden). Es sollte daher beachtet werden, daß der Befehl Show automatisch eine Form lädt, wenn sie noch nicht geladen ist, und der Befehl Unload automatisch eine Form ausblendet, befor sie entladen wird.
![]() |
frmX.Hide Unload frmX Dieser Code wird problemlos funktionieren, die erste Zeile aber ist überflüssig, da VB automatisch jede sichtbare Form ausblendet, bevor diese aus dem Arbeitsspeicher entladen wird. |
![]() |
Unload frmX frmX.Hide Die Form frmX wird in der ersten Programmzeile automatisch ausgeblendet und danach entladen, und dann in der zweiten Zeile möchte das Programm die Form ausblenden. Da die Form sich nicht mehr im Arbeitsspeicher befindet, wird VB diese automatisch wieder geladen. Die Anweisung in der ersten Zeile ist somit kontraproduktiv. |
![]() |
Unload frmX |
![]() |
Load frmY frmY.Show Dieser Code wird problemlos funktionieren, aber die erste Zeile ist überflüssig, da VB ein Laden automatisch durchführt wenn die anzuzeigende Form sich noch nicht im Arbeitsspeicher befindet. Die einzige Situation, wo Load verwendet werden sollte, ist wenn die Form in den Arbeitsspeicher geladen werden soll, danach irgendwelche andere Dinge ausgeführt werden sollen, und danach die Form erst angezeigt werden soll. |
![]() |
frmY.Show |
Um mit der Mehrfach-Form-Anwendung schnell vertraut zu werden, erstellen Sie ein Lehrprogramm, welches mehrere der behandelten Übungen einbindet.
Starten Sie ein neues Projekt. Die erste Form sollte eine Willkommens-Form sein (namens frmWillkommen), benutzen Sie graphische Gestaltungsmöglichkeiten, um sie attraktiv aussehen zu lassen. Setzen Sie auf diese Form drei 3D-Schaltflächen mit entsprechenden Bildern darauf (verwenden sie die 3D-Schaltfläche
), um drei der Anwendungen anzusprechen, die Sie verwenden möchten (vielleicht den Sprach-Tutor, das Restaurant-Programm und das Animations-Programm). Fügen Sie eine Schaltfläche für das Beenden des Programmes hinzu.
Laden Sie die drei Formen mit dem Datei hinzufügen...-Befehl in Ihr Projekt. Die Formen müssen eindeutige Namen erhalten, bevor sie dazugeladen werden können - hoffentlich haben sie aussagekräftige Namen erhalten und heißen nicht alle Form1!
Schreiben Sie den Code für die Schaltflächen der Willkommens-Form, die diese Form ausblenden und die richtige nächste Form einblenden sollen.
Sollten die weiteren Formen Schaltflächen für das Beenden besitzen, ändern sie deren Bezeichnung und deren Code, sodaß sie zur Willkommens-Form zurückleiten. Sollten solche Schaltflächen noch nicht vorhanden sein, fügen Sie sie hinzu.
Wenn globale Variablen verwendet worden sind, müssen diese in ein neues Module1.bas übertragen werden, dabei müssen doppelte Variablennamen aufgelöst werden.
Überlegen Sie sich, wie sie eine automatische Rückkehr zur Willkommens-Form einrichten können, wenn nach einer gewissen Zeit (z.B. 45 Sekunden) keine Benutzer-Interaktion erfolgt. Tip: Sie benötigen hierfür das Timer-Steuerelement
, die MouseMove-Methode und eine globale Variable, die als 'Uhr' arbeitet. Schauen Sie in der Online-Hilfe von VB nach, um herauszufinden, wie der Timer arbeitet.
Sehen Sie auch unter: Übung 12: Multiple Document Interface (MDI)
Übung 7 (Animation und Graphik)
Hauptseite
Übung 9 (Verwenden des Tabellen-Steuerelements)