In unserem letzten Beispiel haben wir unser neues Unterprogramm einfach in unser Modul "HauptForm" geschrieben. Bei Unterprogrammen, die von verschiedenen Prozeduren/Modulen (Forms) genutzt werden sollen, also allgemeingültigeren Unterprogrammen, ist es jedoch sinnvoll, diese in ein separates Modul auszulagern. Das dient nicht zuletzt der Übersichtlichkeit.
Wir fügen unserem Projekt also ein neues Modul hinzu. Das geht entweder über's Hauptmenü
über das kleine DropDown-Menü in der Toolbar (zweite von links)
oder im Kontextmenü unseres Projekts im Projektfenster
Wir wählen im anschließenden Dialog jeweils "New/Neu" aus und geben dem Modul gleich einen passenden Namen (Eigenschaften/Properties), "Allgemein" (später speichern wir es auch unter diesem Namen ab). Jetzt können wir einfach per Cut&Paste unser Unterprogramm "Verzoegerung" aus "Hauptform" nach "Allgemein" verschieben.
Wenn wir unser Programm jetzt laufen lassen, hat sich am Ablauf nichts geändert, das Programm springt automatisch in das Modul "Allgemein" und macht anschließend an der alten Stelle in der aufrufenden Prozedur weiter.
Wenn wir schon am Aufräumen sind, wollen wir auch gleich noch unsere kleine Animation in ein eigenes Unterprogramm auslagern. Das hat den Vorteil, daß wir sie auch zu einem späteren Zeitpunkt als kleinen Pausenfüller aufrufen können.
Wir definieren also ein neues Unterprogramm "KugelSpring" und lagern die Animation dorthin aus. Da diese Animation in dieser Form nur in der Hauptform nutzbar und sinnvoll ist, plazieren wir unser Unterprogramm auch in diesem Modul. Unser Modul "Hauptform" sieht dann so aus:
Private Sub Form_Activate() KugelSpring CurrentX = 1000 'positioniert den nachfolgenden Printbefehl X-Achse CurrentY = 2000 'positioniert den nachfolgenden Printbefehl Y-Achse Print "Viel Spaß mit Mathe-Max!" 'druckt Text direkt auf die Form End Sub Sub KugelSpring() For k = 1 To 5 'äußere Schleife For i = 1 To 20 'erste innere Schleife, Kugel bewegt sich nach rechts unten Kugel.Move Kugel.Left + 3 * i, Kugel.Top + 20 * i / k Verzoegerung 0.005 Next For i = 1 To 20 'zweite innere Schleife, Kugel bewegt sich nach rechts oben Kugel.Move Kugel.Left + 3 * i, Kugel.Top - 20 * i / (k + 1) Verzoegerung 0.005 Next Next For i = 1 To 20 'abschließende separate Schleife, Kugel bewegt sich ein letztes Mal nach unten Kugel.Move Kugel.Left + i, Kugel.Top + 20 * i / k Verzoegerung 0.005 Next End Sub
© Copyright 1998-2000 J.Behling
Weitergabe und Druck (auch in Teilen, mit Ausnahme von Privatgebrauch) ohne ausdrückliche Genehmigung der Autorin untersagt.