VDS-Tutorial Nr.1

 
Dies ist ein Tutorial für all jene, die noch nie etwas mit Visual Dialogscript zu tun hatten. Es soll euch oder dir den Einstieg in die VDS Programmierung erleichtern. Um das hier gezeigte in die Tat umsetzen zu können, sollte Visual Dialogscript bereits installiert sein. Finden kann man VDS direkt beim Hersteller und auf meiner Homepage in der Download Sektion

Wir fangen mit etwas einfachem an. Das allseits beliebte Hallo Welt! Das findet man fast überall und es ist ziemlich bekannt. Nichts ist unter VDS einfacher als die Ausgabe Hallo Welt! Wie schon auf der Ersten Seite beschrieben reicht hier für eine Zeile.

info Hallo Welt!

Diese Zeile erzeugt eine Dialogbox wie sie das Bild zeigt. Der Befehl Info erzeugt den Dialog, der Text dahinter ist der anzuzeigende Text. Enthält der anzuzeigende Text, Satz- oder Sonder-Zeichen muß man ihn in Anführungzeichen einschließen. Um den Text in mehrere Zeilen aufzuteilen benutzt man die Funktion @cr(). Diese erzeugt ein Return oder Zeilenumbruch

info "Hallo Du," @cr() "mir geht´s gut!"

Weitere Möglichkeiten Text auszugeben sind der Befehl WARN und die Funktionen @ASK, @QUERY und @MSGBOX. Der Befehl WARN funktioniert genauso wie der Befehl INFO, allerdings wird zusätzlich zum Text ein Icon mit einem Ausrufezeichen angezeigt. Die drei Funktionen können zusätzlich Rückfragen an den Benutzer stellen. Die Funktion @ASK() erzeugt eine Dialogbox mit einem definierten Text und den Knöpfen JA/NEIN. Eine Typische Nutzung wäre zum Beispiel :

%A = @ask("Wollen sie weiter machen?")

Die Variabel %A enthält je nach Antwort des Benutzers den Wert "1" für ja, oder den Wert "0" für nein. Variabeln sind Platzhalter die beliebige Daten aufnehmen können. Eine weitere typische Anwendung wäre das folgende Beispiel.

if @ask("Wollen sie abbrechen?")
warn "es wird abgebrochen..."
else
info "Wir arbeiten weiter..."
end


Das Beispiel ruft einen Dialog auf, der die Frage stellt "Wollen sie abbrechen?", und darunter die Buttons "Ja" und "Nein" anzeigt. Drückt man auf ja, wird der Text "es wird abgebrochen..." angezeigt. Klickt man auf nein, wird der Text "Wir arbeiten weiter..." angezeigt

Als alter C64-Bastler kenne ich noch den Befehl if... then...! Genau das beschreibt ziemlich das was der Befehl IF tut. Übersetzt heißt das soviel wie, wenn... dann.... Also wenn die definierte Bedingung eintrifft, dann führe definierte Handlung aus. Heute trifft man den then Befehl nur noch selten, und er kommt auch nicht mehr in VDS vor, aber die Funktionsweise ist immer noch die selbe. Der Befehl ELSE führt eine definierte Handlung durch falls die If Abfrage nicht zutrifft. Der Befehl END muß zum Beenden der If Abfrage verwendet werden.
Die Funktion @QUERY macht eigentlich genau das selbe wie @ASK(), allerdings erzeugt @QUERY() einen Dialog mit den Schaltflächen OK und ABBRECHEN. Mit der Funktion @MSGBOX() kann man Dialogbox mit beliebigen Aussehen und Schaltflächen kreieren. Eine genaue Erkärung würde hier den Rahmen Sprengen.

Eine weitere Möglichkeit Eingaben von User entgegen zunehmen ist die Funktion @INPUT(). Sie erzeugt eine Dialogbox mit definiertem Text und einer Eingabezeile in die der Benutzer beliebiges eintippen kann.

%A = @input("Hallo, wie ist dein Name?")
info "Dein Name ist also "%A


Die Syntax sieht erst den Anzuzeigenden Text vor. Falls gewünscht kann man danach durch ein Komma getrennt einen Default-Text für die Eingabezeile festlegen. Ein weiteres Komma erlaubt es den Parameter PASSWORD zu benutzen. Dieser sorgt dafür, daß der eingegebene Text durch Sternchen ersetzt wird.

%A = @inpu("Bitte geben Sie das Passwort ein",,Password)
if @equal(%A,meinpasswort)
info "Das Passwort ist richtig"
else
warn "Das Passwort ist falsch!"
end


Das Beispiel öffnet einen Dialog der dazu auffordert ein Passwort einzugeben. Die Funktion @equal() vergleicht die Benutzereingabe(%A) mit dem definierten Passwort(meinpasswort). Falls die Benutzereingabe mit dem Passwort identisch ist, wird der Text "Das Passwort ist richtig" ausgegeben. Anderfalls erfolgt die Warnung "Das Passwort ist Falsch!".

 

Mun wollen wir das frisch erworbene Wissen in die Tat umsetzen und unser erstes richtiges Programm schreiben. Die Idee entstand, als ich wieder mal meinen Bruder Solitär zockend vor meinem Computer fand. Mein erster versuch ihn davon abzuhalten, ich hatte einfach die Verknüpfung aus dem Startmenü gelöscht, schlug völlig fehl. Widererwartend fand ich ihn schon einige tage später wieder Solitär spielend vor meinem PC. Als ich ihn verblüfft fragte wie er das gemacht hätte, sagte er, er hätte einfach unter AUSFÜHREN sol eingetippt. Arrrgghh..., verdammt wer hat ihn das verraten, oder bekommt er, wenn er hier rumsitz und mir die Bude voll qualmt, doch mehr mit als ich denke? Hmmm..., das einfachste wäre jetzt gewesen die sol.exe einfache in scheisse.exe umzubenennen, aber das war dann doch zu einfach. Mein Bruder hatte sich so viel Mühe gegeben, daß sollte belohnt werden.

Zuerst erzeugte ich wieder eine Verknüpfung an angestammter Stelle im Startmenü. Danach benannte ich die Datei sol.exe in geheim.dat um. Zum Schluß tippte ich folgendes Script und speicherte das kompilierte Produkt als sol.exe

title Solitär
repeat
%A = @input("Hi Keule! Spielen nur noch mit Passwort",,Password)
if @equal(%A,bittebitte)
file rename,geheim.dat,geheim.exe
run geheim.exe,wait
file rename,geheim.exe,geheim.dat
else
%B = @succ(%B)
warn "Das war das "%B". falsche Passwort!"
end
until @equal(%A,bittebitte)
exit
 
Zur Erklärung:
 
Zeile 1
Der Befehl TITLE definiert den Text der in Titel- und Task- Leiste angezeigt wird.
Zeile 2
Der Befehl REPEAT leitet eine Schleife ein, die erst durch den Befehl UNTIL beendet wird, wenn die Bedingungn @equal(%A,bittebitte) erfüllt ist. Übersetzt würde das soviel heißen wie... wiederhole definierte Befehle und Funktionen... bis definierte Bedingung erfüllt ist.
Zeile 3
Die @INPUT() Funktion fordert zur Eingabe des Passwortes auf. Die Benutzereingabe wird in der Variabel %A gespeichert.
Zeile 4
Hier wird die Eingabe mit dem Passwort verglichen. Sind Eingabe und Passwort identisch wird die nächste Zeile ausgeführt, anderfalls springt das Script zur Zeile 8.
Zeile 5
Der Befehl FILE RENAME benennt die Datei geheim.dat in geheim.exe um.
Zeile 6
Der Befehl RUN startet belibige Anwendungen. Der Parameter WAIT hält das Script solange an, bis die gestartete Anwendung wieder beendet wird. Erst danach wird das Script weiter ausgeführt.
Zeile 7
Nachdem das eigentlich Solitär wieder beendet wurde, wird die Datei geheim.exe wieder in geheim.dat umbenannt.
Zeile 8
Der ELSE Teil wird nur ausgeführt wenn ein falsches Passwort eingegeben wurde. Anderfalls springt das Script zur Zeile 11.
Zeile 9
Hier wird die Variabel %B definiert und gleich um eins erhöht. Normalerweise wäre der Inhalt einer neuen Variabel "0". Durch die Funktion @SUCC() wird dieser Wert und eins erhöht. Aus 0 wird also 1, aus 1 wird 2, aus 2 wird 3, und so weiter. Der Fachmann spricht hier von inkrementieren
Zeile 10
Diese Zeile zeigt eine Warnung, die aussagt, daß das Passwort falsch ist. Die eingebundene Variabel %B zeigt zusätzlich die Anzahl der Fehlversuche an.
Zeile 11
Der Befehl END schließt die IF Abfrage ab.
Zeile 12
Wie oben schon erwähnt wird hier, vorrausgesetzt das richtige Passwort wurde eingegeben, die Repeat-Schleife beendet. Anderfalls springt das Script zurück zur Zeile 1 und die Schleife wird ein weiteres mal durchlaufen.
Zeile 13
Der Befehl EXIT beendet das Script.