![]() |
VISUAL BASIC CRASHKURS IV |
Sie haben Visual Basic 3.0 auf Ihrem Rechner installiert? Die bisherigen Teile, Kursprojekt 1, Kursprojekt 2 und Kursprojekt 3 installiert und abgearbeitet? Prima. Dann können wir loslegen:
Gehen Sie auf DATEI und dann auf Projekt laden und laden Sie aus dem Verzeichnis C:\VB\SLH das Projekt FILE6_D.
Sie erhalten dann den oben dargestellten Arbeitsbildschirm und im Projektfenster werden zwei Dateien eingetragen, nämlich
Die Ausgabe für einen bestimmten Kanal besteht:
- aus dem Einzelkanalfaderwert
- aus dem Wert jedes Memories, das diesen Kanal enthält,
- der Memorywert muß mit dem Wert des jeweiligen Memoryfaders skaliert werden
- alles muß mit dem Masterfader skaliert werden.
Alles das muß in eine Formel gepackt werden. "Kein Problem", werden Sie sagen, und da haben Sie recht.
Hier ist der Code für den Kanalfader:
Sub Fader_Change (Index As Integer) Dim Zwischenwert1, Zwischenwert2 As Integer Dim n As Integer 'lokal verwendet 'Dies ist die Hauptroutine des ganzen Programmes. Hier wird 'aus der Faderstellung der Ausgabewert berechnet, der dann 'von der Timerroutine AutoXMit an die PC-Karte übergeben wird. 'Alle Berechnungen beziehen sich auf einen Wertebereich von '0% bis 100%, daher sind auch alle Schieberegler mit den ent- 'sprechenden Endwerten 0 (Fader.Max) bzw. 100 (Fader.Min) Zwischenwert1 = 0 For n = 0 To 5 Zwischenwert2 = MemFader(n).Value * Memory(n, Index) / 100 If Zwischenwert2 > Zwischenwert1 Then Zwischenwert1 = Zwischenwert2 Next n If Fader(Index).Value > Zwischenwert1 Then Zwischenwert1 = Fader(Index).Value DMXAusgabe(Index) = Int(Zwischenwert1 * Master.Value / 100) 'und das war's auch schon! Damit wir was für's Auge haben, 'schreiben wir den aktuellen Faderwert in ein Ausgabefenster 'und ersetzen für die Theaterleute die "100%" durch das 'gewohnte "FF". Na denn. If DMXAusgabe(Index) < 100 Then AUSGABE(Index).Text = Str$(DMXAusgabe(Index)) + "%" Else AUSGABE(Index).Text = "FF" End If End Sub
Damit die Fader ein HTP-Verhalten bekommen (Highest Takes Precedence), sind mehrere Entscheidungen nötig, um den höchsten Wert zu ermitteln. Aus Übersichtlichkeitsgründen sind diese Entscheidungen jeweils separat aufgeschrieben und zwei Variablen Zwischenwert1 und Zwischenwert2 stehen zur Verfügung, um Zwischenrechnungs-Ergebnisse aufzunehmen. Bitte beachten Sie, daß wir diese Variablen nur in dieser Routine, also lokal, benutzen wollen. Visual Basic gibt dazu die Möglichkeit, eine Variable lokal zu deklarieren, was durch die DIM-Anweisung erfolgt. Von dieser Methode haben wir innerhalb dieses Projektes verschiedentlich Gebrauch gemacht. Wenn Sie eine Variable nur in einer lokalen Sub oder Funktion benötigen, deklarieren Sie sie lokal. Das kostet Windows vielleicht einen Hauch mehr Zeit, verhindert aber, daß Sie damit unbeabsichtigt den Wert einer Variable verändern, die in einer anderen Routine auch benötigt wird. Zählvariablen sind beste Beispiele dafür.
Um eine Stimmung abzuspeichern, soll man zunächst die Taste STORE und dann eine der Flashtasten drücken, wobei die Flashtaste ein Indikator für die Memorynummer ist (die können wir über die Varaible INDEX dann ja auslesen). Damit ist aber die Funktion der Flashtasten, nachdem man STORE gedrückt hat, eine andere, als wenn man die Flashtasten "so" drückt. Dazu wird ein FLAG eingeführt, das beim Drücken der STORE-Taste gesetzt und beim Loslassen einer FLASH-Taste wieder zurückgesetzt wird. Dieses FLAG heisst STOFLG und muß natürlich global, d.h. in allen Routinen, verfügbar sein, weswegen es in der DEMOS.BAS deklariert werden muß (siehe oben).
In Abhängigkeit von diesem Flag wird nun jeweils der Code der Flash-Tasten abgearbeitet. Zum Speichern benutzen wir das FLASH_CLICK Ereignis; bitte beachten Sie, daß bei Betätigung der Flash-Taste nun drei Ereignisse aktiviert werden: Click, MouseDown und MouseUp.
Stimmungen-Datei für SoftDesk 12 (C) SLH 1995 [MEMORY] 0, 10, 20, 30, 40, 50, 0, 0, 0, 0, 0, 0 0, 20, 30, 40, 50, 60, 0, 0, 0, 0, 0, 0 0, 20, 40, 60, 80, 100, 0, 0, 0, 0, 0, 0 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
Um Dateioperationen durchführen zu können, bietet uns Visual Basic wiederum ein fertiges Tool an. Es heißt CMDIALOG.VBX (Visual Basic Extension) und muß als Datei zusätzlich in Ihr Projekt eingebunden werden. Die Datei CMDIALOG.VBX sollte sich dabei in Ihrem \WINDOWS\SYSTEM Verzeichnis befinden. Wenn Sie VB korrekt installiert haben, verfügen Sie bereits über diese Datei, ansonsten übertragen Sie die beigefügte Datei in Ihren System-Ordner. Sie müssen diese Datei mit Ihrer VB-Applikation mitliefern, damit diese lauffähig ist.
Klicken Sie im Datei-Menü Datei hinzufügen und wählen Sie CMDIALOG.VBX, wenn diese noch nicht in Ihrem Projektfenster (rechts) eingetragen ist.
Ihre Werkzeugleiste wird nun um das Tool erweitert. Klicken Sie es an und plazieren Sie es irgendwo auf dem Entwurfsbildschirm- es ist zur Laufzeit nicht sichtbar! Mit dem Common-Dialog Control können Sie laden, speichern, drucken, Farben zuordnen u.a.m. Bitte bemühen Sie den VB-Hilfstext, um alle Informationen über dieses Control zu erhalten.
Wir haben das Datei-Menü unseres Projektes um zwei Einträge erweitert:
Klicken Sie im Entwurfsbildschirm, um die zugehörigen Codefenster zu öffnen. Der Code ist recht straight, bedarf keiner umfangreichen Erläuterung. Experimentieren Sie ruhig etwas, um zu sehen, wie sich Änderungen auswirken.