Eine Einführung in die Makrosprache des Systems allegro

5.3   Beispiel 3: Der FLEX _start.flx

Dieser FLEX wird gleich nach dem Start von allegro ausgeführt. Er wirkt ein wenig komplexer als die vorhergehenden, Sie werden jedoch schnell bemerken, daß Sie auch vor solchen FLEXen nicht zurückschrecken brauchen. Dieser FLEX dient zum Initialisieren der Speicherbereiche, zur Belegung der FLIP-Buttons und zur Überprüfung des Vorhandenseins der notwendigen Schriftenarten. Gehen wir diesen Ablauf ebenso Schritt für Schritt durch.

Zunächst wird der erste Datensatz geladen um die erforderlichen Speicherbereiche zu initialisieren. Ausgelöst wird dies durch die 'find' Anweisung mit der darauf folgenden Angabe der Satznummer. Die 'show rec' Anweisung initiiert die Anzeige des Satzes in der Auswahlliste (sonst erscheint er nur im Anzeigefeld).


// START.FLX : wird direkt nach Start ausgefuehrt
// 2001-02-07
// Satz 1 laden und zeigen
// (nur um die Speicherbereiche zu initialisieren)

Find #1
show rec


Damit ist der erste Teil, die Initialisierung des Speicherbereiches abgeschlossen. Im darauf folgenden Codesegment werden die FLIP-Buttons 1 bis 8 mit Funktionen belegt. Die Syntax zur Belegung der Buttons läßt sich wie folgt erläutern. Es beginnt mit der Anweisung 'flip', der Nummer des FLIP-Buttons und darauf folgenden Attributen. Diese Attribute umfassen den Button-Text (eingebettet in & und =) und eine darauf folgende Anweisung, die ausgeführt werden soll, wenn der FLIP-Button gedrückt wird. Der FLIP- Button Nummer 5 erhält beispielsweise den Text '5: Kalender' und löst beim Anklicken den Befehl 'X kalender', also den Aufruf der Kalenderfunktion, aus.


// Belegung der Flip-Tasten
flip 1&1: Daten=x sho rec
flip 2&2: ErgMng=x sho erg
flip 3&3: ErgName=X rset
flip 4&4: QUICK=x View quick
flip 5&5: Kalender=X kalender
flip 6&6: Schema=x sho cfg
flip 7&7: Super=h super
flip 8&8: DbInfo=X _dbinfo


Den nächsten Teil sollten Sie wiedererkennen, Sie haben einen ähnlichen Abschnitt bereits im ersten Beispiel kennengelernt. Es werden der aktuelle Programmname und die aktuelle Programmversion abgefragt. Ist das aktuelle Programm alcarta, so soll die Variable #uaV1 gesetzt werden, ansonsten passiert an dieser Stelle nichts.


// Wenn alcarta, dann Variable #uaV setzen (d-wrtf.apr)
variable m
if "alc" #uaV1


Im nächsten größeren Abschnitt soll geprüft werden, ob die für das System notwendigen Schriftarten installiert sind. Dazu wird zunächst der Pfad des Windows-Verzeichnisses abgefragt und dessen "Wert" in die iV kopiert.Diesem Wert wird durch die folgende var Anweisung der Pfad zur Schriftartendatei a-letter.ttf hinzugefügt und das Datum der letzten Aktualisierung abgefragt. Ist die Schriftart vorhanden (dann gilt die Bedingung 'not no') so soll der FLEX zur Sprungmarke :fertig springen. Existiert diese Schriftart nicht (Bedingung 'no' gilt dann), wird der folgende Text in einem Ausgabefenster angezeigt:



Auf Ihrem PC sind die allegro-Schriften nicht installiert
Empfehlung: Damit Index und Kurzliste brauchbar aussehen,
stellen Sie über 'Optionen / Datenfont' die Schrift 'Courier New' ein
Oder lassen Sie sich die allegro-Schriften installieren
(Die TTF-Dateien liegen auf C:\allegro)



// Pruefen, ob Schriften vorhanden
get env windir
variable +"\\fonts\\a-letter.ttf"
ftime
if not no jump fertig
variable "Auf Ihrem PC sind die allegro-Schriften nicht installiert"
variable + n n "Empfehlung: Damit Index und Kurzliste brauchbar aussehen,"
variable + n "stellen Sie über 'Optionen / Datenfont' die Schrift 'Courier New' ein"
variable + n n "Oder lassen Sie sich die allegro-Schriften installieren"
variable + n "(Die TTF-Dateien liegen auf " P ")"
ansi
message
:fertig


Abschließend können noch einige Optionen für die automatische Aktivierung einzelner Module beim Programmstart vorgenommen werden. Dies geschieht, indem man die betreffenden Zeilen ganz nach links rückt.

// Jetzt noch einige Einstellungen, die man wahlweise aktivieren kann.
// Aktivieren heisst: eine Zeile ganz nach links setzen
// (denn sonst wird sie nicht ausgefuehrt!)
// naechste Zeile aktivieren, wenn ALFA sofort aktiviert sein soll:

  #uAL1
// naechste Zeile aktivieren, wenn ALFA-Ausleiher angezeigt werden soll
  #uAU2
// bzw. diese zwei Zeilen, wenn er in alcarta nicht gezeigt werden soll
  variable m
  if not "alc" #uAU2

// Aktivieren Sie diesen Befehl, wenn beim Start breite Anzeige aktiv sein soll
  set db



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