Eine Einführung in die Makrosprache des Systems allegro

2    Benutzung und Eingabe von FLEX-Befehlen

Erfahrene allegro-Nutzer werden die Antworten schon wissen. Da diese Einführung aber auch - und nicht zuletzt - für die neuen und/oder unerfahrenen Anwender bestimmt ist, soll darauf zuerst eingegangen werden. 

Zunächst einmal zur Benutzung und Eingabe von FLEX-Befehlen. Nach dem Starten von allegro erkennt man neben dem Menü und einigen Schaltflächen auch Bereiche, die offenbar für die Arbeit mit allegro wichtig sind, die sogenannten Felder (siehe Abbildung 1). Wichtig für die ersten Schritte mit FLEX-Befehlen ist zunächst das Schreibfeld. Hier können dem allegro-System die FLEX-Befehle übergeben werden, die ausgeführt werden sollen. Dazu schreibt man zunächst ein 'x', um allegro mitzuteilen, daß statt einer Dateneingabe ein FLEX-Befehl folgt. Dem x und einem Leerzeichen folgen der oder die FLEX-Befehl(e) mit den eventuell dazugehörigen weiteren Angaben.

Für Grossdarstellung bitte anklicken

Abbildung 1: Felder von allegro

Geben Sie nun mal folgendes in das Schreibfeld ein (Sie können die Zeile mit Copy&Paste übernehmen):

x variable "Die Datenbank hat " t " Saetze" \message

In dieser kurzen Zeile sind bereits zwei FLEX-Befehle enthalten, die zum besseren Verständnis fett geschrieben sind. Die FLEX-Befehle werden voneinander durch das '\'-Zeichen getrennt, so erkennt das System den Beginn des nächsten Befehls.

Der erste Befehl ist:

variable "Die Datenbank hat " t " Saetze"

Der Befehl variable ist möglicherweise der wichtigste aller FLEX-Befehle. Mit diesem Befehl kann man beliebige Zeichenfolgen miteinander verbinden, anders gesagt, man 'baut' sich damit längere Zeichenfolgen zusammen. Die mit variable zusammengestellten Zeichenfolgen befinden sich nach der Ausführung des Befehls in der sogenannten 'internen Variablen' iV . Diese interne Variable steht dem System temporär zur Verfügung, bis sie durch eine neue Aktion überschrieben wird. Bis dahin kann sie durch andere FLEX-Befehle benutzt werden, wie später noch gezeigt werden soll. In diesem Zusammenhang sei auf eine weitere interne Variable hingewiesen: die 'interne Zahlenvariable' iZ. Die interne Zahlenvariable enthält Werte, mit denen Rechenoperationen ausgeführt werden können. Doch zurück zum obigen Beispiel, in dem variable die Zeichenfolgen "Die Datenbank hat " und " Saetze" miteinander verbindet. Zu recht werden Sie sich jetzt fragen, was der Buchstabe t zwischen den beiden Zeichenfolgen zu bedeuten hat und warum er nicht auch in Anführungszeichen gesetzt wurde. Die Antwort ist so simpel wie einleuchtend. Eingaben, die zwischen " " oder ' ' eingebettet sind, werden als reiner Text interpretiert und es wird nichts daran verändert, aber außerhalb der Anführungszeichen hat ein Buchstabe eine ganz andere Bedeutung, die dem Befehl variable bekannt ist. Dadurch kann dieser Befehl mehr als nur Texte zusammensetzen! So handelt es sich bei dem Buchstaben t, wenn er nicht innerhalb von Anführungszeichen steht, um eine interne Sondervariable (iS), die die Anzahl der Sätze in der Datenbank angibt. Genau diese Zahl soll uns der Befehl variable an der Stelle einsetzen, wo das t steht.

Somit haben wir also eine längere Zeichenfolge aus drei einzelnen Bestandteilen erzeugt:

1. Die Datenbank hat (als Text in " " eingebettet)
2. t (als numerischen Wert)
3. Saetze (als Text in " " eingebettet)

 

Diese wurden durch den eingegebenen Befehl 'variable' miteinander verknüpft, in der internen Variablen abgelegt und warten nun darauf, was mit ihnen geschehen soll.

Es erscheint sinnvoll, daß man sich den Inhalt der von uns erzeugten internen Variablen auf dem Bildschirm anzeigen läßt. Aus diesem Grund steht in der Kommandozeile hinter dem \ der zweite FLEX-Befehl:

            'message'

Der message-Befehl weist das allegro System an, den Inhalt der internen Variablen auf dem Bildschirm in einem kleinen Fenster anzuzeigen. Sie könnten den message-Befehl natürlich auch einzeln

durch

x message

ausführen lassen, doch ist es nicht einfacher die Befehle in einer Zeile zu schreiben?

Ersetzen Sie nun einmal die Befehle variable und message durch var und mes, so daß im Eingabefeld

x var "Die Datenbank hat " t " Saetze" \mes

steht.

Man sieht, das Resultat ist identisch! Bis auf eine Ausnahme (dem sehr gefährlichen erase-Befehl) können alle FLEX-Befehle beliebig abgekürzt werden, indem man nur mindestens die ersten drei Zeichen eingibt. Wer viel mit FLEX arbeitet, weiß das zu schätzen..


Merke:  FLEX-Befehlen wird im Eingabefeld ein x vorangestellt. Man kann FLEX-Befehle bis auf die ersten drei Zeichen abkürzen und diese kombinieren, indem man sie mit dem \ Zeichen miteinander verknüpft.

Kommen wir nun zu einem weiteren wichtigen FLEX-Befehl, dem insert-Befehl oder kurz ins. Geben Sie im Schreibfeld ein:

x var "Unwichtiges Buch" \insert #31 \show rec \disp

ein.

Den var Befehl haben wir bereits kennengelernt und daß FLEX-Befehle mit dem \ Zeichen verknüpft werden können, wissen wir auch. Doch was machen hier die weiteren FLEX-Befehle insert, show und disp?

Betrachten wir die Befehlsfolge noch einmal Schritt für Schritt.

1. var "Unwichtiges Buch" Weist den Inhalt zwischen "..." der iV zu
2. insert #31 Erzeugt im aktuellen Datensatz die Kategorie #31 und schreibt den Inhalt der iV dort hinein
3. show rec Zeigt die aktuellen Datensatzkategorien im Auswahlfeld links an
4. disp Zeigt den aktuellen Datensatz auch im Anzeigefeld an

Sie sehen was passiert ist. Dem aktuellen Datensatz wurde eine Kategorie mit der Nummer #31 hinzugefügt, die den Text "Unwichtiges Buch" enthält. Das Auswahlfeld und das Anzeigefeld zeigen die Änderung an. Das Anzeigefeld wechselt die Hintergrundfarbe von grün auf gelb und unten links erscheint der Text 'EDT', um dem Benutzer anzuzeigen, daß etwas verändert wurde.

Abbildung 2: Der insert-Befehl

Hinweis: Mit der Tastenkombination 'ALT-w' bzw. der Schaltfläche 'Wechseln' kann man zwischen der geänderten (editierten) und der ursprünglichen Fassung des Datensatzes hin- und herschalten!

Zusammen mit dem var-Befehl stellt der insert-Befehl also ein wichtiges Instrument zur Dateneingabe dar. Mit var werden Zeichenketten erzeugt, und mit ins weist man diese Zeichenketten Kategorien zu. Der ins-Befehl kann aber noch mehr!

Mit dem ins-Befehl kann man nicht nur den Inhalt der iV in eine Kategorie schreiben, man kann damit auch den Inhalt der iV  in dauerhaftere Variablen kopieren. Diese Variablen beginnen mit #u und zwei beliebigen darauf folgenden Zeichen. Dabei ist zu beachten, daß der Name der Variablen 'case sensitive' ist, das bedeutet, daß zwischen GROSS und klein-Schreibung unterschieden wird. So sind beispiels weise #uAB, #uAb, #uaB und #uab vier unterschiedliche Variablen!

Alternativ können Sie bei der Eingabe von FLEX-Befehlen statt des vorangestellten 'x' auch eine Zahl i  ( =09) eingeben, dann wird der Befehl nicht sofort ausgelöst, sondern stattdessen in der Benutzervariablen #uXi gespeichert. Der Inhalt der Benutzervariablen #uXi wird durch die Eingabe der Tasten ALT+i ausgelöst! Beachten Sie aber dabei, daß standardmäßig die 8 FLIP-Buttons (siehe Abbildung 3) mit den Benutzer- variablen #uX1 bis #uX8belegt sind, und diese Vorbelegungen dann überschrieben werden! (Nach einem neuen Start des Programms hat man wieder die Vorbelegungen.)

Abbildung 3: Die FLIP-Buttons

Somit ist dem Anwender eine gute und schnelle Möglichkeit gegeben, wiederkehrende Befehlssequenzen in FLEX auf Tastaturkürzel zu legen oder einem der 8 FLIP-Buttons zuzuweisen.

An dieser Stelle eine kurze Anmerkung zu den FLIP-Buttons oder FLIPs allgemein:

Man kann FLIPs als eine Art Hyperlink beschreiben, mit dem man andere Texte, Befehle oder Programme aufruft. Diese Programme sind dann ihrerseits wieder FLEXe. Für den "normalen" Endanwender soll es an dieser Stelle bei dieser kurzen Erklärung bleiben. Einen ausführlicheren Text kann man mit  'h flip' abrufen.





ein Kapitel zurück zurück zum Inhaltsverzeichnis ein Kapitel vor