[Allegro] Fortbildung 13.2: FLEX - was ist das und wie geht das?
Bernhard Eversberg
ev at biblio.tu-bs.de
Fr Jun 17 08:13:46 CEST 2005
26-08-2004
Fortbildungskurs 17-06-2005
13.2 FLEX - Was ist das? Wie geht das?
So heißt die Makro-Sprache des allegro-Systems. Eine Makro-Sprache wird
heute auch oft "Skriptsprache" genannt. Der Name tut nichts zur Sache:
merken Sie sich nur, daß man mit FLEX Vorgänge automatisieren kann, die
man sonst über die Tastatur und Maus alle Schritt für Schritt von Hand
ausführen müßte.
Mit ein paar Unterschieden ist FLEX in den Programmen a99/alcarta und
avanti verwendbar. Die Unterschiede stehen in den Befehlsbeschreibungen
Die Dokumentation, das "FLEXikon", ist umfassend und aktuell:
h flex eingeben.
>>HeißTip als Alternative: v flex eingeben.
Schon morgen machen Sie Ihre erste eigene FLEX-Datei! Heute leisten wir
uns lieber erst etwas Theorie...
FLEX ist eine Sammlung von fast 100 Befehlen, mit denen man genau
beschreiben kann, was gemacht werden soll. Zum Beispiel können fast
alle Buttons und Menüpunkte statt von Hand auch von einem FLEX-Befehl
ausgelöst werden!
FLEX wird auch eine Befehlsfolge genannt, die man mit FLEX zusammen-
gestellt hat. Das kann ein einziger Befehl sein oder über 1000.
Es heißt dann "Der FLEX", nicht "Das FLEX". Ein FLEX ist also etwas
ähnliches wie ein Programm. Das kann der Computer aber nicht selber
ausführen, sondern er braucht a99 oder alcarta (oder avanti) dafür.
Jetzt wollen Sie sofort etwas selber ausprobieren?
Dann geben Sie mal in das Schreibfeld von a99 ein (kopieren Sie die
folgende Zeile hier raus und rein ins Schreibfeld):
x var "Diese Datenbank hat " t " Saetze"\message
... dann [Enter] drücken
Das x ganz vorne sagt dem Programm: hier kommt ein FLEX, keine
Dateneingabe!
Darauf folgen zwei FLEX-Befehle, getrennt durch den \
Der erste Befehl ist:
var "Diese Datenbank hat " t " Saetze"
Damit wird ein Text erzeugt und in einen internen Bereich geschrieben.
Der Text besteht aus den Wörtern "Diese Datenbank hat " und " Saetze",
und dazwischen wird eine Zahl gesetzt, die sich aus dem Buchstaben t
ergibt: das Programm weiß, daß mit dem t die Gesamtzahl der Sätze
gemeint ist.
Wer gute Augen hat, sieht: das t steht nicht innerhalb der Anführungs-
zeichen! Und das ist entscheidend! Was zwischen "..." oder '...' steht,
wird als normaler Text genommen, alles andere wird auf besondere Weise
interpretiert, eben z.B. t als Gesamtzahl der Sätze.
Aber wo ist der Text - wie kann man diesen "internen Bereich" sehen?
Dafür ist der zweite Befehl gedacht:
message
Damit wird der interne Text in einer Meldungsbox angezeigt, die man nur
mit "Enter" oder [OK] wieder wegbekommt.
Wenn Sie nur schnell die Gesamtzahl wissen wollen, können Sie auch
eingeben:
x var t\mes
Dann kommt die nackte Zahl ohne das verbale Drumherum.
Oder wenn Sie wissen wollen, wo denn genau die Datenbank eigentlich
liegt, dann geben Sie ein:
x var D\mes
Denn das D steht für den Namen des Datenverzeichnisses. Die Liste aller
dieser Sonderbezeichnungen kriegen Sie so: h xcstring
Da erfahren Sie also, was mit den Zeichen gemacht wird, die nicht
zwischen "..." oder '...' stehen, sondern außerhalb.
Und Sie erraten schon: FLEX-Befehle kann man auf bis zu drei Buchstaben
kürzen, so z.B. "mes" statt "message". (Nur bei dem sehr gefährlichen
Befehl "erase" geht das nicht.)
Der Befehl "var" (in Langform: "variable") ist der wichtigste von
allen!! Damit kann man sich jede ganz beliebige Zeichenfolge
zusammenstellen, um anschließend etwas damit zu machen.
Mit h xvar holt man sich die Beschreibung.
Mit dem zweitwichtigsten Befehl, "insert" (Kurzform: "ins") kann so
eine Zeichenkette dann von dem internen Bereich in eine Kategorie oder
in eine dauerhafte Variable kopiert werden. Die namen solcher Variablen
beginnen mit #u und darauf folgen zwei beliebige Zeichen (mehr aber
nicht), z.B. #uab, #ucD, #uEf, #uK7, #u5T. Und richtig: #uab, #uaB,
#uAb oder #uAB sind 4 verschiedene Variablen.
Zum Ausprobieren mal eingeben:
x var "Unwichtiges Buch"\insert #31\show rec\disp
Sie sehen schon, was dann passiert... (Mit Alt+w geht's wieder weg)
Her mit der ganzen Befehlsliste?
Mit h xa kommt die alphabetische Liste aller Befehle, jeder davon ist
anklickbar und man erhält sofort seine genaue Beschreibung.
Für den Anfang aber ganz klar besser: v flex eingeben! Das ist eine
ViewListe, und darin kann man auch suchen (==> Lektion 8.1).
Die Sache mit dem Eingeben von x usw. ist aber nur als Hilfe zum Testen
gedacht! Damit kann man jeden Befehl oder eine Folge von mehreren
schnell mal ausprobieren.
Normalerweise schreibt man eine Folge von Befehlen in eine Datei vom
Typ .FLX, jeweils ein Befehl pro Zeile. Viele davon werden mitgeliefert
und liegen bei Ihnen auf dem Unterverzeichnis FLEX! Diese FLEXe werden
alle automatisch aus Hilfetexten oder ViewListen heraus aktiviert, oder
bei bestimmten Vorkommnissen. FLEX-Dateien sind ganz gewöhnliche
Textdateien! Bearbeiten kann man sie mit dem X-Editor (Handbuch Anh.D).
Wenn z.B. jemand den Drucker-Button drückt, wird der FLEX onprint.flx
ausgeführt, wenn der Formulare-Button gedrückt wird, kommt onforms.flx
zum Einsatz. Alle mitgelieferten FLEX-Dateien enthalten Kommentare,
damit Sie bei Bedarf oder um was zu lernen den Ablauf genau
nachvollziehen können.
Und wie setzt man eine FLEX-Datei mit der Hand in Betrieb?
Ausprobieren:
Mit Eingabe von X dbinfo starten Sie den FLEX dbinfo.flx
(großes X! Dann weiß a99: das ist eine FLEX-Datei, die muß ich mir
zuerst suchen und dann ausführen).
Ganz neues Beispiel in V25.5: kalender.flx für den Kalender.
Geben Sie ein: X kalender oder z.B: X kalender 200607
(ein Fall für sehr fortgeschrittene FLEXperten).
Wo müssen sie liegen, die FLEX-Dateien? Die Reihenfolge ist
DbDir
ProgDir\FLEX
ProgDir
Startverz.
Wo das Programm sie zuerst findet, da nimmt es sie.
Wie kann man einen Hilfetext so präparieren, daß darin anklickbare FLEXe
eingebaut sind? Diese sog. "Flips" findet man in fast allen Hilfetexten
des Standardpakets. Wie man es selber macht, steht in help.rtf unter
dem Titel "RTF-Hilfeseiten". Geben Sie h help
Ein schönes Beispiel behandeln wir in Lektion --> 13.4.
Wie kann man die acht Flip-Buttons (unter dem Auswahlfeld) mit eigenen
FLEXen belegen? Das steht in xflip.rtf (h xflip eingeben)
Beispiele dafür: _initial.flx (im FLEX-Verz.)
>>> SuperTip: Einfache Beispiele ohne Arbeit ausprobierbar <<<
Eine Anzahl von einfachen Beispielen zum sofortigen Ausprobieren gibt
es in einer dafür präparierten Datei: h flexw eingeben!
Man setzt den Cursor in eine der numerierten Beispielzeilen (nein, in
die Zeile direkt unter der Nummer!), dann nur noch Alt+9 drücken,
und schon wird die Zeile ausgeführt.
Und nun geben Sie h flex ein. Denn da steht eigentlich alles drin...
Mehr Informationen über die Mailingliste Allegro