[SOUNDLIGHT] VISUAL BASIC CRASHKURS I
Projekt 1: Ein einfaches 6-Kanal Lichtregiepult

Sie haben Visual Basic 3.0 auf Ihrem Rechner installiert? Prima. Dann können wir loslegen:

Wenn Sie bereits mit Visual Basic gearbeitet haben, dann können Sie die einleitenden Absätze überspringen und direkt das Projekt laden. Falls nicht, dann möchten wir Ihnen hier die ersten Schritte etwas erleichtern.

Anders als andere Programme besteht Visual Basic nicht aus einem einheitlichen Arbeitsbildschirm, sondern bietet nur eine Befehlsleiste am oberen Bildschirmrand und macht je nach Bedarf verschiedene Fenster auf dem Bildschirm auf. Damit darunterliegende, andere Programme die Optik nicht stören, verkleinern Sie am besten alle Programme (auch den Programm-Manager) auf Symbolgröße.

Hier der VB-Bildschirm:

[Delphi]

Gehen Sie auf DATEI und dann auf Projekt laden und laden Sie aus dem Verzeichnis C:\VB\SLH\PROJ1 das Projekt DESK6D.
Sie erhalten dann den oben dargestellten Arbeitsbildschirm und im Projektfenster werden zwei Dateien eingetragen, nämlich

Das Modul DEMOS.BAS wird Sie durch den Kurs begleiten, es wird gelegentlich erweitert aber kann für alle Beispiele Verwendung finden. Das .FRM Modul ist jeweils projektspezifisch und hat einen eigenen Namen. Es macht also nichts, wenn Sie alle Projektdateien in einem gemeinsamen Verzeichnis ablegen.

Mrkieren Sie nun DESK6D.FRM und klicken Sie FORM ANZEIGEN. Nun erscheint der Konstruktionsbildschirm:

[Delphi]

Das ist unser Projekt: ein vollständiges Lichtregiepult mit Fadern, Master, Flashtasten und Anzeige. Zum Einstieg vielleicht eine Menge, aber, wie Sie sehen werden, so wild nun auch wieder nicht. Wir verlangen von Ihnen einige grundlegende BASIC-Kenntnisse, den Rest können Sie hier abgucken.

Wie Visual BASIC funktioniert

Als Neuling in Visual Basic müssen Sie sich etwas umstellen - was schnell geschieht. Wer Standard BASIC gelernt hat (BASIC, BASICA, GW-BASIC, QuickBASIC etc), der hat verinnerlicht, daß der Programmablauf bei einer Marke namens ANFANG beginnt und bei einer ENDE-Marke endet. Dazwischen muß man durch Entscheidungen, Schleifen und Verzweigungen dafür sorgen, daß das Programm das macht, was man will. Will man also ein bestimmtes Ereignis aufgrund einer gedrückten Taste ausführen, dann muß man die Tastatur abfragen, und, falls die richtige Taste gedrückt wurde, den gewünschten Programmcode ausführen. Durch die laufende Tastaturabfrage (Polling) wurde der Programmfluß behindert; denn sollte, während die Tastatur abgefragt wurde, noch etwas anderes (z.B. eine Bildschirmausgabe) erfolgen, mußte dies auch in die Tastaturabfrageschleife mit eingebaut werden. Wenn man einen Programmablaufplan zeichnet, kann man -wie in einem Labyrinth- mit dem Finger von ANFANG bis ENDE gelangen und so den vollständigen Programmablauf nachvollziehen.

Durch Windows ändert sich das: zwar hat das Programm immer noch einen definiten Anfang, der ist nämlich dadurch gegeben, daß man zunächst einmal die erstellte Form laden muß, um mit dieser arbeiten zu können. Der erste Aufruf ist also stets das FORM_LOAD-Ereignis. Doch danach verliert sich der "rote Faden"; mit einem END SUB (Ende der Subroutine) Kommando endet die Prozedur und was das Programm dann macht, weiß man nicht.

Das heißt, WIR wissen es nicht. Windows weiß es sehr wohl. Es beschäftigt sich nämlich ständig damit,

und vieles mehr. Es kümmert sich im Hintergrund um alle Ereignisse und erfaßt diese selbstständig. Wir müssen also keine Tastatur abfragen, das macht Windows für uns. Ständig. Und benachrichtigt uns durch das Abarbeiten einer für dieses Ereignis hinterlegten Routine, wenn dieses Ereignis aufgetreten ist. Wir müssen uns also lediglich um die Auswertung kümmern. Und wenn ein Ereignis unser Programm beenden soll, dann tragen wir hier einfach ein END Kommando ein. Dann ist das Ende des "roten Fadens" markiert und das Programm fertig. Schwierig? Nein.

Wenn wir einen Fader erstellen wollen, dann nehmen Sie einen Fader aus der Werkzeugleiste, indem Sie das Symbol [Delphi] anklicken und dann das Symbol mit der Maus auf dem Konstruktionsbildschirm (Taste gedrückt halten) so groß aufziehen, wie Sie es wünschen.

[Delphi]

Nehmen wir an, wir wollten einen zweiten Masterfader einrichten - dann müssen wir dies Element einrichten, indem wir ihm einen passenden Namen geben und seine sonstigen Eigenschaften festlegen. Jedes Element hat Eigenschaften, die im Eigenschaften-Fenster eingetragen werden, das Sie erhalten, wenn Sie das Element markiert lassen und dann F4 drücken:

[Delphi]

Für unseren Fader legen wir folgende Eigenschaften fest (ändern!):

Wenn Sie sich auf diese Weise einmal alle anderen Objekte auf dem Konstruktionsbildschirm ansehen, werden Sie erkennen, daß verschiedenen Objekten verschiedene Eigenschaften zugeordnet sind. Die Visual Basic Hilfe gibt Ihnen zu jeder Eigenschaft umfangreiche Hilfsseiten, wenn Sie die gewünschte Eigenschaft anklicken und dann F1 drücken.

Programmcode erstellen

Bei einem Ereignis benachrichtigt uns Windows, indem es den zugehörigen Programmcode abarbeitet. Nun, das Bewegen eines Faders ist ein Ereignis und dafür sollten wir etwas schreiben. Das zugehörige Ereignis heißt Masterfader_Change und wir erhalten ein Code-Fenster, wenn wir zweimal auf den Fader klicken:

[Delphi]

In dieses Fenster tragen Sie den BASIC-Code ein, der bei Bewegung des Faders abgearbeitet werden soll. Jedes Element auf dem Entwurfsbildschirm hat eine solche Zuordnung - doppelklicken Sie einfach mal einen Fader oder eine Flashtaste und betrachten Sie sich den Code. Überlegen Sie, was der Eintrag bewirkt - wir haben alle Statements weitestgehend mit Kommentaren (grün) versehen.
Hier der Code aus dem aktuellen DESK6D Projekt, bei dem der Masterfader einfach MASTER heißt:

Sub Master_Change ()   
    'Der Masterfader wird bereits in der Werteberechnung
    'berücksichtigt, die bei den Kanalfadern ausgeführt wird.
    'Daher: einfach alle Kanalfader aufrufen!
    For i = 0 To 5
        Call Fader_Change(i)
    Next i
End Sub

Das Ereignis Master_Change verweist also einfach auf das Ereignis Fader_Change, das hier 6x aufgerufen wird (für alle 6 vorhandenen Fader, Fader(0) bis Fader(5)). Wie Sie sehen, kann man nicht nur Variablen, sondern auch die Objekte auf dem Entwurfsbildschirm indizieren. Für alle Fader muß man daher den Code nur einmal schreiben, und wenn Sie beispielsweise einen Eingangsfader anklicken und ihn duplizieren (mit STRG-C kopieren und mit STRG-V einfügen), dann hat auch diese Kopie gleich den richtigen Code!

Auch das Anklicken eines Menüs ist ein Ereignis. Doppelklicken Sie auf dem Entwurfsbildschirm einen Menü-Eintrag, erhalten Sie ebenfalls ein Code-Fenster, in das der Code geschrieben wird, der bei Anklicken des Menüs zur Laufzeit des Programmes ausgeführt werden soll.

[Delphi]

Die Belegung der Menüleiste wird an anderer Stelle definiert. Wenn Sie zusätzliche Menüeinträge erstellen oder bestehende ändern wollen, klicken Sie auf das Icon [Delphi]. Es öffnet sich dann das Fenster "Menüentwurf".

[Delphi]

Sie können den Inhalt der Menüeinträge ändern (CAPTION), verändern Sie jedoch bitte zunäöchst nicht die Einträge für die Namen (NAME). Schließen Sie den Menü-Editor wieder und doppelklicken Sie auf den Menüeintrag, dann öffnet sich auch hier ein Code-Fenster, in das Programmcode eingetragen werden kann.
Das zeigen wir am Beispiel des Menüs DMXSTART.

[Delphi]

Wie Sie sehen, können Sie einzelne Einträge aktivieren oder deaktivieren, sichtbar machen oder unsichtbar machen, je nachdem, wie Ihr Programm das erfordert. Dazu können Sie die Eigenschaften ENABLED ( = bedienbar ), CHECKED ( = markiert ) oder VISIBLE ( = sichtbar ) benutzen, und diese mit den logischen Werten TRUE oder FALSE belegen. Hier hilft: einfach mal ausprobieren, es kann ja nichts kaputtgehen.

Das Modul DEMOS.BAS

Machen wir uns zuletzt noch mit dem Modul DEMOS.BAS vertraut. Klicken Sie alle Fenster -bis auf das Projektfenster- zu und doppelklicken Sie im Projektfenster auf DEMOS.BAS. Es öffnet sich auch hier ein Codefenster, das jedoch keinen Programmcode aufnehmen soll, sondern alle Definitionen und Deklarationen enthälkt, die für das gesamte Projekt benötigt werden. Das sind

[Delphi]

Bitte drucken Sie sich die Datei aus, um zunächst einmal alle Variablen griffbereit zu haben.


Das Programm starten

Laden Sie vorsichtshalber das Projekt noch einmal neu -nur für den Fall, daß Sie unerwünschte Änderungen gemacht haben- und starten Sie das Projekt dann entweder durch den Button [Delphi] oder durch F5. Visual Basic startet DESK6.

[Delphi]

Falls Sie keine Karte installiert haben, erhalten Sie diese Meldung; falls eine Karte in Ihrem Rechner installiert ist, gelangen Sie direkt auf den Hauptbildschirm. Benutzen Sie alle Fader und Tasten und überprüfen Sie deren Wirkungsweise. Sie können das Projekt durch [Delphi] wieder stoppen und, fallsa die gewünscht wird, nun Modifikationen im Programm vornehmen. Starten Sie erneut um deren Auswirkungen zu prüfen. Wenn Ihnen gefällt, was Sie erstellt haben, speichern Sie es mit Projekt speichern wieder ab.


Projekt-Quellcode laden

Erstellen Sie auf Ihrer Festplatte im Visual Basic Ordner ein Verzeichnis namens C:\VB\SLH. Laden Sie die Datei PROJ1.EXE in dies Verzeichnis und starten Sie sie dort. Es entpacken sich dann unter anderem folgende Dateien:
  1. DESK6D.MAK
  2. DESK6D.FRM
  3. DESK6D.FRX
  4. DEMOS.BAS
  5. SLHDMX2.DLL
  6. SLHDMX12.BIN
  7. SLHDMX16.BIN
[OPEN] Projekt-Sourcecode downloaden


Wir hoffen, Sie hatten Spaß bis hierher. Viel Vergnügen beim Experimentieren. Kommentare und eigene Beiträge nehmen wir gern entgegen, mailen Sie einfach an





zurück zur [HOME]SOUNDLIGHT HOMEPAGE