diff options
Diffstat (limited to 'doc/eudas/eudas.ref.10')
-rw-r--r-- | doc/eudas/eudas.ref.10 | 406 |
1 files changed, 0 insertions, 406 deletions
diff --git a/doc/eudas/eudas.ref.10 b/doc/eudas/eudas.ref.10 deleted file mode 100644 index fbfcf7e..0000000 --- a/doc/eudas/eudas.ref.10 +++ /dev/null @@ -1,406 +0,0 @@ -#limit (11.0)##pagelength (16.5)##block# -#start (2.0,0.0)# -#page (97)# -#headodd# -#center#EUDAS#right#% - -#end# -#headeven# -%#center#EUDAS - -#end# -#center#1 - -10 Programmierung der Menüs - - - -10.1 Menüformat - -EUDAS verwendet drei verschiedene Strukturen zur Benutzerunter -stützung: Menü, Auswahl und Hilfestellung. Ein Menü dient zur -Auswahl von Funktionen, eine Auswahl bietet Feld- oder Datei -namen an und eine Hilfestellung zeigt einen Informationstext. - Alle diese Strukturen werden aus einer Initialisierungsdatei -eingelesen. Die Initialisierungsdatei ist eine normale Textdatei. Ihr -Format soll in diesem Abschnitt beschrieben werden. - Die Strukturen können in beliebiger Reihenfolge in der Initiali -sierungsdatei stehen. Jede Struktur wird durch eine spezielle -Anweisung eingeleitet. Anweisungen beginnen ähnlich wie im -Druckmuster mit einem Prozentzeichen. Dementsprechend gibt es die -drei Anweisungen - - - % MENUE "Name" - % AUSWAHL "Name" - % HILFE "Gebiet/Name" - - -die jeweils eine Struktur einleiten. Beendet wird eine Definition -immer mit - - - % ENDE - - -#on("b")#Menü#off("b")# Für ein Menü wird noch der Text angegeben, der auf -dem -Bildschirm erscheinen soll. Er wird durch die Anweisung - - - % BILD - - -eingeleitet. Danach folgen Zeilen mit dem Bildschirminhalt in der -gewünschten Größe (die tatsächliche Anzeigegröße wird erst beim -Aufruf angegeben). Dabei werden die Auswahlpositionen, auf denen -der Cursor sich bewegen kann, durch ein geschütztes Leerzeichen in -Spalte 2 festgelegt. - Nach der Angabe des Bildes muß für jede mögliche Auswahl -position noch eine weitere Angabe gemacht werden. Die Auswahl -positionen (oder Felder) werden dabei von oben nach unten durch -gezählt. Begonnen wird mit der Nummer 1. - Eine Felddefinition hat das Format - - - % FELD nr "Hilfstext" "Tasten" - - -Die Nummer identifiziert das Feld. Der Hilfstext gibt den Namen der -Hilfestellung an, die gezeigt werden soll, wenn auf diesem Feld ESC -'?' gedrückt wird. Die Tasten sind alle Zeichen, die gedrückt werden -können, um dieses Feld direkt auszuführen. - Anschließend an die Felddefinition kann in weiteren Zeilen -noch ein ELAN-Programm folgen, das bei Auswahl des Feldes aus -geführt wird. - -#on("b")#Auswahl#off("b")# Für eine Auswahl muß zuerst ein Vorspann angegeben -werden, der immer in den ersten Bildschirmzeilen der Auswahl an -gezeigt wird. Dieser wird durch - - - % VORSPANN - - -eingeleitet. Danach folgt das Bild. Das Bild setzt sich aus drei Tei -len zusammen. Die erste Zeile, in der ein geschütztes Leerzeichen -vorkommt, bildet den Wiederholungsteil. Diese Zeile wird nachher so -oft wie nötig mit entsprechenden Inhalten wiederholt, wobei das -geschützte Leerzeichen als Bindestrich dargestellt wird, auf dem -sich der Cursor bewegen kann. Die Teile davor und danach werden -jeweils bei Bedarf mitgerollt. - Die Wiederholungszeile darf mehrere geschützte Leerzeichen -enthalten. Die Inhalte werden dann in mehreren Spalten angezeigt. -Zu beachten ist, daß vor einem Trennstrich noch mindestens fünf -Zeichen Platz für eine laufende Nummer bleiben müssen. - -#on("b")#Hilfe#off("b")# Der Name einer Hilfestellung setzt sich aus zwei -Teilen -zusammen, die durch einen Schrägstrich getrennt werden. Der erste -Name gibt die Kategorie der Hilfestellung an, der zweite Name den -Einzeltext. Dies dient dazu, die relativ große Zahl der Hilfstexte -überschaubar zu machen. Als Beispiel - - - % HILFE "JA/Allgemein" - - -Eine Hilfestellung besteht einfach aus mehreren Seiten Text. Jede -Seite wird durch die AnweisungQ - - -Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q - - -Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈ -Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈ -Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈ -Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈ -Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q - - -Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q - - -Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q̈Q -Q̈Q̈Q̈Q̈Q̈Q̈Q̈estellung, wobei die Seiten einfach von 1 an durch -gezählt werden. Anschließend darf für diese Seite natürlich kein -Text folgen. - - -10.2 Verwaltung der Menüs - -Alle Menüdaten werden intern in Datenräumen gehalten. Dabei sind -die einzelnen Strukturen getrennt. Mit 'menuedaten einlesen' kön -nen Menüdaten aus einer Struktur gelesen und abgespeichert wer -den. Existierende Strukturen werden dabei überschrieben, neue -hinzugefügt. - Mit 'menuenamen' können die vorhandenen Strukturen abgefragt -werden. Mit 'menue loeschen' werden einzelne Strukturen oder alle -Menüdaten gelöscht. Damit die Datenräume mit den Menüdaten auch -an Söhne übergeben werden, ist der 'global manager' entsprechend -geändert. Dies wird im einzelnen durch 'menue manager' bewirkt. -Der neue Global Manager akzeptiert auch Anfragen von Tasks, die -nicht Söhne oder Enkel sind. - - -PROC menuedaten einlesen (TEXT CONST dateiname) - - Die in der Datei enthaltenen Strukturen werden eingelesen und - abgespeichert. Treten bei diesem Prozeß Fehler auf, so wird - eine entsprechende Meldung ins EUMEL-Notizbuch geschrieben - und nachher im Paralleleditor angezeigt. - - -THESAURUS PROC menuenamen (INT CONST index) - - Liefert die Namen der Strukturen. Der Index hat folgende Be - deutung: - 1: Hilfskategorien - 2: Menüs - 3: Auswahlen - Ist der Index negativ, so werden die Hilfsnamen der entspre - chenden Hilfskategorie geliefert, die im Thesaurus den Index - mit umgekehrtem Vorzeichen hat. - - -PROC menue loeschen (TEXT CONST name, INT CONST index) - - Löscht den Namen in dem Thesaurus mit dem angegebenen In - dex, falls dort der Name vorhanden ist. - - -PROC menue loeschen (BOOL CONST hilfen reduzieren) - - Löscht alle Menüdaten. Ist 'hilfen reduzieren' verlangt, wird - beim späteren Einlesen der Hilfstexte jeweils nur der erste - Text einer Kategorie gespeichert, um Platz zu sparen. - - -PROC global manager - - Geänderter Manager, der die Menüdatenräume in Söhne trans - portiert und Sperren setzen kann. Ersetzt den normalen 'free - global manager'. Nur im Multi-User-System vorhanden. - - -PROC menue manager (DATASPACE VAR ds, - INT CONST order, phase, - TASK CONST order task) - - Eigentliche Manager-Routine. Kann dazu dienen, Managererwei - terungen vorzunehmen. Nur im Multi-User-System vorhanden. - Beispiel: der Manager soll nur Aufträge von Söhnen annehmen. - - - PROC new manager (DATASPACE VAR ds, - INT CONST order, phase, - TASK CONST order task): - - LET begin code = 4; - IF order task < myself OR order = begin code OR - order task = supervisor THEN - menue manager (ds, order, phase, order task) - ELSE - errorstop ("kein Sohn") - END IF - - END PROC new manager; - - global manager (PROC new manager) - (* startet den Manager *) - - - -10.3 Aufruf - -Menüs werden mit der Prozedur 'menue anbieten' aufgerufen. Dabei -muß neben den Namen ein Fenster übergeben werden, in dem die -Menüs dann angezeigt werden. Es ist darauf zu achten, daß das -Fenster groß genug ist, um wenigstens die Auswahlpositionen im -Bild zu haben. - Außerdem muß eine Prozedur übergeben werden, die die einzel -nen Funktionen ausführt. Diese Prozedur erhält als Parameter die -Nummer der ausgewählten Funktion. - Mit 'waehlbar' können Auswahlen gesperrt werden. Diese Anga -be kann jedoch nicht vor Aufruf von 'menue anbieten' erfolgen, da -dann alle Sperren erstmal gelöscht werden. Zum Setzen der Sperren -beim Betreten eines Menüs dient ein besonderer Code, mit dem die -übergebene Prozedur aufgerufen wird. - Eine Auswahl wird mit der Prozedur 'auswahl anbieten' aufge -rufen. Diese bekommt ebenfalls ein Fenster übergeben, außerdem -den Namen einer Hilfestellung, die bei Bedarf aufgerufen werden -kann. Weiterhin muß eine Prozedur übergeben werden, die die aus -zuwählenden Texte erzeugt. Die gewählten Texte können anschlie -ßend mit der Prozedur 'wahl' abgefragt werden. - Eine Hilfestellung wird durch die Prozedur 'hilfe anbieten' -ausgegeben. Dabei muß außer dem Namen auch noch ein Fenster -übergeben werden. - Mit 'status anzeigen' kann ein Text in der Statuszeile ausge -geben werden. Die Menüprogramme tun dies für ihren Bereich jedoch -selbst. - - -PROC menue anbieten (ROW 6 TEXT CONST menuenamen, - FENSTER VAR f, - BOOL CONST esc erlaubt, - PROC (INT CONST, INT CONST) interpreter) - - Die angegebenen Menüs werden in dem Fenster 'f' angezeigt. - Das Fenster wird nach Beendigung des Menüs als verändert - gekennzeichnet. Die Namen der 6 Menüs werden in die Titelzeile - aufgenommen. Die Menünamen sollten mit einer Menüidentifika - tion versehen sein, zum Beispiel "EUDAS.Öffnen". Der Text vor - dem Punkt wird an den Anfang der Titelzeile gestellt und bei - den einzelnen Menünamen unterdrückt. Nicht benötigte Menüs - müssen als "" angegeben werden. - - 'esc erlaubt' gibt an, ob mit ESC ESC ein Kommandodialog ge - führt werden kann. Die übergebene Prozedur muß die einzelnen - Funktionen ausführen, die als Zahl übergeben werden. Der - Interpreter wird im 'disable stop' aufgerufen, daher ist in der - Regel ein 'enable stop' erforderlich. - - Die Parameter für 'interpreter' haben folgende Bedeutung: - Par. 1: 0 Aufruf zur Initialisierung der Sperren - oder anderen Initialisierungen zu Beginn - 1..6 Angabe des aktuellen Menüs - Par. 2: 1..23 Aufruf der entsprechenden Funktion - 0 Eintritt in ein neues Menü (wird vor der - Ausgabe dieses Menüs aufgerufen) - -1 Verlassen des Menüs - -2 Bildschirmupdate (nach Eintritt in das - Menü, wenn das Menü ganz ausgegeben ist, - oder wenn der Bildschirm nach 'Gib - Kommando:' zerstört worden ist) - - FEHLER: - - #on("i")#"Name" existiert nicht.#off("i")# - Das angegebene Menü ist nicht vorhanden. - - -PROC waehlbar (INT CONST menuenr, funktionsnr - BOOL CONST moeglich) - - Setzt die Funktionssperre der angegebenen Funktion. Muß in - nerhalb von 'menue anbieten' aufgerufen werden. Zu Beginn von - 'menue anbieten' sind jeweils alle Funktionen erlaubt. - - -PROC ausfuehrtaste (TEXT CONST taste) - - Setzt die Taste, die Funktionen ausführt. Ist standardmäßig die - Leertaste. - - FEHLER: - - #on("i")#falsche Ausfuehrtaste#off("i")# - Es muß ein einzelnes Zeichen angegeben werden, das nicht - bereits anderweitig verwendet wird. - - -PROC auswahl anbieten (TEXT CONST name, FENSTER CONST f, - TEXT CONST hilfe, - PROC (TEXT VAR, INT CONST) inhalt) - - Ruft die Auswahl in dem angegebenen Fenster auf. 'hilfe' wird - als Hilfestellung verwendet. Die Prozedur 'inhalt' liefert den - Text, der an der n-ten Position stehen soll. Wenn keine wei - teren Texte vorhanden sind, muß für alle weiteren Positionen - "" geliefert werden. - - FEHLER: - - #on("i")#"Name" existiert nicht.#off("i")# - Die angegebene Auswahl ist nicht vorhanden. - - -INT PROC wahl (INT CONST stelle) - - Liefert die Nummer des Textes, der an der n-ten Stelle ausge - wählt wurde. Wurde kein weiterer Text mehr gewählt, so wird 0 - geliefert. - - -PROC hilfe anbieten (TEXT CONST name, FENSTER CONST f) - - Bietet den Hilfstext in dem angegebenen Fenster an. Existiert - die Hilfe innerhalb der angegebenen Kategorie nicht, wird die - erste Hilfe der Kategorie angezeigt. - - FEHLER: - - #on("i")#Hilfe existiert nicht#off("i")# - Die angegebene Hilfskategorie ist nicht vorhanden. - - -PROC status anzeigen (TEXT CONST zeile) - - Zeigt den angegebenen Text in der obersten Bildschirmzeile an. - - -10.4 Dialog - -EUDAS führt den Benutzerdialog in einem Fenster, dessen Größe -durch 'dialogfenster' eingestellt wird. Das Dialogfenster wird zei -lenweise belegt. 'dialog' reserviert eine neue Zeile für eine beliebi -ge Ausgabe. Wenn das Fenster voll ist oder überschrieben wurde, -wird in der ersten Zeile wieder angefangen. Den gleichen Effekt -kann man mit 'neuer dialog' erreichen. - Mit 'ja' kann man im Dialogfenster eine Frage stellen. Als Ant -wort kann auch eine Hilfestellung angefordert werden oder die -Funktion abgebrochen werden. Mit 'editget' kann man nach Auffor -derung einen Text eingeben lassen. Dabei stehen die gleichen -zusätzlichen Möglichkeiten zur Verfügung. - Mit 'fehler ausgeben' kann eine durch 'errorstop' erzeugte Feh -lermeldung im Dialogfenster angezeigt werden. Der Benutzer muß -erst eine Taste drücken, ehe er weitermachen kann. Auch hier kann -eine Hilfestellung zu der Fehlermeldung abgerufen werden. - - -PROC dialogfenster (INT CONST x, y, xl, yl) - - Gibt die Fenstergröße und -position des Dialogfensters an. Für - den ganzen Bildschirm müßte (1, 1, 79, 24) angegeben werden. - - -PROC dialog - - Positioniert den Cursor auf die nächste Dialogzeile im Dialog - fenster. Wurde das Fenster verändert, wird das Fenster ge - löscht und auf die erste Zeile positioniert. - - -PROC neuer dialog - - Sorgt dafür, daß der nächste Aufruf von 'dialog' wieder in - einem leeren Fenster beginnt. - - -BOOL PROC ja (TEXT CONST frage, hilfe) - - Stellt die angegebene Frage. Es kann die angegebene Hilfsin - formation abgerufen werden. Außerdem wird durch ESC 'h' ein - Abbruch (errorstop ("")) erzeugt. - - -PROC editget (TEXT CONST prompt, TEXT VAR eingabe, - TEXT CONST res, hilfe) - - Gibt den Text 'prompt' aus und editiert dahinter 'eingabe'. Es - kann die angegebene Hilfsinformation abgerufen werden. 'res' - gibt an, bei welchen ESC-Folgetasten das Editieren beendet - werden soll. In einem solchen Fall wird als Eingabe (ESC + die - gedrückte Taste) zurückgeliefert. - - -PROC fehler ausgeben - - Im Dialogfenster wird die letzte Fehlermeldung ausgegeben. - Gleichzeitig wird der Fehlerzustand gelöscht. Der Benutzer muß - eine Taste drücken, um weiterzumachen. Alternativ kann die - Hilfsinformation "FEHLER/" + text (errorcode) abgerufen wer - den. - - |