Fortbildungskurs                                          

     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...