diff options
Diffstat (limited to 'doc/menugenerator')
-rw-r--r-- | doc/menugenerator/menu-generator handbuch.1 | 100 | ||||
-rw-r--r-- | doc/menugenerator/menu-generator handbuch.2 | 87 | ||||
-rw-r--r-- | doc/menugenerator/menu-generator handbuch.3 | 155 | ||||
-rw-r--r-- | doc/menugenerator/menu-generator handbuch.4 | 424 | ||||
-rw-r--r-- | doc/menugenerator/menu-generator handbuch.5 | 975 | ||||
-rw-r--r-- | doc/menugenerator/menu-generator handbuch.6 | 235 | ||||
-rw-r--r-- | doc/menugenerator/menu-generator handbuch.7 | 367 | ||||
-rw-r--r-- | doc/menugenerator/menu-generator handbuch.8 | 1676 | ||||
-rw-r--r-- | doc/menugenerator/menu-generator handbuch.impressum | 88 | ||||
-rw-r--r-- | doc/menugenerator/menu-generator handbuch.index | 258 | ||||
-rw-r--r-- | doc/menugenerator/menu-generator handbuch.inhalt | 72 |
11 files changed, 0 insertions, 4437 deletions
diff --git a/doc/menugenerator/menu-generator handbuch.1 b/doc/menugenerator/menu-generator handbuch.1 deleted file mode 100644 index c190c0a..0000000 --- a/doc/menugenerator/menu-generator handbuch.1 +++ /dev/null @@ -1,100 +0,0 @@ -#type ("prop.lq")##limit (11.0)##pagelength (16.5)##block# -#start (2.0,0.0)# -#page (3)# -#headodd# -#center#ls-Menu-Generator#right#% - -#end# -#headeven# -%#center#ls-Menu-Generator - -#end# -#type ("prop.breit.lq")# -#center#1 - -#center#Was -#center#kann -#center#ls-Menu-Generator -#type ("prop.lq")# - - - In diesem Kapitel wollen wir Ihnen erläutern, was Sie -mit #on("b")#ls-Menu-Generator#off("b")# anfangen können. Wir gehen davon -aus, daß Ihnen die Benutzerschnittstelle #on("b")#ls-DIALOG#off("b")# be -kannt ist und daß Sie bereits mit einigen Anwendungen -unter #on("b")#ls-DIALOG#off("b")# gearbeitet haben. Weiterhin setzen wir -voraus, daß Sie Programmierkenntnisse (EUMEL/ELAN) be -sitzen. - Bisher war es Ihnen nur möglich, von uns fertigge -stellte Programme unter der komfortablen Benutzer -schnittstelle #on("b")#ls-DIALOG#off("b")# laufen zu lassen. Sie haben aber -sicher erkannt, welche Vorteile es bietet, Programme un -ter einer einheitlichen Benutzeroberfläche zu realisie -ren: - Zunächst profitiert natürlich der Anwender von der -einfachen und immer einheitlichen Bedienung solcher -Programme. Der Aufwand, sich in neue Programmsysteme -einzuarbeiten, wird erheblich reduziert. #on("b")#ls-DIALOG#off("b")# wurde -ja auch speziell für den Unterricht konzipiert und ent -wickelt: Ziel war es, Computerlaien einen Zugang zum -Computer zu verschaffen und den Umgang mit dem Compu -ter zu vereinfachen. - - #on("b")#ls-Menu-Generator#off("b")#ist nun aber kein weiteres Anwen -dungsprogramm! #on("b")#ls-Menu-Generator#off("b")# ist stattdessen für -den Programmierer gedacht, der selbst unter #on("b")#ls-DIALOG#off("b")# -Anwendungssysteme entwickeln möchte. #on("u")#Wir erhoffen uns -durch die Bereitstellung dieses Werkzeuges, daß sich auch -andere engagierte Personen daran beteiligen, qualitativ -hochwertige Software insbesondere für den Schulbereich -unter #on("b")#ls-DIALOG#off("b")# zu entwickeln.#off("u")# - - Mit #on("b")#ls-Menu-Generator#off("b")# haben Sie zwei Komponenten -erworben: Das Generator-Programm zur Erzeugung von -Menukarten und eine umfangreichen Dokumentation. Dabei -enthält die Dokumentation nicht nur Informationen dar -über, wie Sie mit dem Generator-Programm arbeiten kön -nen - das natürlich auch. Darüberhinaus werden Ihnen -alle Möglichkeiten, die #on("b")#ls-DIALOG#off("b")# zur Programmgestal -tung bietet, ausführlich erläutert - das macht den we -sentlichen Teil der Dokumentation aus! - - #on("b")#ls-DIALOG#off("b")# ist eigentlich ein "Baukastensystem", auf -das andere Programme zugreifen können. Sie wissen si -cherlich, wieviel Arbeit bei jedem Programm aufzuwen -den ist, um die Benutzerschnittstelle zu realisieren. Die -Gestaltung und Pflege der Benutzerschnittstelle kann -bis zu 50% der Gesamtarbeit an einem Programm ausmachen. -#on("b")#ls-Menu-Generator#off("b")# soll Ihnen helfen, diese Arbeit zu -verringern. - - Alle Informationen, die ein Menu betreffen, sind in -der sogenannten 'Menukarte' abgelegt. Wird nun ein Pro -gramm unter #on("b")#ls-DIALOG#off("b")# aufgerufen, so wird die entspre -chende Menukarte aus der "Menukarten - Sammeltask" ('ls- -MENUKARTEN') geholt und an das System angekoppelt. An -schließend wird dem Anwender das Menu auf dem Bildschirm -angeboten. - Das Erstellen solcher Menukarten ist mit dem Genera -torprogramm sehr einfach - es wird in Kapitel 4 beschrie -ben. Allerdings sollten Sie nicht die Arbeit unterschät -zen, die Sie für eine sorgfältig erstellte, mit allen In -formationtexten gefüllte Menukarte aufwenden müssen! - - Bei den meisten Programmmen reicht aber ein einfaches -Menu nicht aus. Bei vielen Verarbeitungsfunktionen ist -es notwendig, mit dem Anwender einen Dialog zu führen: -z.B. muß ein Dateiname erfragt, eine Information ausgege -ben und bestätigt, eine Auswahl oder eine Entscheidung -getroffen werden. Alle Möglichkeiten, die #on("b")#ls-DIALOG#off("b")# dazu -bereitstellt, sind in Kapitel 5 dokumentiert. - - Einige Reihe von Verarbeitungsfunktionen treten in -nahezu jeder Anwendung auf (Datei- und Archivhandling). -Hier stellt #on("b")#ls-DIALOG#off("b")# schon vorgefertigte Module zur -Verfügung. In Kapitel 6 zeigen wir Ihnen, wie Sie auf die -se Module zugreifen und sie in Ihr Programmsystem ein -binden können. In Kapitel 7 zeigen wir Ihnen außerdem, -wie Sie eigene Fenster definieren können und welche Ope -rationen auf diesen Fenstern zur Verfügung stehen. - diff --git a/doc/menugenerator/menu-generator handbuch.2 b/doc/menugenerator/menu-generator handbuch.2 deleted file mode 100644 index 696ed28..0000000 --- a/doc/menugenerator/menu-generator handbuch.2 +++ /dev/null @@ -1,87 +0,0 @@ -#type ("prop.lq")##limit (11.0)##pagelength (16.5)##block# -#start (2.0,0.0)# -#page (6)# -#headodd# -#center#ls-Menu-Generator#right#% - -#end# -#headeven# -%#center#ls-Menu-Generator - -#end# -#type ("prop.breit.lq")# -#center#2 - -#center#Installation -#center#von -#center#ls-Menu-Generator -#type ("prop.lq")# - - - Bevor Sie #on("b")#ls-Menu-Generator#off("b")# auf Ihrem System benut -zen können, müssen Sie das Programm zunächst installie -ren. Wenn #on("b")#ls-Menu-Generator#off("b")# auf Ihrem System schon zur -Verfügung steht, können Sie dieses Kapitel ruhig über -springen. - - -2.1 Voraussetzungen - - Um #on("b")#ls-Menu-Generator#off("b")# auf Ihrem Computer betreiben -zu können, muß das EUMEL-Betriebssystem (Multi-User- -Version) installiert und das Programmpaket #on("b")#ls-DIALOG#off("b")# -(Version 1.1) bereits insertiert sein. - - -2.2 Lieferumfang - - #on("b")#ls-Menu-Generator#off("b")# wird auf einer Diskette geliefert, -die alle notwendigen Programme enthält. Folgende Dateien -sollten sich auf der Diskette befinden: - - "fonttab.ls-Menu-Generator" - "ls-MENUBASISTEXTE" - "Generatordatei: Archivmenu" - "ls-Menu-Generator 1" - "ls-Menu-Generator 2" - "ls-Menu-Generator/gen" - - Eventuell können noch weitere Namen auf der Diskette -vorhanden sein. - - -2.3 Installation - -Die Installation erfolgt in #on("u")#zwei Schritten#off("u")#: - - #on("u")#Zunächst#off("u")# muß die mitgelieferte Fonttabelle -('fonttab.ls-Menu-Generator') in die Task 'configurator' -geholt werden. Da Sie aus dem 'UR-Zweig' des EUMEL- -Systems keinen schreibenden Zugriff auf die Task -'configurator' haben, müssen Sie die Task 'configurator' -an Ihr Terminal koppeln und die Datei 'fonttab.ls-Menu- -Generator' von der Diskette in die Task kopieren. - #on("u")#Anschließend#off("u")# kann #on("b")#ls-Menu-Generator#off("b")# in einer Task -installiert werden, in der bereits das Programm #on("b")#ls-DIALOG#off("b")# -zur Verfügung steht. Richten Sie also eine Task als Sohn -der Task ein, in der auf Ihrem Computer bereits #on("b")#ls-DIALOG#off("b")# -installiert ist. Legen Sie dann die Archivdiskette ein, -auf der sich #on("b")#ls-Menu-Generator#off("b")# befindet und geben Sie -die folgenden Kommandos: - - archive("ls-Menu-Generator") <RETURN> - - fetch("ls-Menu-Generator/gen",archive) <RETURN> - - run <RETURN> - - Sie haben damit das Generatorprogramm gestartet; die -Installation wird automatisch durchgeführt. Lassen Sie -während des gesamten Vorgangs die Archivdiskette einge -legt. Die Generierung ist beendet, wenn der EUMEL-Ein -gangsbildschirm erscheint. Die Task, in der die Generie -rung stattfindet, wird automatisch zur Managertask, das -heißt, daß Söhne von ihr eingerichtet werden können. - - - diff --git a/doc/menugenerator/menu-generator handbuch.3 b/doc/menugenerator/menu-generator handbuch.3 deleted file mode 100644 index e982988..0000000 --- a/doc/menugenerator/menu-generator handbuch.3 +++ /dev/null @@ -1,155 +0,0 @@ -#block##pageblock# -#pagenr("%",1)##setcount(1)##count per page# -#headeven# -gs-Menu-Generator -#center#____________________________________________________________ - -#end# -#headodd# -#right#gs-Menu-Generator -#center#____________________________________________________________ - -#end# -#bottomeven# -#center#____________________________________________________________ -3 - % #right#ERGOS -#end# -#bottomodd# -#center#____________________________________________________________ -ERGOS #right# 3 - % -#end# -#ib#3 Die Arbeitsweise von gs-DIALOG#ie# - - -In diesem Kapitel soll die grundsätzliche Arbeitsweise von gs-DIALOG erläutert -werden. Sie erfahren, wie das Menusystem aufgebaut ist, wie man Menukarten an -koppelt und Menus zur Ausführung bringt. Ebenso wird erläutert, wie eine Menukarte -aufgebaut ist. -Wenn Sie die hier beschriebenen Vorgänge auf ihrem System nachvollziehen wollen, -so muß in Ihrer Task das Programm 'gs-DIALOG' zur Verfügung stehen! - - -#ib#3.1 Ankoppeln einer Menukarte - Ausführen eines Menus#ie# - -Vereinfacht gesagt ist eine Menukarte ein Datenraum, in dem alle Informationen, die -zum Menu (zu den Menus) gehören, abgelegt sind. Der genaue Aufbau einer solchen -Menukarte wird in Kapitel 3.2 beschrieben. -Alle Menukarten, die auf einem System zur Verfügung stehen, werden in einer zentra -len Task ('gs-MENUKARTEN') bereitgehalten. Die Menukarten können von hier -angefordert werden. -Lassen Sie sich in Ihrem System eine Übersicht der vorhandenen Menukarten geben -(list (/"gs-MENUKARTEN") <RETURN> ). Darauf wird Ihnen gegebenenfalls folgen -de Übersicht angeboten: - - 01.09.87 "gs-MENUKARTE:Archiv" - 01.09.87 "gs-MENUKARTE:Herbert und Robbi" - 01.09.87 "gs-MENUKARTE:MP-BAP" - ... - -Zumindest die erste Menukarte müßte - sofern die gs-DIALOG-Basissoftware instal -liert ist - auf Ihrem System vorhanden sein. Die beiden anderen Menukarten sind -natürlich nur dann vorhanden, wenn Sie die Programme 'gs-Herbert und Robbi' -und 'gs-MP BAP' installiert haben. - -In einer weiteren Task (z.B. 'DIALOG') sind die Programme installiert, die es ermög -lichen, diese Menukarten zu handhaben. Alle Sohntasks dieser Task "erben" natür -lich diese Fähigkeiten. Von einer solchen Task aus kann nun eine Menukarte ange -fordert und ein darin enthaltenes Menu zur Ausführung gebracht werden. Das haben -Sie sicher schon oft gemacht, z.B. wenn Sie den Befehl 'archiv' gegeben haben. Was -hinter diesem Befehl steckt, sollen Sie sich jetzt klar machen: - -Wenn Sie den Befehl 'archiv' geben, wird zunächst die Menukarte -'gs-MENUKARTE:Archiv' aus der Task 'gs-MENUKARTEN' angefordert und in Ihre -Task kopiert. Davon merken Sie normalerweise nichts, denn nachdem die Ankopp -lung des Datenraumes (als unbenannter Datenraum) erfolgt ist, wird die Daten -raumkopie gelöscht; daher taucht der Name auch nie in Ihrer Dateiliste auf. Intern -vermerkt das System, welche Menukarte aktuell angekoppelt ist. Soll wiederholt -dieselbe Menukarte angekoppelt werden, so erübrigt sich das Kopieren aus der zen -tralen Bereitstellungstask. - -Nach dem Ankoppeln der Menukarte können Sie auf die in der Menukarte enthalte -nen Informationen zugreifen. Da in einer Menukarte mehrere Menus enthalten sein -können, müssen Sie dem System noch mitteilen, welches Menu aktiviert werden soll. -In der Menukarte 'gs-MENUKARTE:Archiv' ist nur ein Menu enthalten, das den -Namen 'ARCHIV' hat (der Name des Menus erscheint übrigens bei der Präsentation -immer oben links in der Kopfzeile). - -Sie sollen jetzt, ohne den Befehl 'archiv' zu verwenden, das Menu zur Ausführung -bringen. Geben Sie dazu die folgenden Kommandos in der 'gib kommando:'- Ebene: - - #ib#install menu#ie# ("gs-MENUKARTE:Archiv"); - #ib#handle menu#ie# ("ARCHIV") - -Mit dem ersten Befehl koppeln Sie die genannte Menukarte an, mit dem zweiten -Befehl bringen Sie das darin enthaltene Menu 'ARCHIV' zur Ausführung. -Allerdings stellen Sie sicher auch einen Unterschied zur Ausführung des Befehls -'archiv' fest, denn dort erscheint nicht erst unser "Software - Emblem" auf dem -Bildschirm, sondern direkt das Menu. - -Wenn Ihnen eines der Programme 'gs-Herbert und Robbi' oder 'gs-MP BAP' -bekannt ist, haben Sie unser Emblem aber sicher schon gesehen - wir verwenden es -immer, um unsere Softwareprodukte kenntlich zu machen. Da man aber das Archiv -programm sehr häufig benötigt und es dann nur störend wirkt kann die Ausgabe -unterdrückt werden. Daher gibt es den Befehl 'install menu' in zwei Versionen. -Versuchen Sie es gleich einmal: - - install menu ("gs-MENUKARTE:Archiv", FALSE); - handle menu ("ARCHIV") - -Die Präsentation des Menus erfolgt gleich aus zwei Gründen schneller als beim ersten -Mal: einerseits wurde auf die Ausgabe unseres Software - Emblems verzichtet, ande -rerseits brauchte die Menukarte nicht erneut aus der Task 'gs-MENUKARTEN' kopiert -zu werden, da sie ja schon angekoppelt war. -Damit sind Sie nun in der Lage, Menukarten anzukoppeln und Menus zur Ausfüh -rung zu bringen. - - -#ib#3.2 Aufbau/Inhalt einer Menukarte#ie# - -Eine Menukarte ist eine komplexe Datenstruktur, die bis zu 6 vollständige Menus -aufnehmen kann. Weiterhin sind eine Reihe von Texten in jeder Menukarte abgelegt, -auf die gs-DIALOG zurückgreift. Darüberhinaus kann der Anwendungsprogram -mierer bis zu 2000 Texte in die Menukarte auslagern, um so beim Insertieren seiner -Programme den Umfang an Paketdaten geringer zu halten. -Auf den ersten Blick scheint es wenig Sinn zu machen, mehrere Menus in einer -Menukarte zu verwalten. Nehmen wir aber als Beispiel das Programmsystem -gs-Herbert und Robbi. Hier ist ein Programm in zwei unterschiedlichen Ausprä -gungen zu behandeln. Sowohl das Hamster- als auch das Robotermenu befinden sich -in einer Menukarte. Bei einem Wechsel zwischen den Modellen braucht also keine -neue Menukarte angefordert, sondern nur ein neues Menu aus der aktuellen Menu -karte aktiviert zu werden. -Zum anderen ist gs-DIALOG schon auf umfangreichere Programmsysteme vorberei -tet: Es ist nämlich möglich, von einem Menu aus ein weiteres Menu aus der aktuellen -Menukarte zu aktivieren. Auf dem Bildschirm werden die beiden Menus dann ge -schachtelt (das zuletzt aktivierte vor dem aufrufenden Menu) angezeigt. Nach Verlas -sen der zweiten Menuebene gelangt der Benutzer automatisch in das Ausgangsmenu -zurück. -Zwar ist es nicht möglich, mehr als zwei Menus gleichzeitig zu aktivieren (geschach -telt auf dem Bildschirm darzustellen), doch können an verschiedenen Stellen des -Ausgangsmenus ja unterschiedliche Menus aus der aktuellen Menukarte aktiviert -werden. - -Jedes Menu in der Menukarte wird durch einen Namen gekennzeichnet. Dieser Name -erscheint in der Kopfzeile oben links. Über diesen Namen kann das Menu aktiviert -werden. -Ein Menu besteht aus den sogenannten 'Oberbegriffen', die in der Kopfzeile angezeigt -werden. In einer Kopfzeile können bis zu 10 Oberbegriffe verwaltet werden. Da zu -jedem Oberbegriff bis zu 15 Verarbeitungsfunktionen (in den Pull-Down-Menus) -verwaltet werden können, ist es möglich, in einem Menu bis zu 150 Verarbeitungs -funktionen abzulegen. Nutzt man alle 6 Menus einer Menukarte, so können maximal -bis zu 900 Verarbeitungsfunktionen in einer Menukarte verwaltet werden. - -Eine Verarbeitungsfunktion besteht aus der/dem - - - 'Ein-Zeichen-Kennung' - die angibt, durch welche Taste die Verarbei - tungsfunktion ggf. aktiviert werden kann; - - 'Menupunktbezeichnung' - die im Pull-Down-Menu als Name für die - Verarbeitungsfunktion erscheint; - - 'Funktionsaufruf' - dem Namen der Prozedur, die bei der Aktivie - rung des Menupunktes zur Ausführung ge - bracht wird; - - 'Informationstext' - der zur aktuellen Verarbeitungsfunktion durch - Tippen der <?>-Taste abgerufen werden - kann. - - diff --git a/doc/menugenerator/menu-generator handbuch.4 b/doc/menugenerator/menu-generator handbuch.4 deleted file mode 100644 index 97e7491..0000000 --- a/doc/menugenerator/menu-generator handbuch.4 +++ /dev/null @@ -1,424 +0,0 @@ -#block##pageblock# -#pagenr("%",1)##setcount(1)##count per page# -#headeven# -gs-Menu-Generator -#center#____________________________________________________________ - -#end# -#headodd# -#right#gs-Menu-Generator -#center#____________________________________________________________ - -#end# -#bottomeven# -#center#____________________________________________________________ -4 - % #right#ERGOS -#end# -#bottomodd# -#center#____________________________________________________________ -ERGOS #right# 4 - % -#end# -#ib#4 Erstellen einer neuen Menukarte#ie# - - -Aus Kapitel 3 wissen Sie, wie man eine fertige Menukarte ankoppelt und wie man ein -darin enthaltenes Menu zur Ausführung bringen kann. Außerdem wissen Sie bereits, -welche Informationen in einer Menukarte untergebracht werden können. In diesem -Kapitel nun wollen wir Ihnen zeigen, wie Sie eine eigene Menukarte entwickeln -können. -Damit Sie sich die Abläufe besser vorstellen können, werden wir die Vorgänge an -einem Beispiel aufzeigen: Wir wollen eine 'kleine Textverarbeitung' schaffen, deren -Verarbeitungsfunktionen über ein Menu angeboten werden. -Es sei aber darauf hingewiesen, daß es nicht darum geht, eine voll funktionsfähige -Textverarbeitung auszuarbeiten - vielmehr sollen die Erstellung der Menukarte und -das Nutzen der durch gs-DIALOG bereitgestellten Werkzeuge exemplarisch auf -gezeigt werden. - - -#ib#4.1 Eintragen der Menupunkte#ie# - -Unsere Menukarte soll den Namen 'Kleine Textverarbeitung' erhalten, das darin -enthaltene Menu den Namen 'SCRIPT'. Unter dem Oberbegriff 'Bearbeiten' sollen 5 -Verarbeitungsfunktionen angeboten werden. Insgesamt soll unser neues Menu fol -genden Aufbau haben: - -SCRIPT: Bearbeiten - - n Neu erstellen - a Ansehen/Ändern - ---------------- - v Verzeichnis - ---------------- - z Zeilenformtierung - s Seitenformatierung - - - -Zur Erzeugung der zugehörigen Menukarte schreiben Sie folgendes Pro -gramm in eine Datei: - - -oeffne menukarte ("Kleine Textverarbeitung"); -oeffne menu ("SCRIPT"); - -oberbegriff ("Bearbeiten"); - -menufunktion ("n", "Neu erstellen", "neue datei editieren",""); -menufunktion ("a", "Ansehen/Ändern", "alte datei editieren",""); -trennlinie; -menufunktion ("v", "Verzeichnis", "verzeichnis ausgeben",""); -trennlinie; -menufunktion ("z", "Zeilenformatierung", "zeilen formatieren",""); -menufunktion ("s", "Seitenformatierung", "seiten formatieren",""); - -schliesse menu; -schliesse menukarte; - - -Bevor wir Ihnen die Einzelheiten erklären, sollten Sie zuerst einmal Ihr neu erstelltes -Menu ausprobieren. Verlassen Sie dazu die Datei und geben Sie das Kommando 'run'. -Nachdem das von Ihnen geschriebene Programm übersetzt worden ist, meldet sich -der Menu-Generator. -Die an Sie gestellte Frage 'Sollen auch Anwendungs texte in die Menukarte aufge -nommen werden (j/n)?' beantworten Sie einfach mit n(ein). Auf dem Bildschirm -wird angezeigt, wie die Menukarte erstellt wird. Auf das Ende der Menukartengenerie -rung wird hingewiesen. Wenn Sie sich jetzt die Dateiliste Ihrer Task anzeigen lassen, -taucht dort eine Datei mit Namen 'gs-MENUKARTE:Kleine Textverarbeitung' auf - das -ist die neue Menukarte. -Sie möchten sicher gleich ausprobieren, ob das Menu Ihren Vorstellungen entspricht. -Geben Sie dazu das Kommando 'testinstallation ("gs-MENUKARTE:Kleine Textver -arbeitung")'. Bitte geben Sie den Text genauso ein wie hier angegeben! -Nach kurzer Zeit erscheint der Hinweis 'Installation abgeschlossen!'. Geben Sie nun -den Befehl 'handle menu ("SCRIPT")'; hierdurch aktivieren Sie das von Ihnen neu -erstellte Menu - es erscheint auf dem Bildschirm. - -Über den Befehl '#ib#testinstallation#ie#' haben Sie sich sicher gewundert. Ihnen ist ja -schon der Befehl '#ib#install menu#ie#' bekannt. Dieser Befehl aber kann hier nicht ein -fach angewendet werden - er ist für den (späteren) "regulären Betrieb" vorgesehen. -Bedenken Sie bitte zweierlei: Die Menukarte befindet sich nur in Ihrer Task, 'install -menu' fordert die Menukarte aber aus der Task 'gs-MENU KARTEN' an. Ist eine -Menukarte schon angekoppelt gewesen, so wird nicht erneut angekoppelt, sondern -auf die angekoppelte Menukarte zurückgegriffen. Dies alles können wir bei der -Menukartenerstellung nicht gebrauchen! -Der Befehl 'testinstallation' sendet automatisch die Menukarte zur Task -'gs-MENUKARTEN' und kennzeichnet Sie noch durch den eigenen Tasknamen (da -durch können sich beim Multiuserbetrieb unterschiedliche Anwender mit gleichem -Menukartennamen nicht gegenseitig stören). Die Menukarte wird anschließend in -jedem Falle 'frisch' angekoppelt, so daß Sie nach dem Befehl immer die aktuelle -Menukarte angekoppelt haben. Außerdem bleibt die Menukarte in Ihrer Task erhal -ten! - -Doch nun zur Erläuterung des oben notierten Programms: - -Ein Programm zur Erstellung einer Menukarte muß immer mit dem Befehl '#ib#oeffne -menukarte#ie#' beginnen und mit dem Befehl '#ib#schliesse menukarte#ie#' abgeschlos -sen werden. Der Befehl 'oeffne menukarte' hat einen Parameter (TEXT CONST) - -hierdurch wird festgelegt, welchen Namen die Menukarte haben soll. Durch das -Kommando 'oeffne menu karte ("Menu 1")' entsteht also die Menukarte 'gs-MENU -KARTE:Menu 1". -In die Menukarte können jetzt bis zu 6 Menus eingetragen werden. Jeder Eintrag -eines Menus beginnt mit dem Befehl '#ib#oeffne menu#ie#' und endet mit dem Befehl -'#ib#schliesse menu#ie#'. Der Befehl 'oeffne menu' hat hier einen Parameter (TEXT -CONST) - hierdurch wird festgelegt, welchen Namen das Menu erhalten soll. Unter -diesem Namen kann später das Menu angesprochen werden (z.B. 'handle menu -("SCRIPT")'. - -Den Befehl 'oeffne menu' gibt es noch in zwei weiteren Ausführungen: -Mit drei Textparametern - neben dem Namen des Menus können hier noch zwei -Prozedurnamen angegeben werden. Diese Prozeduren werden beim Einstieg in das -Menu bzw. beim Verlassen des Menus aufgerufen. Hiervon wird z.B. Gebrauch ge -macht, wenn das Archiv-Menu in eine Menukarte integriert ist: Wenn das Menu -verlassen wird, soll sichergestellt sein, daß das Archiv automatisch freigege ben wird. -Mehr hierüber erfahren Sie im Kapitel 6.1, in dem aufgezeigt wird, wie das Archiv- -Menu in andere Menus eingebunden wird. -Mit sechs Textparametern - neben den eben genannten drei Parametern können noch -drei Texte übergeben werden. Diese Texte werden beim Aufruf des Menus unten -rechts auf dem Bildschirm ausgegeben. Bei unseren Software-Produkten (z.B. -'gs-Herbert und Robbi') machen wir davon Gebrauch, um Hinweise auf das -Produkt, die Versionsnummer etc. zu geben. Die Hinweise bleiben nur kurz auf dem -Bildschirm und verschwinden nach kurzer Zeit automatisch, oder wenn Sie irgen -deine Taste tippen. Bei der Notation der Texte müssen Sie sich allerdings an einige -Regeln halten (sehen Sie dazu Kapitel 5.12). - -Zwischen den Befehlen 'oeffne menu' und 'schliesse menu' werden nun die Oberbe -griffe (Kopfzeile) und die zugehörigen Verarbeitungsfunktionen eingetragen. Dabei -müssen Sie sich genau an folgende Abfolge halten: -Zuerst wird jeweils der Oberbegriff genannt, der in der Kopfzeile auftauchen soll. -Direkt unter dem jeweiligen Oberbegriff werden die Menufunktionen eingetragen, die -im zugehörigen 'Pull-Down-Menu' als Verarbeitungsfunktionen angeboten werden -sollen. Die einzelnen Oberbegriffe mit Ihren zugehörigen Verarbeitungsfunktionen -werden blockweise hintereinander notiert. Dadurch ergibt sich die folgende Struktur: - - -oeffne menu ("Menuname"); - -oberbegriff ("Oberbegriff 1"); - -menufunktion ("1", "Verarbeitungsfunktion 1", "", ""); -menufunktion ("2", "Verarbeitungsfunktion 2", "", ""); -... - -oberbegriff ("Oberbegriff 2"); - -menufunktion ("1", "Verarbeitungsfunktion 1", "", ""); -menufunktion ("2", "Verarbeitungsfunktion 2", "", ""); -... - -oberbegriff ("Oberbegriff 3"); - -menufunktion ("1", "Verarbeitungsfunktion 1", "", ""); -menufunktion ("2", "Verarbeitungsfunktion 2", "", ""); -... - -... schliesse menu; - - -Die Oberbegriffe werden in die Kopfzeile von links nach rechts eingetragen. Maximal -können 10 Oberbegriffe eingetragen werden. Wählen Sie die Bezeichnungen nicht zu -lang, denn sie müssen alle neben dem Namen des Menus in der Kopfzeile Platz -finden (Ansonsten erhalten Sie hierauf bei der Menukartengenerierung einen Hin -weis, die Generierung wird abgebrochen!)! - -Den Befehl '#ib#oberbegriff#ie#' gibt es in zwei Versionen: -In der hier aufgezeigten Version mit einem (TEXT-) Parameter: Hierdurch wird der -Oberbegriff in der Kopfzeile festgelegt. In der zweiten Version hat der Befehl drei -(TEXT-)Parameter: Durch den ersten wird - wie eben - die Kopfzeilenbezeichnung -festgelegt. Daneben können noch zwei Prozedurnamen angegeben werden. Die -Prozedur mit dem erstgenannten Namen wird beim Einstieg (vor dem "Ausklappen" -des Pull-Down-Menus) ausgeführt, die Prozedur mit dem zweitgenannten Namen vor -dem Ausstieg ("Einklappen"). Beim 'Archiv-Pull-Down-Menu' machen wir hiervon -Gebrauch. Beim Einstieg wird dafür gesorgt, daß nur bestimmte Verarbeitungsfunk -tionen aktivierbar sind; beim Ausstieg wird sichergestellt, daß das Archivlaufwerk -automatisch freigegeben wird. - -Unter einem Oberbegriff können Sie bis zu 15 Verarbeitungsfunktionen in ein Pull- -Down-Menu eintragen. Die Verarbeitungsfunktionen können Sie optisch vonein ander -trennen. Dafür steht der Befehl '#ib#trennlinie#ie#' zur Verfügung. Aber beachten Sie, er -belegt den gleichen Platz wie eine Verarbeitungsfunktion. - -Zum Eintragen einer Verarbeitungsfunktion steht der Befehl '#ib#menufunktion#ie#' zur -Verfügung. Der Befehl besitzt vier (TEXT-)Parameter. Die ersten beiden Parameter -werden auch auf dem Bildschirm ausgegeben. -Der erste Parameter legt fest, über welche Taste diese Verarbeitungsfunktion direkt -zur Ausführung gebracht werden kann. Wenn eine Eintragung erfolgt, muß diese aus -genau einem Zeichen bestehen. Innerhalb eines Pull-Down-Menus muß dieses -Zeichen eindeutig sein, d.h. es darf nur einmal verwendet werden. Ansonsten er -scheint bei der Menugenerierung eine Fehlermeldung. -Der zweite Parameter ist die Bezeichnung der Verarbeitungsfunktion, die dem Be -nutzer im Pull-Down-Menu angeboten wird. Wählen Sie die Bezeichnung bitte immer -prägnant und möglichst mit dem Buchstaben beginnend, den Sie auch als ersten -Parameter angegeben haben! Der Länge dieser Bezeichnung ist nur durch die Bild -schirmbreite (nicht mehr als 60 Zeichen) begrenzt, allerdings wählt gs-DIALOG die -Breite des Pull-Down-Menus nach der längsten Bezeichnung, die im jeweiligen Pull- -Down-Menu auftritt. Wenn die Bezeichnungen ganz unterschiedlich lang sind, sieht -das nicht sonderlich gut aus, aber probieren Sie es ruhig einmal aus und entscheiden -Sie selbst. - -Der dritte Parameter ist der Name der Prozedur, die bei der Aktivierung der Verarbei -tungsfunktion ausgewählt werden soll. Zum Zeitpunkt der Erstellung und des Testens -des Menusystems braucht diese Prozedur noch nicht zu existieren. Damit ist es -möglich, die Menuentwicklung völlig unabhängig von der Entwicklung der Verarbei -tungsfunktionen zu betreiben; Sie brauchen nur die späteren Namen der aufzurufen -den Prozeduren festzulegen! Aktivieren Sie eine solche Verarbeitungsfunktion im -Pull-Down-Menu, die noch nicht fertiggestellt ist, so erscheint der Hinweis 'unbe -kanntes Kommando' - das kann aber auch geschehen, wenn die Verarbeitungsfunk -tion schon existiert, Sie aber bei der Eintragung einen (Schreib-)Fehler gemacht -haben! - -Der vierte Parameter ist der Text, der als sogenannter Infotext ausgegeben wird wenn -Sie auf die entsprechende Verarbeitungsfunktion positioniert haben und hier die -<?>-Taste tippen. In unserem Beispiel haben wir keinen Infotext eingetragen. -Versuchen Sie im Menu jetzt die <?>-Taste zu tippen, so erscheint der Hinweis -'Leider ist zu diesem Menupunkt kein Info-Text eingetragen!'. Für die Handhabung -des Menus sind diese Informationstexte nicht wichtig, sie dienen ausschließlich der -Information des Benutzers. -Die Arbeit zur Formulierung/Abfassung dieser Texte sollten Sie nicht unterschätzen. -Sie sollten sich bei einer ernsthaften Anwendung aber diese Arbeit machen. Gerade -der Anfänger, der mit Ihrem Menusystem arbeitet, wird Ihnen diese Arbeit danken. -Wie Sie diese Texte komfortabel erstellen und in die Menutafel einbinden können, -erklären wir Ihnen im nächsten Kapitel. - - -#ib#4.2 Erstellung und Einbinden von Informationstexten#ie# - -Bisher haben wir noch keine Informationstexte zu den Menupunkten in die Menu -karte eingetragen. Diese Eintragung erfolgt über den vierten Parameter des Befehls -'menufunktion'. Möchten Sie dort nur einige wenige Worte eintragen, so kann das -direkt geschehen. Meist aber sind die Informationen zu einem Menupunkt doch -länger, sie erstrecken sich über mehrere Zeilen. -Zur Übergabe des Informationstextes steht aber nur ein Textparameter zur Verfügung. -Würde man längere Texte direkt eintragen, wäre das bei der Menukartenerstellung -sicher sehr unübersichtlich. Zum anderen benötigt gs-DIALOG den Text schon in -aufbereiteter Form, d.h. es müssen z.B. Zeilenenden etc. kenntlich gemacht wer den. -Damit Sie sich nun nicht alle Regeln der Texterstellung für gs-DIALOG merken -müssen, bietet Ihnen gs-Menu-Generator eine komfortable Möglichkeit, diese -Informationstexte zu entwickeln. Wir wollen das an einem Beispiel verdeutlichen: - -Erzeugen Sie sich eine Datei mit dem Namen 'Textprobe' und schreiben Sie z.B. -folgenden Text, der ein Informationstext zum Menupunkt 'Neu erstellen' sein könnte, -hinein: - -Text neu erstellen - -Das System erfragt zunächst den Namen für die Datei, in die -der neue Text geschrieben werden soll. Anschließend wird eine -leere Datei mit dem gewünschten Namen zum Beschreiben -angeboten. -Das Schreiben in eine solche Datei wird durch viele Hilfen -erleichtert. Deshalb ist es ratsam, sich nach und nach mit -den Möglichkeiten, die der Editor bietet, vertraut zu machen. -Die Möglichkeiten sind im EUMEL-Benutzerhandbuch ausführlich -beschrieben. - -Verlassen Sie nun die Datei und geben Sie in der 'gib kommando:'-Ebene folgendes -Kommando: - - #ib#textprozedur#ie# ("Textprobe", "mein erster infotext") - -Auf dem Bildschirm erscheint zunächst der Hinweis 'Bitte warten ...', anschließend -werden Sie - wie aus der Textverarbeitung (lineform) bekannt - aufgefordert, entspre -chende Trennungen vorzunehmen. -Das eben eingegebene Kommando bewirkt nämlich, daß der in der Datei 'Textprobe' -enthaltene Text für gs-DIALOG so aufbereitet wird, daß er in einer Box innerhalb des -Menus eingeblendet werden kann. Die Zeilen werden auf die entsprechende Länge -zugeschnitten und der Text in den Zeilen wird geblockt, soweit Sie keine Absatzmarke -(<RETURN>) gesetzt haben. -Der so den Regeln von gs-DIALOG entsprechend aufbereitete Text wird automatisch -in eine Textprozedur "verpackt", die den von Ihnen als zweiten Parameter übergebe -nen Namen erhält. Beachten Sie deshalb bei der Festlegung des Namens, daß er mit -einem Kleinbuchstaben beginnt und weiterhin nur Kleinbuchstaben, Ziffern und -Leerzeichen enthält! -Diese Textprozedur finden Sie anschließend in der Datei 'Textprobe.a'. An der En -dung '.a' können Sie erkennen, daß in dieser Datei ein "aufbereiteter" Text enthalten -ist. -Wenn Sie sich, nachdem auf dem Bildschirm der Hinweis 'Textprozedur ist erstellt!' -erschienen ist, die Datei 'Textprobe.a' ansehen, so hat diese folgenden Inhalt: - - -TEXT PROC mein erster infotext: -" Text neu erstellen "13"" + -" "13"" + -" Das System erfragt zunächst den Namen für die Datei, in die der "13""+ -" neue Text geschrieben werden soll. Anschließend wird eine leere "13""+ -" Datei mit dem gewünschten Namen zum Beschreiben angeboten. "13""+ -" Das Schreiben in eine solche Datei wird durch viele Hilfen er-"13""+ -" leichtert. Deshalb ist es ratsam, sich nach und nach mit den Mög-"13""+ -" lichkeiten, die der Editor bietet, vertraut zu machen. "13"" + -" Die Möglichkeiten sind im EUMEL-Benutzerhandbuch ausführlich be-"13""+ -" schrieben. " -END PROC mein erster infotext; - - -Kopieren Sie nun den Inhalt der Datei 'Textprobe.a' in die Datei, in die Sie das Pro -gramm zur Generierung Ihrer Menukarte geschrieben haben und ergänzen Sie die -Ein tragung beim ersten Menupunkt in folgender Weise: - - -TEXT PROC mein erster infotext: -" Text neu erstellen "13"" + -" "13"" + -" Das System erfragt zunächst den Namen für die Datei, in die der"13""+ -" neue Text geschrieben werden soll. Anschließend wird eine leere"13""+ -" Datei mit dem gewünschten Namen zum Beschreiben angeboten. "13""+ -" Das Schreiben in eine solche Datei wird durch viele Hilfen er-"13""+ -" leichtert. Deshalb ist es ratsam, sich nach und nach mit den Mög-"13""+ -" lichkeiten, die der Editor bietet, vertraut zu machen. "13""+ -" Die Möglichkeiten sind im EUMEL-Benutzerhandbuch ausführlich be-"13""+ -" schrieben. " -END PROC mein erster infotext; - -oeffne menukarte ("Kleine Textverarbeitung"); -oeffne menu ("SCRIPT"); - -oberbegriff ("Bearbeiten"); - -menufunktion ("n", "Neu erstellen", "neue datei editieren", - mein erster infotext); -menufunktion ("a", "Ansehen/Ändern","alte datei editieren", ""); -trennlinie; -menufunktion ("v", "Verzeichnis", "verzeichnis ausgeben", ""); -trennlinie; -menufunktion ("z", "Zeilenformatierung", "zeilen formatieren", ""); -menufunktion ("s", "Seitenformatierung", "seiten formatieren", ""); - -schliesse menu; -schliesse menukarte; - - -Starten Sie erneut das Programm mit 'run' und erstellen Sie dadurch eine neue -Menukarte. Installieren Sie anschließend die neue Menukarte mit dem Kommando -'test installation ("gs-MENUKARTE:Kleine Textverarbeitung")' und bringen Sie das -Menu mit dem Kommando 'handle menu ("SCRIPT")' zur Ausführung. Wenn Sie jetzt -auf dem Menu punkt 'n Neu erstellen' die <?>-Taste tippen, erscheint der von -Ihnen eingegebene Infotext in einer Box innerhalb des Menus. Die Größe der Box -wird automatisch durch den Text bestimmt. Die Box ist maximal 65 Zeichen breit -und 14 Zeilen hoch. - -Nachdem Sie nun in der Lage sind, solche Informationstexte zu erstellen und sie in -die Menukarte einzubinden, möchten wir Ihnen noch einige Möglichkeiten der -"Kosmetik solcher Informationstexte" aufzeigen. -Häufig möchte man die Überschrift eines solchen Informationstextes zentriert über -dem Text dargestellt haben. Das läßt sich auch hier einfach bewerkstelligen: Schrei -ben Sie dazu als erstes Zeichen der Zeile, die zentriert werden soll, das Zeichen '%' -und schließen Sie die Zeile mit einer Absatzmarke (<RETURN>) ab. -Möchten Sie innerhalb des Textes eine Textpassage invers dargestellt haben, so kenn -zeichnen Sie den Anfang der Inversdarstellung durch das Zeichen '$' und das Ende -der Inversdarstellung durch das Zeichen '&'. Der Text wird anschließend entspre -chend aufbereitet. Allerdings sollte die Textpassage nicht über Zeilengrenzen hinaus -gehen! -Möchten Sie in unserem Beispiel die Überschrift zentriert und invers dargestellt -haben, so ersetzen Sie die erste Zeile der Datei 'Textprobe' durch die Zeile: %$Text -neu erstellen&. Wenn Sie anschließend den gesamten oben beschriebenen Vorgang -wiederholen, erscheint die Überschift zentriert und invers dargestellt innerhalb der -Box im Menu. - - -#ib#4.3 Auslagerung von anwendungsbezogenen Texten in die -Menukarte#ie# - -Wie schon in Kapitel 3.2 erwähnt, kann der Anwendungsprogrammierer bis zu 2000 -Texte aus seinen Programmen in die Menukarte auslagern, um so den Umfang an -Paketdaten geringer zu halten, allerdings darf die Gesamtkapazität einer Menukarte -(eines Datenraumes) dabei nicht überschritten werden. - -Die Texte müssen in einer Datei zeilenweise notiert sein. Sie müssen (wie TEXT-Deno -ter) in Anführungsstriche eingefaßt sein, allerdings dürfen die Texte länger als -(normale) TEXT-Denoter (255 Zeichen) sein. Innerhalb der Textzeile dürfen auch die -Ausgabecodes "4", "5", "7", "10", "13", "14", und "15" verwendet werden. Innerhalb -der Textzeile darzustellende Anführungszeichen unterliegen den gleichen Besonder -heiten wie sonst auch bei TEXT-Denotern. -Machen wir ein Beispiel! Schreiben Sie in eine Datei mit Namen 'Neue Texte' die -folgenden Zeilen: - -"Dieses ist der erste eingetragene Text!" -"Hier ist eine "15"Markierung"14" im Text!" -"Dieses ist die letzte Zeile!" - -Um diese Texte in die Menukarte einzubinden, starten Sie jetzt noch einmal Ihr -Generierungprogramm für die Menukarte. Auf die Frage 'Sollen auch Anwendungstex -te in die Menukarte aufgenommen werden (j/n) ?' antworten Sie jetzt allerdings mit -j(a). Daraufhin werden Ihnen die in Ihrer Task vorhandenen Dateien zur Auswahl -angeboten. Kreuzen Sie die Datei 'Neue Texte' an, in der ja die eben genannten Texte -eingetragen sind. -Bei der Menukartengenerierung werden die Texte aus der Datei in die Menukarte -eingebunden. Sollten Sie bei Notierung der Texte in der Datei formale Fehler gemacht -haben, so werden Sie darauf hingewiesen. -Um nun auf die eingelagerten Texte zurückgreifen zu können, muß erst einmal die -neue Menukarte angekoppelt werden. Wie das geht, wissen Sie ja schon ('testin stalla -tion'). -Mit dem Befehl '#ib#anwendungstext#ie# (INT CONST zeilennummer)' (1 <= zeilen -nummer <= 2000) wird Ihnen nun der Text, der in der angegebenen Zeile steht, -geliefert. Probieren Sie es doch gleich an Ihrer Menukarte aus: 'put (anwendungs -text (1))', 'put (anwendungstext (2))' usw.. Die eingelagerten Texte müßten jetzt auf -dem Bildschirm erscheinen. Geben Sie eine Zeilennummer an, die nicht belegt ist, so -wird der Text 'Kein Text vorhanden!' geliefert. - -Es können natürlich auch Texte abgelegt werden, die von gs-DIALOG aus aufgegrif -fen werden. Zur Konvertierung von Informationstexten steht die Prozedur '#ib#text zeile#ie# -(TEXT CONST dateiname)' zur Verfügung. Diese Prozedur arbeitet genauso wie die -Prozedur 'textprozedur', nur wird in der Ausgabedatei ('dateiname.a') der formatierte -Text nicht als Textprozedur, sondern als einzeiliger Text geliefert. Sie können aber -auch für gs-DIALOG Texte "von Hand" gestalten. Dazu müssen Sie sich an die -Regeln für die Texte für gs-DIALOG halten, die in Kapitel 5.12 erläutert sind. - - diff --git a/doc/menugenerator/menu-generator handbuch.5 b/doc/menugenerator/menu-generator handbuch.5 deleted file mode 100644 index c002f1a..0000000 --- a/doc/menugenerator/menu-generator handbuch.5 +++ /dev/null @@ -1,975 +0,0 @@ -#block##pageblock# -#pagenr("%",1)##setcount(1)##count per page# -#headeven# -gs-Menu-Generator -#center#____________________________________________________________ - -#end# -#headodd# -#right#gs-Menu-Generator -#center#____________________________________________________________ - -#end# -#bottomeven# -#center#____________________________________________________________ -5 - % #right#ERGOS -#end# -#bottomodd# -#center#____________________________________________________________ -ERGOS #right# 5 - % -#end# -#ib#5 Dialoge innerhalb des Menus#ie# - - -In Kapitel 4 haben Sie erfahren, wie Sie eine eigene Menukarte entwickeln können; -sicher haben Sie das schon ausprobiert und sich Ihr selbstgestaltetes Menu auf dem -Bildschirm angesehen. Bislang erscheint aber noch der Hinweis 'unbekanntes Kom -mando', wenn Sie eine Menufunktion aktivieren - denn die Prozeduren, die Sie bei -der Aktivierung der Menufunktion aufrufen, sind ja noch nicht fertiggestellt! -Bei vielen Menufunktionen ist es notwendig, mit dem Benutzer noch einen Dialog zu -führen: z.B. muß ein Dateiname erfragt, eine Information ausgegeben und bestätigt, -eine Auswahl oder eine Entscheidung getroffen werden. In diesem Kapitel sollen -Ihnen nun die Möglichkeiten vorgestellt werden, die Ihnen zur Verfügung stehen, um -einen solchen Dialog mit dem Benutzer zu führen. Dieser Dialog wird innerhalb des -Menus geführt. Alle Prozeduren, die sich auf diesen Menu-Dialog beziehen, enthalten -deshalb den Wortbestandteil 'menu'. - -Hier noch einige Tips! Damit Sie Ihre Menu-Dialoge testen können, empfiehlt -sich folgendes Vorgehen: Sie erstellen zuerst Ihre Menukarte und tragen schon die -Namen für die jeweils aufzurufenden Prozeduren ein - wie wir es in Kapitel 4 ge -macht haben. Mit 'testinstallation' installieren Sie dann in Ihrer Task die neue Menu -karte. -Nun schreiben Sie Ihre Prozeduren, die Sie unter das Menu legen wollen. Ist eine -Prozedur "testreif", so müssen Sie sie zunächst insertieren, denn das Menusystem gs- -DIALOG kann nur auf insertierte Prozeduren zugreifen. Anschließend rufen Sie das -Menu (z.B. 'SCRIPT') aus der Menukarte mit dem Befehl 'handle menu ("SCRIPT")' -(Hier ist der jeweilige Menuname einzusetzen!) auf. Wenn Sie den entsprechenden -Menupunkt aktivieren, müßte Ihr Programm ablaufen. -Es ist günstig, eine eigene Task zum Testen der Prozeduren anzulegen, damit diese -hin und wieder gelöscht werden kann. - - -#ib#5.1 Eingabe eines Textes/Namens#ie# ('#ib#menuanswer#ie#') - -Wenn der Benutzer in unserem Beispiel die Menufunktion 'Neu erstellen' aktiviert -hat, muß der Name der Datei erfragt werden, die neu erstellt werden soll. Dafür steht -die Prozedur 'menuanswer' zur Verfügung. Die in die Menukarte eingetragene Proze -dur 'neue datei editieren' (Siehe Kapitel 4.1) könnte dann folgendermaßen aussehen: - - -PROC neue datei editieren: - TEXT VAR dateiname := menuanswer ("Bitte den gewünschten Dateinamen:", - "", 5); - IF dateiname <> "" AND NOT exists (dateiname) - THEN command dialogue (FALSE); #ib#cursor on#ie#; - edit (dateiname); - #ib#cursor off#ie#; command dialogue (TRUE); - regenerate menuscreen (* sehen Sie dazu Kapitel 5.10 *) - FI -END PROC neue datei editieren; - - -Schauen wir uns zuerst die Prozedur 'menuanswer' an. Die Prozedur hat drei Para -meter. Mit dem ersten Parameter legen Sie den Text fest, der innerhalb der Box -ausgegeben wird, die auf dem Bildschirm erscheint. Der Text dient ausschließlich der -Information des Anwenders. -Mit dem zweiten Parameter können Sie dem Benutzer einen Vorschlag für die Einga -be machen, der zum Editieren ausgegeben wird. Da eine solche Vorgabe aber in die -ser Situation sinnlos wäre, verzichten wir darauf (""). - -Die auf dem Bildschirm erscheinende Box hat folgendes Aussehen: - - +-------------------------------------+ - I Bitte den gewünschten Dateinamen: I - I I - I I - I Eingabe: I - +-------------------------------------+ - - -Die Boxbreite und -höhe wird vom System automatisch anhand des von Ihnen als -ersten Parameter übergebenen Textes festgelegt. Sie haben noch verschiedene Mög -lichkeiten, diesen Text zu gestalten (mehrere Zeilen, Inversdarstellung etc.) - auf -diese Möglichkeiten gehen wir in Kapitel 5.13 detailliert ein. -In unserem Beispiel erscheint die Box in der Mitte des Menubildschirms. Diese -Festlegung treffen wir durch die Angabe der Position '5' als dritten Parameter. Sie -können hier zwischen 5 verschiedenen Positionen wählen: 1 - oben links, 2 - oben -rechts, 3 - unten links, 4 - unten rechts, 5 - zentral im Menubildschirm - mehr dazu -in Kapitel 5.12. - -Mit dem Erscheinen der obigen Box auf dem Bildschirm ändert sich automatisch -auch die Fußzeile im Menu, über die der Benutzer Informationen zur Bedienung -erhält. Hier erscheint der Hinweis: 'Fertig: <RETURN> Abbruch: <ESC><h>'. -Um diese Hinweise brauchen Sie sich aber nicht zu kümmern , da sie alle automa -tisch gesetzt werden. -Die Prozedur 'menuanswer' hat noch folgende Besonderheit: Es ist nicht möglich, -den Namen 'break' einzugeben! Diese Eingabe wird automatisch abgefangen. Es hat -sich gezeigt, daß Anwender manchmal versuchen, über <ESC><q> die Eingabe -zu verlassen. In diesem Falle entstünde hier eine Datei mit Namen 'break' - was aber -nicht sinnvoll wäre. -Nach der Eingabe liefert die Prozedur 'menuanswer' als Wert den vom Benutzer -eingegebenen Text - dabei sind führende und folgende Leerzeichen schon abgeschnit -ten ('compress'). Wurde die Prozedur mit <ESC><h> verlassen, so wird niltext -geliefert. - -Wird in obiger Prozedur die Eingabe mit <ESC><h> abgebrochen oder existiert -bereits eine Datei mit dem eingegebenen Namen, so verschwindet die Box, und der -Menubildschirm wird automatisch in den alten Zustand gebracht. -Wenn schon eine Datei mit dem Namen existiert, dann wäre es sinnvoll, den Benutzer -darauf aufmerksam zu machen. Wie ein solcher Hinweis in das Menu eingeblendet -werden kann, erklären wir im Kapitel 5.2. - -gs-DIALOG ist so geschrieben, daß der Cursor möglichst wenig störend wirkt. Aus -diesem Grunde wird der Cursor immer an einer Stelle "geparkt". Sofern Ihr System es -zuläßt und eine entsprechende Anpassung vorliegt, wird der Cursor ganz ausgeschal -tet. Denken Sie bitte daran, auch wenn er auf Ihrem Bildschirm ständig sichtbar ist! -Wenn also jetzt eine Eingabe erfolgen soll, ist es notwendig, den Cursor anzuschalten. -Wenn Sie wieder in das Menu zurückkehren, sollte der Cursor wieder ausgeschal -tet werden, damit er dort nicht stört. -Wenn Sie die Prozedur 'edit' mit einem neuen Namen als Parameter aufrufen, erfragt -das System, ob die Datei neu eingerichtet werden soll. Diese Anfrage muß hier unter -drückt werden, damit nicht irgendwelche Texte in den Menubildschirm geschrieben -werden. Das Unterdrücken der Abfrage erreichen Sie durch Ausschalten des Kom -mandodialoges. Nach Einrichten der Datei muß der Kommandodialog aber wieder -eingeschaltet werden, da gs-DIALOG das Eingeschaltetsein für eine fehlerfreie Funk -tion voraussetzt! - -Mit dem Befehl '#ib#regenerate menuscreen#ie#' (sehen Sie dazu auch Kapitel 5.10) wird der -aktuelle Menubildschirm erneut vollständig auf den Bildschirm geschrieben (repro -duziert). Das ist notwendig, weil die Prozedur 'edit' den Bildschirm benutzt hat. -Durch diesen Befehl wird der Menubildschirm exakt in der Form hergestellt, wie er -zuletzt ausgesehen hat. Auch wenn Sie geschachtelte Menubildschirme haben, wer -den diese durch den einen Befehl reproduziert. So können Sie in Ihren Verarbei -tungsfunktionen mit dem Bildschirm "machen was Sie wollen" - Sie kehren mit dem -letztgenannten Befehl immer wieder so in das Menu zurück, wie Sie es verlassen -haben. - - -#ib#5.2 Ausgabe einer Information#ie# ('#ib#menuinfo#ie#') - -In der Prozedur 'neue datei editieren' (Kapitel 5.1) wäre es sinnvoll, den Benutzer zu -informieren, wenn bereits eine Datei mit dem eingegebenen Namen existiert. Hierfür -steht die Prozedur 'menuinfo' zur Verfügung. - -Beispiel: - -menuinfo (" Eine Datei mit dem Namen "13" existiert schon!"); - -Dadurch wird folgende Box ins Menu geschrieben: - - +----------------------------+ - I I - I Eine Datei mit dem Namen I - I existiert schon I - I I - +----------------------------+ - -Die Box erscheint in der Mitte des Menus (Position 5); in der Fußzeile wird der Hin -weis ausgegeben 'Zum Weitermachen bitte irgendeine Taste tippen!'. Dann wartet das -System so lange, bis eine Taste gedrückt wird. Anschließend wird der aktuelle Menu -schirm wiederhergestellt. -Die Prozedur 'menuinfo' gibt es noch in zwei weiteren Versionen, nämlich mit zwei -bzw. drei Parametern. Im ersten Fall kann über den zweiten Parameter noch die -Position (1, 2, 3, 4, 5) innerhalb des Menubildschirmes festgelegt werden (sehen Sie -dazu Kapitel 5.12). Mit dem dritten Parameter kann ggf. noch die Wartezeit festgelegt -werden, die das System maximal verstreichen läßt, bevor es von sich aus das Pro -gramm fortsetzt. - -'menuinfo (" Eine Datei mit dem Namen "13" existiert schon!", 3, 40)' - -gibt die oben gezeigte Box aus, aber links unten in der Ecke des Menubildschirms -(Position 3). Das System wartet (maximal) 4 Sekunden (40 Zehntel) und setzt dann - -auch ohne Tastendruck - das Programm fort. Diese Prozedur mit gesondert angege -bener Wartezeit verwendet man dann, wenn man nicht unbedingt die Kenntnisnahme -der Information durch den Benutzer bestätigt haben möchte. - - -#ib#5.3 Auswahl eines Namen durch Ankreuzen#ie# ('#ib#menuone#ie#') - -Während bei der Neuerstellung einer Datei ein Name neu erfragt werden muß, kann -man beim Menupunkt 'Ansehen/Ändern' auf schon vorhandene Dateien zugreifen. -Sie können dem Benutzer z.B. alle Dateien in der Task zur Auswahl anbieten. Sobald -der Benutzer einen Namen angekreuzt hat, soll die entsprechende Datei geöffnet wer -den. Dafür steht der Befehl 'menuone' zur Verfügung: - - -PROC alte datei editieren: - TEXT CONST kopf :: "Textdatei ansehen/ändern", - hinweis :: "Bitte gewünschte Datei ankreuzen"; - TEXT VAR dateiname := menuone (ALL myself, kopf, hinweis, FALSE); - IF dateiname <> "" - THEN #ib#cursor on#ie#; - edit (dateiname); - #ib#cursor off#ie#; - FI; - regenerate menuscreen -END PROC alte datei editieren; - - -Die Prozedur 'menuone' hat 4 Parameter: Als erster Parameter ist ein Thesaurus zu -übergeben, in dem die zur Auswahl stehenden Namen enthalten sind. Zum Thesau -rushandling werden noch einige zusätzliche Funktionen zur Verfügung gestellt (z.B. -daß nur Dateien eines bestimmten Typs zur Auswahl angeboten werden können) - -diese Funktionen werden in Kapitel 5.14 erläutert. In unserem Beispiel werden alle -Dateien zur Auswahl angeboten, die in der Task zur Verfügung stehen. -Die beiden Texte, die als 2. und 3. Parameter übergeben werden, erscheinen zur -Kennzeichnung im Kopf der Auswahlliste. Der als zweiter Parameter übergebene Text -erscheint zentriert und invers dargestellt auf dem Bildschirm, der als dritter Parame -ter übergebene Text nur zentriert. Es ist sinnvoll, mit dem ersten Text (2.Parame -ter) die zur Zeit aktivierte Menufunktion anzuzeigen, denn der Menubildschirm wird -ja durch die Auswahlliste überschrieben. So kann sich der Benutzer besser im Menu -system orientieren. -Mit dem 4. Parameter wird festgelegt, ob der Bildschirm nach der Auswahl "ge -reinigt", d.h. der alte Menubildschirm wiederhergestellt werden soll. Da in unserem -Falle normalerweise im Anschluß an die Auswahl eine Datei auf dem Bildschirm -editiert wird, verzichten wir auf die "automatische Regenerierung" des Menubild -schirms. Dieses besorgen wir nach dem Editieren durch das Kommando 'regenerate -menuscreen' "von Hand". -Auf das Fenster, das für die Auswahl auf dem Bildschirm angezeigt wird, können Sie -keinen Einfluß nehmen - es wird vom System selbständig festgelegt. Dadurch können -Sie die Auswahl, wie auch die anderen Dialogkomponenten ebenso in geschachteleten -Menus aufrufen, ohne daß es zu Problemen kommt. - - -#ib#5.4 Auswahl mehrerer Namen durch Ankreuzen#ie# ('#ib#menusome#ie#') - -Es ist nicht immer sinnvoll, daß der Benutzer nur einen Namen auswählen, d.h. -ankreuzen kann. Bei der Zeilenformatierung könnte man z.B. zulassen, daß gleich -mehrere Dateinamen angekreuzt werden können. Im Anschluß an die Auswahl sollen -dann alle angekreuzten Dateien mit 'lineform' bearbeitet werden. Für diesen Zweck -steht die Prozedur 'menusome' zur Verfügung. Sie hat die gleichen Parameter wie die -in 5.3 erläuterte Prozedur 'menuone' - nur daß hier die Auswahl mehrerer Namen -möglich ist. Verläßt der Benutzer die Auswahl durch <ESC><q>, so wird ein -Thesaurus mit allen angekreuzten Namen geliefert; bei Verlassen mit <ESC><h> -ein leerer Thesaurus. Beispiel: - - -PROC zeilen formatieren: - TEXT CONST kopf :: "Textdateien zeilenweise formatieren", - hinweis :: "Bitte gewünschte Dateien ankreuzen"; - THESAURUS VAR dateinamen := menusome (ALL myself, kopf, hinweis, - FALSE); - cursor on; - formatiere dateien; - cursor off; - regenerate menuscreen. - - formatiere dateien: - INT VAR zaehler; - FOR zaehler FROM 1 UPTO highest entry (dateinamen) REP - IF name (dateinamen, zaehler) <> "" - THEN lineform (name (dateinamen, zaehler)) - FI - PER -END PROC zeilen formatieren; - - - -#ib#5.5 Eingabe eines Textes/Namens - alternativ: Auswahl - durch Ankreuzen#ie# ('#ib#menuanswerone#ie#','#ib#menuanswersome#ie#') - -Sehr häufig kommt es vor, daß der Benutzer auf die zuletzt bearbeitete Datei zurück -greifen will. In Kapitel 5.3 haben wir dem Benutzer bei der Menufunktion 'Anse -hen/Ändern' gleich alle Dateien zur Auswahl angeboten. Hier wäre es vielleicht gün -stiger gewesen, ihm die zuletzt bearbeitete Datei anzubieten und erst auf Wunsch die -Liste aller Dateien zum Ankreuzen. Das läßt sich auf verschiedene Weise realisieren - -wir werden Ihnen in diesem und in den folgenden Kapiteln verschiedene Möglich -keiten aufzeigen: - -Sie können z.B. mit der Prozedur 'menuanswerone' arbeiten. Wie Sie schon aus dem -Namen entnehmen können, handelt es sich dabei um eine Prozedur, die eigentlich -aus zwei Prozeduren, nämlich 'menuanswer' und 'menuone' zusammengesetzt ist. -Stellen Sie sich vor, sie führen den Namen der zuletzt bearbeiteten Datei in Ihrem -Programm unter der Variablen 'letzte datei'. Dann könnte die Prozedur 'alte datei -editieren' aus Kapitel 5.3 auch folgendermaßen geschrieben werden: - - -TEXT VAR letzte datei; -... - - -PROC alte datei editieren: - TEXT CONST hinweis letzte :: "Zuletzt bearbeitete Datei:", - kopf :: "Textdatei ansehen/ändern", - hinweis :: "Bitte gewünschte Datei ankreuzen"; - TEXT VAR dateiname := menuanswerone (hinweis letzte, - letzte datei, - ALL myself, kopf, - hinweis, FALSE); - IF dateiname <> "" - THEN cursor on; - edit (dateiname); - letzte datei := dateiname; - cursor off; - FI; - regenerate menuscreen -END PROC alte datei editieren; - - -Insgesamt hat die Prozedur 6 Parameter: Die ersten beiden Parameter beziehen sich -auf die Eingabe ('menuanswer'). Wie dort kann auch hier der Text festgelegt werden, -der in der Box auf dem Bildschirm erscheint. -Der zweite Parameter ist der Text, der dem Benutzer zum Editieren angeboten wird - -hier der zuletzt benutzte Dateiname. Möchte der Benutzer auf die Datei mit dem an -gebotenen Namen zugreifen, braucht er nur mit <RETURN> zu bestätigen. -Möchte er die Auswahl zum Ankreuzen angeboten bekommen, so braucht er nur die -Tastenfolge <ESC><z> (für 'Zeigen') zu tippen. Auf diese Auswahl beziehen sich -die letzten 4 Parameter, die die gleiche Bedeutung haben wie bei der Prozedur -'menuone'. Auf die Möglichkeit, durch <ESC><z> eine Auswahl angeboten zu -bekommen, wird in der Fußzeile des Menus hingewiesen. - -Aber Achtung! Sie sollten sich einer "Gefahr" bei diesem Vorgehen bewußt sein. Der -Benutzer hat natürlich so die Möglichkeit, auch einen anderen Namen als den vorge -schlagenen anzugeben - einen Namen, der noch nicht in der Dateiliste enthalten ist. -In einem solchen Falle würde Ihnen bei obiger Prozedur der Menubildschirm "ka -puttgeschrieben", denn das System fragt (bei eingeschaltetem Kommandodialog) an, -ob eine Datei mit dem Namen eingerichtet werden soll. Für diesen Fall sollten Sie also -unbedingt eine Vorsorge treffen (z.B. indem Sie den Benutzer darauf hinweisen, daß -der eingegebene Name nicht akzeptiert wird)! - -Sie vermuten sicher schon ganz richtig, daß es entsprechend auch die Prozedur -'menuanswersome' gibt, die zunächst einen Dateinamen erfragt und auf Wunsch -eine Auswahl anbietet, in der mehrere Dateinamen angekreuzt werden können. Die -Prozedur hat ebenfalls 6 Parameter, die identisch zur Prozedur 'menuanswerone' -sind. Allerdings liefert die Prozedur 'menuanswersome' in jedem Fall einen Thesau -rus; wurde die Auswahl mit <ESC><h> abgebrochen, so liefert sie einen leeren -Thesaurus. - - -#ib# 5.6 Die Ja/Nein - Entscheidung#ie# ('#ib#menuyes#ie#','#ib#menuno#ie#') - -In Kapitel 5.5 trat das Problem auf, daß der Benutzer einen "unzulässigen" Namen -eingeben konnte. Dieses Problem können wir umgehen: Wir fragen den Benutzer ein -fach, ob er mit der zuletzt bearbeiteten Datei arbeiten will und lassen Ihm nur die -Chance, mit 'Ja' oder 'Nein' zu antworten. Im ersten Fall bieten wir ihm eben diese -Datei an - ansonsten die Auswahl zum Ankreuzen. - -Hierfür stehen die Prozeduren 'menuyes' und 'menuno' zur Verfügung, die von Ihrer -Funktion her den Ihnen bekannten Prozeduren 'yes' und 'no' gleichen. Die beiden -Menu-Prozeduren haben jeweils zwei Parameter: - - -TEXT VAR letzte datei; -... - -PROC alte datei editieren: - TEXT CONST kopf :: "Textdatei ansehen/ändern", - hinweis :: "Bitte gewünschte Datei ankreuzen"; - TEXT VAR dateiname; - IF menuyes (" Wollen Sie mit der Datei "13"" + - " '" +letzte datei+ "'"13" arbeiten", 5) - THEN editiere letzte datei - ELSE dateiname := menuone (ALL myself, kopf, hinweis, FALSE); - editiere ausgewaehlte datei - FI; - regenerate menuscreen. - - editiere letzte datei: - cursor on; edit (letzte datei); cursor off. - - editiere ausgewaehlte datei: - IF dateiname <> "" - THEN cursor on; edit (dateiname); cursor off; - letzte datei := dateiname - FI -END PROC alte datei editieren; - - -Über den zweiten Parameter legen Sie die Position auf dem Bildschirm innerhalb des -Menus fest (1, 2, 3, 4, 5; sehen Sie auch Kapitel 5.12). Der erste Parameter ist ein -Text, welcher der gs-DIALOG-Syntax gehorchen muß (die Codes "13" bewirken -einen Zeilenvorschub; sehen Sie auch Kapitel 5.13). Er wird in einer Box auf den -Bildschirm geschrieben und durch 'Ja Nein' ergänzt: - - - +-----------------------------+ - I I - I Wollen Sie mit der Datei I - I 'Dateiname' I - I arbeiten? I - I I - I Ja Nein I - I I - +-----------------------------+ - -Für 'Dateiname' ist auf Ihrem Bildschirm dann natürlich der aktuelle Inhalt von -'letzte datei' eingetragen. -Die Prozedur 'menuyes' liefert TRUE, wenn mit 'Ja' geantwortet wurde und FALSE, -wenn mit 'Nein' geantwortet wurde. Die Prozedur 'menuno' wirkt wie 'NOT menuyes'. -Nach Eingabe von 'Ja', 'Nein' (durch Tippen der Anfangsbuchstaben oder Positionie -rung auf die Antwort und anschließendem <RETURN>) wird der Menubildschirm -automatisch regeneriert. Auch die entsprechenden Hinweise in der Fußzeile werden -natürlich automatisch gesetzt. - - -#ib#5.7 Die Alternativentscheidung#ie# ('#ib#menualternative#ie#') - -Im letzten Kapitel haben wir Ihnen die Prozeduren 'menuyes' und 'menuno' in Ihrer -Wirkungsweise erläutert. Eigentlich sind die beiden Prozeduren nur ein (häufig -benötigter) Spezialfall der Prozedur 'menualternative'. Die Funktionsweise der Proze -dur 'menualternative' dürfte Ihnen schon aus dem 'Archivmenu' bekannt sein: Wenn -Sie eine neue Zieltask einstellen, werden Ihnen nämlich vier Alternativen zur Auswahl -angeboten (Archiv, Vatertask, PUBLIC, Sonstige Task). -Auf unsere Textverarbeitung bezogen könnten wir z.B. vor der Zeilenformatierung -(lineform) über die Alternativentscheidung den gewünschten Schrifttyp abfragen. Wir -wollen dem Benutzer in diesem Beispiel fünf Schrifttypen (schmal, elite, pica, letter, -groß) zur Auswahl anbieten: - - - -TEXT VAR schrifttyp; -... - -PROC schrifttyp waehlen: - TEXT CONST info :: " Auswahl der Schrifttypen: "13""13"" - + " s ... schmal (17 Zeichen pro Zoll) "13"" - + " e ... elite (12 Zeichen pro Zoll) "13"" - + " p ... pica (10 Zeichen pro Zoll) "13"" - + " l ... letter (Proportionalschrift) "13"" - + " g ... groß ( 5 Zeichen pro Zoll) ", - - liste :: "schmal"13"elite"13"pica"13"letter"13"groß", - tasten :: "seplgSEPLG"; - - INT VAR auswahl := menualternative (info, liste, tasten, 5, TRUE); - SELECT auswahl OF - CASE 1, 101, 106: schrifttyp := "17" - CASE 2, 102, 107: schrifttyp := "12" - CASE 3, 103, 108: schrifttyp := "10" - CASE 4, 104, 109: schrifttyp := "prop" - CASE 5, 105, 110: schrifttyp := "5" - OTHERWISE (* behalte alten Schrifttyp bei *) - END SELECT -END PROC schrifttyp waehlen; - - -Hätten wir diese Prozedur in unsere Prozedur 'zeilen formatieren' eingebunden, so -zeigte sich bei Aktivierung folgende Einblendung in den Menubildschirm: - - - - +---------------------------------------+ - I I - I Auswahl der Schrifttypen: I - I I - I s ... schmal (17 Zeichen pro Zoll) I - I e ... elite (12 Zeichen pro Zoll) I - I p ... pica (10 Zeichen pro Zoll) I - I l ... letter (Proportionalschrift) I - I g ... groß ( 5 Zeichen pro Zoll) I - I I - I schmal elite pica letter groß I - I I - +---------------------------------------+ - -Die Prozedur 'menualternative' besitzt insgesamt 5 Parameter. Wie Ihnen schon von -von anderen Prozeduren bekannt ist, wird mit dem vorletzten (4.) Parameter die -Position innerhalb des Menubildschirms bestimmt - hier also die Plazierung in die -Mitte des Menubildschirms. -Mit dem 5. Parameter können Sie noch festlegen, ob der Benutzer die Möglichkeit -haben soll, die Alternativauswahl mit <ESC><h> abzubrechen (bei TRUE, wie im -Beispiel) oder eben nicht. - -Mit dem 1. Parameter wird der Informationstext festgelegt, der auf dem Bildschirm -innerhalb der Box erscheinen soll. Für die Funktion der Alternativauswahl ist die -ser Inhalt völlig belanglos - er dient ausschließlich der Information des Benutzers. -Der Text kann - wie hier - z.B. durch eine Einteilung in Zeilen gestaltet werden -(durch den Code "13"). -Der Text in den Zeilen sollte nicht zu breit sein, da er noch in eine Box innerhalb des -Menubildschirms hineinpassen muß! Damit es auch bei geschachtelten Menus zu -keinen Problemen kommt, sollte eine Zeile nicht breiter als 64 Zeichen sein. Aber -keine Angst: Sie können gs-DIALOG durch zu lange Texte nicht durcheinanderbrin -gen - wenn Ihr Text zu breit ist, wird er rigoros abgeschnitten und einfach nicht -angezeigt. - -Mit dem 2. Parameter übergeben Sie die Auswahlliste, die in der letzten Zeile der Box -dargestellt wird. Hier dürfen insgesamt bis zu 10 Alternativen angegeben werden - -bedenken Sie dabei aber unbedingt, daß diese Liste ebenfalls nicht zu lang werden -darf (ebenfalls höchstens 64 Zeichen). -Zwischen jeder von Ihnen notierten Alternative muß zur Kennung der Code "13" -eingetragen werden - wie oben im Beispiel gezeigt. Da nachher in der Box zwischen -den einzelnen Alternativen je drei Leerzeichen eingefügt werden, können Sie sich -immer an der von Ihnen übergebenen Zeichenkette orientieren. Hat Ihre Auswahlliste -nicht mehr als 64 Zeichen, dann ist sie in jedem Falle auf dem Bildschirm darstell -bar. -Über diese Auswahlliste erfolgt normalerweise die Auswahl. Mit den Cursortasten links -und rechts kann der Benutzer auf die gewünschte Alternative positionieren (auf dem -Bildschirm invers dargestellt) und dann die <RETURN>-Taste tippen. -Die Prozedur 'menualternative liefert dann einen Zahlenwert, nämlich die Position -der gewählten Alternative in der als 2. Parameter übergebenen Liste (wird in unse -rem Beispiel die Alternative 'letter' gewählt, so liefert die Prozedur den Wert 4). -Haben Sie den Abbruch durch <ESC><h> zugelassen (5. Parameter), so wird im -Falle eines solchen Abbruchs der Wert '0' geliefert. - -Mit dem 3. Parameter können Sie noch festlegen, über welche Tasten eine Auswahl -erfolgen soll. Wenn Sie hier niltext ("") angeben, ist eine Auswahl über die Tasten -nicht möglich. Im Beispiel haben wir hier die Anfangsbuchstaben der im Text ge -nannten Schrifttypen gewählt und als Eingabe sowohl Klein- als auch Großbuchsta -ben gestattet. Erfolgt nun die Auswahl über das Tippen einer zugelassenen Taste, -dann wird Ihre Position in der im 3. Parameter übergebenen Zeichenkette ermittelt -und der Wert '100' dazuaddiert. Tippt in unserem Falle der Benutzer die Taste -<L>, wird der Wert '109' geliefert. - -Es erfolgt übrigens kein Hinweis in der Fußzeile, ob eine Auswahl über das Tippen -einer Taste möglich ist! Wenn Sie von der Möglichkeit Gebrauch machen, sollten Sie -dieses durch die Gestaltung Ihres Informationstextes andeuten - wie wir es im Bei -spiel auch getan haben. - - -#ib#5.8 Die Menunotiz#ie# ('#ib#write menunotice#ie#', '#ib#erasemenunotice#ie#') - -Innerhalb des Menus können Sie für den Benutzer auch eine Notiz ablegen. Wir -machen z.B. bei der Archivverwaltung Gebrauch davon. Dort wird nämlich ständig -angezeigt, mit welcher Task kommuniziert wird und - sofern es sich um einen Ar -chivmanager handelt - wie die (angemeldete) Diskette heißt. Wenn Sie z.B. dem -Benutzer das aktuelle Datum im Menu anzeigen wollen, insertieren Sie die folgende -Prozedur: - - -PROC datum anzeigen: - write menunotice ("Datum: " + date, 4) -END PROC datum anzeigen; - - -Die Prozedur 'write menunotice' besitzt zwei Parameter. Mit dem ersten Parameter -wird der Text übergeben, der in der Box ausgegeben werden soll. Er unterliegt eben -falls der gs-DIALOG-Syntax für Texte. Durch den zweiten Parameter wird wieder die -Position innerhalb des Menus festgelegt (hier rechts unten: Position 4). - -Wenn Sie jetzt in Ihrer Menukarte die Prozedur 'oberbegriff ("Bearbeiten")' in fol -gender Weise abändern: - - - oberbegriff ("Bearbeiten", "datum anzeigen", "erase menunotice") - - -dann wird jedesmal, wenn das Pull-Down-Menu unter dem Oberbegriff 'Bearbeiten' -aufgefaltet wird, unten rechts (Position 4) das aktuelle Datum in einer Box ange -zeigt. Diese Notiz verschwindet, wenn in ein anderes Pull-Down-Menu gewechselt -wird. - -Auf den ersten Eindruck scheinen die Prozeduren 'write menunotice' und 'menuinfo' -gleich zu sein - das ist aber nicht der Fall: Bei 'menuinfo' wird der Text in einer Box -ausgegeben und so lange gewartet, bis der Benutzer eine Taste getippt hat (oder die -angegebene Zeit verstrichen ist). Bei 'write menunotice' wird ebenfalls ein Text in -einer Box auf den Menubildschirm geschrieben. Diese Box bleibt aber über längere -Zeit bestehen (auf Erscheinen und Verschwinden kann der Benutzer selbst keinen -Einfluß nehmen!) - und zwar solange, bis die Notiz gelöscht wird (mit 'erase menu -notice'; in unserem Beispiel, wenn das Pull-Down-Menu gewechselt wird) oder durch -ein neues 'write menunotice' überschrieben wird. In einem Menu kann nämlich zu -einem Zeitpunkt nur eine Menunotiz abgelegt werden. -Wenn der Bildschirm durch gs-DIALOG-Prozeduren überschrieben wird, wird die -Menunotiz ebenfalls ständig mitaufgefrischt, und auch, wenn Sie den Befehl 'regene -rate menuscreen' oder 'refresh submenu' geben. - - -#ib#5.9 Fußzeilen im Menu#ie# ('#ib#menufootnote#ie#', '#ib#oldmenufootnote#ie#') - -In den Fußzeilen innerhalb des Menus werden dem Benutzer Bedienhinweise ange -zeigt. Die Fußzeile wird aber auch dazu benutzt, den Benutzer über Prozesse zu -informieren, die im Hintergrund ablaufen - erst recht dann, wenn Sie einige Zeit in -Anspruch nehmen. Sie zeigen dem Benutzer an, daß er nicht "unruhig" zu werden -braucht, sondern das System "mit sich" beschäftigt ist. -Im allgemeinen braucht sich der Programmierer um diese Fußnoten nicht zu küm -mern, denn sie werden von den einzelnen Komponenten des Systems automatisch -gesetzt. Wir können aber z.B. dem Benutzer einen Hinweis geben, wenn unter dem -Menupunkt 'Verzeichnis' eine Liste erstellt wird. Die Prozedur könnte dann folgen -dermaßen notiert werden: - - -PROC verzeichnis ausgeben: - menufootnote ("Bitte warten... Ich erstelle eine Dateiliste"); - FILE VAR f :: sequential file (output, "Dateiliste"); - list (f); modify (f); - old menufootnote; - entferne eigenen namen; - zeige liste an; - forget ("Dateiliste", quiet). - - entferne eigenen namen: - TEXT VAR zeile :: ""; INT VAR i; - FOR i FROM lines (f) DOWNTO 1 REP - to line (f, i); - read record (f, zeile); - UNTIL pos (zeile, "Dateiliste") > 0 PER; - delete record (f). - - zeige liste an: - to line (f, 1); - menuwindowshow (f) (* Sehen Sie Kapitel 5.11.1*) -END PROC verzeichnis ausgeben; - - -Beachten Sie, daß der Text nicht länger als 64 Zeichen ist, damit er auch bei ge -schachtelten Menus vollständig ausgegeben werden kann. Sollte der Text dennoch zu -lang sein, wird er vom System auf die entsprechende Länge gestutzt. -Haben Sie mit 'menufootnote' eine eigene Fußzeile gesetzt, so können Sie die da -durch gelöschte Zeile durch den Befehl 'old menufootnote' wieder hinschreiben. -Ansonsten wird Ihre Fußzeile von der nächsten automatisch (d.h. vom System) ge -setzten Fußnote überschrieben. In dem obigen Beispiel hätten Sie also gut auf den -Befehl 'old menufootnote' verzichten können. - -Durch 'old menufootnote' wird die letzte Fußnote, die automatisch vom System ge -setzt wurde, reproduziert. Der in der obigen Prozedur verwendete Befehl 'menuwin -dowshow' ist bisher noch nicht erläutert. Sehen Sie dazu bitte das Kapitel 5.11.1. - - -#ib#5.10 Wiederherstellung des Menubildschirms#ie# ('#ib#regenerate - menuscreen#ie#','#ib#refresh submenu#ie#') - -Der Befehl 'regenerate menuscreen' ist Ihnen schon aus diversen Beispielprogram -men dieses Handbuches bekannt. Ist der Menubildschirm "kaputtgeschrieben" oder -der Bildschirm für andere Zwecke benutzt worden, so läßt sich durch diesen Befehl -der Menubildschirm in seinem letzten Zustand reproduzieren (auch bei geschachtel -ten Menus!). Durch den Befehl wird der Bildschirm gelöscht und komplett neu -aufgebaut. - -Ein vollständiger Bildschirmaufbau ist aber gar nicht immer nötig. Wenn Sie sicher -sind, daß durch Ihre Operationen nur der Bereich zwischen den beiden durchgezo -genen Linien, die die Kopf- und Fußzeile abtrennen, betroffen ist, brauchen Sie nur -den Befehl 'refresh submenu' zu geben. Hierdurch wird das aktuelle Pull-Down- -Menu neu aufgebaut und - sofern gesetzt - die Menunotiz. Wenn möglich, ist er dem -Befehl 'regenerate menuscreen vorzuziehen, da hierfür weniger Zeit benötigt wird -und weniger "Unruhe" auf dem Bildschirm entsteht. -Sorgen Sie aber unbedingt dafür, daß der von Ihnen benutzte Bildschirmbereich -zuvor "gereinigt" wird, denn das besorgt 'refresh subnmenu' nicht! - - -#ib#5.11 Arbeiten im Menufenster#ie# - -Neben den vorab aufgezeigten Möglichkeiten können Sie innerhalb des Menus auch -noch ein Fenster öffnen. Innerhalb dieses Fensters stehen Ihnen alle Möglichkei -ten zur Verfügung, die Sie auch sonst zum Beschreiben des gesamten Bildschirms -haben - und noch einiges mehr. -Wir machen z.B. intensiv beim Archivhandling Gebrauch davon. So werden Ihnen -Verzeichnisse angezeigt, Sie können verfolgen, wie die einzelnen Dateien vom Archiv -geholt werden oder dorthin geschrieben werden und einiges mehr. In diesem Kapitel -wollen wir Ihnen die Möglichkeiten aufzeigen, die Sie innerhalb des Menufensters -haben. - -Auf die Größe des Menufensters haben Sie keinen Einfluß, sie wird vom System ge -setzt ("normales" Menu: 77 Zeichen breit und 20 Zeichen hoch; geschachteltes -Menu: 71 Zeichen breit und 16 Zeichen hoch). Hierdurch ist sichergestellt, daß alle -Operationen auch in geschachtelten Menus ohne Probleme ausführbar sind. Alle -Prozeduren, die sich auf Aktionen im Menufenster beziehen, enthalten die Silbe -'menuwindow'. -Sie können mit den hier beschriebenen Prozeduren ähnlich arbeiten, wie mit den -entsprechenden Prozeduren ohne den Wortbestandteil 'menuwindow' auf dem -ganzen Bildschirm. Allerdings gibt es einige Unterschiede, auf die Sie achten sollten! - - -5.11.1 Datei anzeigen/editieren - ('#ib#menuwindowshow#ie#', '#ib#menuwindowedit#ie#') - -Von der Prozedur 'menuwindowshow (FILE VAR f)' haben wir im letzten Kapitel -schon Gebrauch gemacht, um das Verzeichnis der Dateien in der Task innerhalb des -Menus anzuzeigen. Die Prozedur gibt es in zwei Versionen mit je einem Parameter. -Einmal kann, wie im vorigen Kapitel, ein FILE angegeben werden, andererseits kann -auch der Name der anzuzeigenden Datei als Text übergeben werden ('menuwindow -show (TEXT CONST dateiliste)'). Durch den Befehl wird innerhalb des Menus ein -umrandetes Fenster geöffnet, in der das angegebene File/die Datei angezeigt wird. Bei -'menuwindowshow' kann die Datei nur eingesehen, nicht aber schreibend verändert -werden. -Die Prozedur 'menuwindowedit' gibt es ebenfalls in den zwei Ausprägungen. Sie -verhält sich zur vorgenannten identisch - nur kann hier auch die Datei schreibend -verändert werden. - - -5.11.2 Menufenster öffnen/anzeigen ('#ib#show menuwindow#ie#') - -Wenn Sie eigene Operationen in einem Fenster im Menu ausführen lassen wollen, -muß dieses Fenster zunächst auf dem Bildschirm angezeigt werden. Durch den -Befehl 'show menuwindow' wird ein entsprechender Rahmen innerhalb des Menus -ausgegeben und der Bereich innerhalb dieses Rahmens (das Fenster) gelöscht. -Auf die Größe des Fensters innerhalb des aktuellen Menus können Sie - wie bereits -eingangs gesagt - keinen Einfluß nehmen. -Zu einem Zeitpunkt kann immer nur ein Menufenster geöffnet sein, da das Fenster -schon den größtmöglichen sinnvollen Bereich des aktuellen Menus belegt. Ein er -neutes 'show menuwindow' hätte die gleiche Wirkung wie das nachfolgend beschrie -bene 'menuwindowpage' - nur wird hier zusätzlich noch der Rahmen des Fensters -mitausgegeben. - - -5.11.3 Menufenster löschen (putzen) ('#ib#menuwindowpage#ie#') - -Durch den Befehl 'menuwindowpage' wird das Fenster innerhalb des aktuellen -Menus gelöscht; der Rahmen des Fensters bleibt bestehen, da er nicht mit zum ei -gentlichen Fenster gehört. Durch den Befehl wird der Menubildschirm nicht(!) -rekonstruiert! - - -5.11.4 Positionierungen im Menufenster - ('#ib#menuwindowline#ie#', '#ib#menuwindowcursor#ie#') - -Mit 'menuwindowline' wird, wie auch sonst auf dem Bildschirm, an den Anfang der -nächsten Zeile positioniert. Diesen Befehl gibt es, ebenso wie den Befehl 'line' (der -auf dem Gesamtbildschirm operiert) ohne und mit einem Parameter. Durch 'menu -windowline (3)' wird an den Anfang der "drittnächsten" Zeile innerhalb des Menu -fensters positioniert. - -Aber Achtung! Der Befehl 'menuwindowline' weist einen deutlichen Unterschied zum -Ihnen bekannten Befehl 'line' auf. Wird nämlich die untere Fenstergrenze überschrit -ten, so rollt (scrollt) der Bildschirm nicht um die entsprechenden Zeilen nach oben, -wie Sie es von 'line' gewohnt sind - statt dessen wird der Fensterinhalt gelöscht und -wieder oben im Fenster zu schreiben begonnen. Es erscheint, als ob auf ein neues -Fenster positioniert würde. -Innerhalb des Fensters können Sie auch den Cursor positionieren, wie Sie es vom -Bildschirm gewohnt sind - allerdings nur innerhalb der aktuell gültigen Grenzen. In -einem Menu ist das Fenster 77 Zeichen breit und 20 Zeichen hoch; in einem ge -schachtelten Menu 71 Zeichen breit und 16 Zeichen hoch. -Wird außerhalb des aktuellen Menufensters positioniert, wird das Fenster gelöscht -und die Fensterposition (1, 1) angenommen. - - -5.11.5 Informationen über die aktuelle Menu-Fenster position ('#ib#get -menuwindowcursor#ie#', '#ib#remaining menuwindowlines#ie#') - -Mit der Prozedur 'get menuwindowcursor (INT VAR spalte, zeile)' kann die aktuelle -Position des Cursors innerhalb des Menufensters erfragt werden. Die Prozedur hat -zwei Parameter, die als 'INT VAR' deklariert sein müssen. Der erste Parameter enthält -anschließend die aktuelle Spalte, der zweite die aktuelle Zeile. - -Mit der werteliefernden Prozedur 'remaining menuwindowlines' kann die Anzahl der -noch verbleibenden Zeilen innerhalb des aktuellen Menufensters erfragt werden. Die -Prozedur wurde deshalb zur Verfügung gestellt, weil der Fensterinhalt - im Gegensatz -zum normalen Bildschirm - nicht gescrollt werden kann. So können Sie sich vorab -informieren, ob der Text, der von Ihnen ausgegeben werden soll, noch Platz findet, so -daß während der Ausgabe nicht plötzlich der Fensterinhalt gelöscht wird. - - -5.11.6 Ausgabe/Eingabe innerhalb des Menufensters - ('#ib#menuwindowout#ie#', '#ib#menuwindowget#ie#', - '#ib#menuwindoweditget#ie#', '#ib#menuwindowyes#ie#', - '#ib#menuwindowno#ie#') - -Innerhalb des Menufensters können mit der Prozedur 'menuwindowout' Texte ausge -geben werden - die Prozedur hat einen TEXT-Parameter. Sollen INTEGER- oder REAL- -Werte ausgegeben werden, so müssen diese Werte zuerst in Texte konvertiert werden. -Bitte beachten Sie unbedingt, daß innerhalb des Fensters nicht gescrollt wird und -auch kein Zeilenumbruch stattfindet! Ist ein Text länger als die verbleibende Restzei -le, so wird der Text bis zum Fensterende ausgegeben und die Ausgabe am Anfang der -nächsten Zeile fortgesetzt. So ist sichergestellt, daß in keinem Falle die Fenstergren -zen überschritten werden. -Sobald die letzte Position des aktuellen Menufensters beschrieben ist (unten rechts in -der Fensterecke), wird der Fensterinhalt komplett gelöscht und die Ausgabe in der -ersten Zeile des "neuen" Fensters fortgesetzt. Auf Zeilenumbruch und Scrolling wurde -verzichtet, da der Realisierungsaufwand dafür zu hoch gewesen wäre. - -Mit der Prozedur 'menuwindowget (TEXT VAR text)' können Sie auch Texte innerhalb -des Menufensters einlesen - INTEGER-/ REAL-Werte müssen ggf. von Hand konvertiert -werde. Die Eingabe wird durch <RETURN> abgeschlossen. Es muß mindestens ein -Zeichen (ungleich Leerzeichen) eingegeben werden. Von der Eingabe werden die -führenden Leerzeichen abgeschnitten. -Ist der einzugebende Text länger als die noch verbleibende Restzeile, so wird der Text -in der Restzeile gescrollt. Sind in der aktuellen Zeile weniger als 7 Zeichen für die -Eingabe vorhanden, so wird automatisch für die Eingabe an den Anfang der nächsten -Zeile positioniert. - -Ab gs-DIALOG-Version 1.1 steht auch die Prozedur 'menuwindoweditget (TEXT VAR -text)' zur Verfügung, durch die ein Text zum Editieren vorgegeben werden kann. Es -ist allerdings darauf zu achten, daß der Text in jedem Falle initialisiert wird! - -Die beiden Prozeduren 'menuwindowyes' und 'menuwindowno' ähneln den Ihnen -bekannten Prozeduren 'yes' und 'no'. Sie operieren nur auf dem Menufenster. Be -denken Sie aber bitte, daß, wenn bei der Ausgabe des Textes die Fenstergrenze über -schritten wird, der Resttext in der nächsten Zeile ausgegeben wird. Wird dabei sogar -die untere Fenstergrenze überschritten, so wird der komplette Fensterinhalt gelöscht -und die Ausgabe in der linken oberen Ecke des "neuen Fensters" fortgesetzt! - - -5.11.7 Weiter Prozeduren ('#ib#menuwindowcenter#ie#', - '#ib#menuwindowstop#ie#') - -Es werden noch zwei weitere Prozeduren für das Menufenster zur Verfügung gestellt, -die bei der Programmentwicklung ganz nützlich sein können. -Mit 'menuwindowcenter (TEXT CONST text)' werden vor und hinter dem übergebe -nen Text so viele Leerzeichen angefügt, daß der Text zentriert in der Menufenster-Zei -le ausgegeben wird. Bevor Sie den Text mit 'menuwindowout' ausgeben, müssen Sie -an den Anfang einer Zeile positionieren, denn die Anzahl der vorangestellten Blanks -wird unter Annahme dieser Zeilenposition ermittelt! Innerhalb der Zeile werden ggf. -vorhandene Texte überschrieben. - -Durch die Prozedur 'menuwindowstop' wird an den Anfang der übernächsten Zeile -positionert und der Text 'Zum Weitermachen bitte irgendeine Taste tippen!' ausgege -ben. Danach wird so lange gewartet, bis eine Taste getippt wird. Mit 'menuwindow -stop (INT CONST zeilenzahl) kann auch noch die Anzahl der Zeilen bestimmt wer -den, die vorwärtspositioniert werden soll (Standard: 2 Zeilen). - - -#ib#5.12 Festlegung der Boxpositionen innerhalb des Menus#ie# - -In vielen Fällen kann der Programmierer noch entscheiden, an welcher Position -innerhalb des Menus die Box erscheinen soll (z. B. bei 'menuanswer', 'menuinfo', -'menuyes', 'menuno', 'menunotice' etc.). Die Positionen sind von 1 bis 5 durchnu -meriert und haben folgende Bedeutung: - -+----------------------------------------+ -I I -+----------------------------------------+ -I I -I +-----+ +-----+ I -I I 1 I I 2 I I -I +-----+ +-----+ I -I I -I +-----+ I -I I 5 I I -I +-----+ I -I I -I +-----+ +-----+ I -I I 3 I I 4 I I -I +-----+ +-----+ I -I I -+----------------------------------------+ -I I -+----------------------------------------+ -#page# -#ib#5.13 gs-DIALOG-Syntax (Regeln zur Erstellung von Texten)#ie# - -Werden Texte als Parameter übergeben, die in einer Box ausgegeben werden sollen, -so kann dieser Text durch Einfügen von Steuerzeichen noch gestaltet werden, z.B. -kann der Programmierer so den Zeilenaufbau bestimmen. -Das System analysiert den eingegebenen Text. Jedesmal, wenn innerhalb des Textes -der Code "13" erscheint, wird innerhalb der Box auf den nächsten Zeilenanfang -positioniert. So ist eine Einteilung eines Textes in Zeilen leicht möglich. Soll eine -Leerzeile eingefügt werden, so geben Sie einfach zweimal den Code "13" ("13""13"). -Bei der Textanalyse wird die jeweilige Zeilenlänge vermerkt. Die Box wird vom System -gerade so breit gewählt, daß die längste vorkommende "Zeile" im Text gerade noch in -die Box paßt. -Aber Vorsicht! Die jeweilige Box kann innerhalb des Menus nur eine Maximalgröße -annehmen (64 Zeichen breit und 14 Zeilen hoch). Wird von einer "Zeile" diese -Maximalgröße überschritten, so wird die Zeile abgeschnitten und nur bis zur Maxi -malbreite der Box ausgegeben. - -Ein Text für eine solche Box könnte z.B. so aussehen: - - -menuinfo (" Informationstexte "13" sind meist"13" zu -lang!") - - -das ergibt folgende Ausgabe in der Box: - - - +-----------------------+ - I I - I Informationstexte I - I sind meist I - I zu lang I - I I - +-----------------------+ - -Es ist auch möglich, in solchen Texten Textpassagen invers darzustellen. Dazu wer -den in den Text die Codes zum Ein- ("15") und Ausschalten ("14") der Markierung -eingefügt. Solche markierten Textpassagen dürfen aber nicht über interne Zeilen -grenzen (Code "13") hinausgehen. Sie müßten dann am Zeilenende aus- und am -nächsten Zeilenanfang wiedereingeschaltet werden. -Soll in der obigen Box das Wort 'Informationstexte' invers dargestellt werden, so wäre -z.B. folgendes Kommando zu geben: - - -menuinfo (" "15"Informationstexte"14" "13"" + - " sind meist"13" zu lang!") - - -#ib#5.14 Thesaurushandling#ie# - -Neben den allgemein zur Verfügung gestellten Thesaurusoperationen stellt -gs-DIALOG einige weitere bereit. Mit der Prozedur 'THESAURUS PROC #ib#infix namen#ie# -(THESAURUS CONST thes, TEXT CONST infix)' werden aus allen Dateinamen des -angegebenen Thesaurus die herausgefiltert, die den Wortbestandteil 'infix' enthalten - -und zwar gleichgültig, an welcher Position! Die herausgefilterten Dateinamen werden -in einem Thesaurus geliefert. Im Programmsystem 'gs-Herbert und Robbi' mach -en wir z.B. Gebrauch davon, wenn wir nur die Landschaften der eigenen Task zur -Auswahl anbieten wollen: - - -THESAURUS VAR thes :: infix namen (ALL myself, "Flaeche:") - - -Daneben gibt es eine ähnliche Prozedur, mit der man die Dateien eines bestimmten -Dateityps herausfiltern kann. Mit - - -THESAURUS VAR thes :: infix namen (ALL myself, 1003) - - -werden alle Dateien mit dem Typ '1003' (normale Textfiles) herausgefiltert. Neben -den beiden gibt es auch noch eine Prozedur, die beide Fälle miteinander koppelt: - - -THESAURUS VAR thes :: infix namen (ALL myself, "gs-MENUKARTE:", 1954) - - -Mit der folgenden Prozedur: - - -THESAURUS VAR thes :: #ib#ohne praefix#ie# (ALL myself, "Flaeche:") - - -wird aus den Dateinamen im angegebenen Thesaurus jeweils der führende Wortbe -standteil entfernt. Wir machen z.B. in gs-Herbert und Robbi davon Gebrauch, um -die Landschaften/Arbeitsfelder anbieten zu können, ohne jeweils den Wortbestandteil -'Flaeche:' miterscheinen zu lassen. - -Ganz nützlich ist auch noch die folgende Informationsprozedur '#ib#not empty#ie# -(THESAURUS CONST thes)', mit der man z.B. feststellen kann, ob eine Auswahl ohne -Ankreuzen oder mit <ESC><h> abgebrochen wurde: - - - -PROC zeilen formatieren: - TEXT CONST kopf :: "Textdateien zeilenweise formatieren", - hinweis :: "Bitte gewünschte Dateien ankreuzen"; - THESAURUS VAR dateinamen := menusome (ALL myself, kopf, hinweis, - FALSE); - - IF not empty (dateinamen) - THEN cursor on; - formatiere dateien; - cursor off; - FI; - regenerate menuscreen. - - formatiere dateien: - INT VAR zaehler; - FOR zaehler FROM 1 UPTO highest entry (dateinamen) REP - IF name (dateinamen, zaehler) <> "" - THEN lineform (name (dateinamen, zaehler)) - FI - PER -END PROC zeilen formatieren; - - - -#ib#5.15 Aktivieren und Deaktivieren von Menupunkten#ie# - -Daß Verarbeitungsfunktionen aktiviert und deaktiviert werden können, haben Sie -schon in unserem Archiv-Pull-Down-Menu gesehen. Deaktivierte Menupunkte sind -durch ein vorgestelltes '-'-Zeichen gekennzeichnet; diese Menufunktionen werden -übersprungen, wenn Sie versuchen, darauf zu positionieren. - -Zur Aktivierung und Deaktivierung von Menupunkten stehen die Prozeduren '#ib#activate#ie# -(TEXT CONST menupunktname)' und '#ib#deactivate#ie# (TEXT CONST menupunktname)' -zur Verfügung. Zu beachten ist, daß diese Prozeduren nicht ständig aufrufbar sind - -der jeweils angegebene 'menupunktname' muß sich nämlich auf das aktuelle Pull- -Down-Menu beziehen! Als Menupunktname muß jeweils der Name angegeben wer -den, der bei der entsprechenden Menufunktion als 2. Parameter übergeben wurde. -Ist der angegebene 'menupunktname' im aktuellen Pull-Down-Menu nicht enthalten, -so wird die Anweisung ignoriert! - -Auch bei den Prozeduren' activate (INT CONST punktnummer)' und 'deactivate (INT -CONST punktnummer)' gilt diese Einschränkung. Die beiden Prozeduren arbeiten -schneller als die eben aufgezeigten, denn es muß im aktuellen Pull-Down-menu -nicht mehr nach der jeweiligen Position gesucht werden. Die Positionen werden von -oben nach unten durchgezählt. Beachten Sie aber unbedingt, daß die Trennlinien -mitgezählt werden müssen! -Die Prozeduren "zeigen nur dann Wirkung", wenn sie von einer Verarbeitungsfunk -tion des aktuell entfalteten Pull-Down-Menus aus aufgerufen werden (das geschieht -im Archivmenu z.B. aus den beiden Menufunktionen 'Reservieren' und 'Initialisieren' -heraus) oder wenn Sie beim Einstieg in ein Pull-Down-Menu bzw. beim Ausstieg -daraus aufgerufen werden; d.h. aus einer Prozedur heraus, die bei 'oberbegriff' als -2./3. Parameter in das Menukarten-Generierungsprogramm eingetragen ist. Beim -Archiv-Pull-Down-Menu besorgt das die Prozedur 'menu archiv grundeinstellung' -(sehen Sie dazu auch Kapitel 6.1). - - diff --git a/doc/menugenerator/menu-generator handbuch.6 b/doc/menugenerator/menu-generator handbuch.6 deleted file mode 100644 index a0dd3b5..0000000 --- a/doc/menugenerator/menu-generator handbuch.6 +++ /dev/null @@ -1,235 +0,0 @@ -#block##pageblock# -#pagenr("%",1)##setcount(1)##count per page# -#headeven# -gs-Menu-Generator -#center#____________________________________________________________ - -#end# -#headodd# -#right#gs-Menu-Generator -#center#____________________________________________________________ - -#end# -#bottomeven# -#center#____________________________________________________________ -6 - % #right#ERGOS -#end# -#bottomodd# -#center#____________________________________________________________ -ERGOS #right# 6 - % -#end# -#ib#6 Einbinden der Datei- und Archivoperationen#ie# - - -Sie haben bereits erfahren, wie Sie eine Menukarte generieren und ankoppeln kön -nen. Im letzten Kapitel haben wir Ihnen die Möglichkeiten aufgezeigt, innerhalb des -Menus einen Dialog mit dem Benutzer zu führen. Sie sind somit in der Lage, Ihre -eigenen Anwendungen unter der Benutzeroberfläche gs-DIALOG zu erstellen. -Wie sich gezeigt hat, treten eine Reihe von Verarbeitungsfunktionen in nahezu jeder -Anwendung auf. Im EUMEL-System benötigt man bei fast allen Anwendungspro -grammen auch die Möglichkeiten, Dateien auf dem Archiv zu sichern oder von dort -zu holen; auch Umbenennen, Kopieren, Drucken, Reorganisieren ... von Dateien -zählen sicher zu den häufig benötigten Verarbeitungsfunktionen. Wünschenswert ist -es natürlich, daß in allen Programmen unter einer Benutzeroberfläche die "Stan -dard-Verarbeitungsfunktionen" in immer gleicher Weise zur Verfügung stehen! - -Dieser Vorteil liegt sogar nicht nur auf der Seite des Anwenders - auch der Anwen -dungsprogrammierer profitiert davon: Dann nämlich, wenn er diese Standard-Verar -beitungsfunktionen nicht immer neu schreiben muß, sondern auf vorgefertigte -Prozeduren und natürlich auch auf die zugehörigen Informationstexte zurückgreift. - -Wir haben uns deshalb entschlossen, diese Standard-Verarbeitungsfunktionen zum -Datei- und Archivhandling bereits in das Basissystem gs-DIALOG zu integrieren und -Ihnen mit gs-Menu-Generator Dateien zur Verfügung zu stellen, in denen die -Programme zur Einbindung dieser Prozeduren in Ihre eigenen Programmsysteme -ebenso enthalten sind wie alle dazugehörigen Informationstexte. -In diesem Kapitel soll nun beschrieben werden, wie Sie diese vorgefertigten Module in -Ihre Menukarten/Programme einbinden können und was Sie dabei beachten müs -sen. - - -#ib#6.1 Einbinden der Archivoperationen#ie# - -Auf der von uns gelieferten Diskette 'gs-Menu-Generator', befindet sich auch die -Datei 'Generatordatei: Archivmenu'. Darin ist das vollständige Menukarten-Generie -rungs-Programm zur Generierung der Menukarte 'gs-MENUKARTE: Archiv' inclusive -aller Informationstexte enthalten. U.a. befindet sich darin eben das folgende Pro -gramm: - - -oeffne menukarte ("Archiv"); -oeffne menu ("ARCHIV", "", "menu archiv reservierung aufgeben"); - - -oberbegriff ("Dateien"); - -menufunktion ("v", "Verzeichnis", "menu dateien verzeichnis", - dateiverzeichnistext); -trennlinie; -menufunktion ("l", "Löschen", "menu dateien loeschen", - dateiloeschentext); -menufunktion ("d", "Drucken", "menu dateien drucken", - dateidruckentext); -trennlinie; -menufunktion ("k", "Kopieren", "menu dateien kopieren", - dateikopierentext); -menufunktion ("u", "Umbenennen", "menu dateien umbenen - nen", - dateiumbenennentext); -trennlinie; -menufunktion ("s", "Speicherplatz", "menu dateien speicherplatz", - dateispeicherplatztext); -menufunktion ("a", "Aufräumen", "menu dateien aufraeumen", - dateiaufraeumtext); - - -oberbegriff ("Archiv", "menu archiv grundeinstellung (4)", - "menu archiv reservierung aufgeben"); - -menufunktion ("r", "Reservieren", "menu archiv reservieren", - archivreserviertext); -menufunktion ("n", "Neue Diskette", "menu archiv neue diskette", - neuediskettetext); -trennlinie; -menufunktion ("s", "Schreiben", "menu archiv schreiben", - archivschreibtext); -menufunktion ("c", "Checken", "menu archiv checken", - archivchecktext); -menufunktion ("k", "Kombination", "menu archiv schreibcheck", - archivkombinationstext); -menufunktion ("h", "Holen/Lesen", "menu archiv holen", - archivholtext); -menufunktion ("l", "Löschen", "menu archiv loeschen", - archivloeschtext); -trennlinie; -menufunktion ("v", "Verzeichnis", "menu archiv verzeichnis", - archivverzeichnistext); -menufunktion ("d", "Drucken", "menu archiv verzeichnis - drucken", - archivdruckentext); -trennlinie; -menufunktion ("i", "Initialisieren", "menu archivinitialisieren", - archivinitialisiertext); -menufunktion ("z", "Zieltask einstellen", "menu archiv zieltask - einstellen", - archivzieltasktext); -schliesse menu; -schliesse menukarte; - - -Wie schon oben erwähnt, sind auch alle Informationstexte in der Datei enthalten, die -jeweils über den 4. Parameter der Prozeduren 'menufunktion' in die Menukarte -eingebunden werden. Wir haben Sie hier nicht extra abgedruckt; Sie können ja die -entsprechende Datei auf der Diskette einsehen! - -Zu dem Programm möchten wir jedoch noch einige wichtige Anmerkungen machen, -damit Sie die entsprechenden Verarbeitungsfunktionen in Ihre Menukarte einbinden -können. - -Wenden wir uns zunächst den Archivoperationen zu. gs-DIALOG stellt die folgenden -Verarbeitungsfunktionen bereit: - - - PROC #ib#menu archiv reservieren#ie#, - PROC #ib#menu archiv neue diskette#ie#, - PROC #ib#menu archiv schreiben#ie#, - PROC #ib#menu archiv checken#ie#, - PROC #ib#menu archiv schreibcheck#ie#, - PROC #ib#menu archiv holen#ie#, - PROC #ib#menu archiv loeschen#ie#, - PROC #ib#menu archiv verzeichnis#ie#, - PROC #ib#menu archiv verzeichnis drucken#ie#, - PROC #ib#menu archiv initialisieren#ie#, - PROC #ib#menu archiv zieltask einstellen#ie#, - - -Durch diese elf Prozeduren werden die entsprechenden Menufunktionen ausgeführt. - -Außerdem werden noch folgende Prozeduren bereitgestellt: - - - PROC #ib#menu archiv grundeinstellung#ie# (INT CONST ort) - PROC #ib#menu archiv reservierung aufgeben#ie# - - -Diesen beiden Prozeduren sollten Sie bei der Einbindung der Archivfunktionen in -Ihre Menukarten besondere Beachtung schenken. Wie Sie im Programm auf der Seite -zuvor sehen, taucht die Prozedur 'menu archiv reservierung aufgeben' gleich zweimal -auf: einmal als 3.Parameter der Prozedur 'oberbegriff' und einmal als 3.Parameter -der Prozedur 'oeffne menu' - und das aus folgendem Grund: - -Wenn der Benutzer die Archivoperationen verläßt, dann sollte automatisch das Archiv -freigegeben werden, um so - auch bei Multi-User-Betrieb - ein einwandfreies Archiv -handling zu gewährleisten. Nun kann der Benutzer das Pull-Down-Menu 'Archiv' aber -eben auf zweierlei Weise verlassen: Einmal durch den Wechsel in ein anderes Pull- -Down-Menu der gleichen Menukarte - oder aber er verläßt insgesamt das Menu. Im -ersten Falle wird das Archiv abgemeldet, weil ja die als 3.Parameter bei 'oberbegriff' -eingetragene Prozedur ausgeführt wird - im zweiten Falle, weil die als 3.Parameter -bei 'oeffne menu' eingetragene Prozedur ausgeführt wird. Diese Eintragungen sollten -Sie auf keinen Fall bei der Einbindung der Archivoperationen vergessen. - -Die Prozedur 'menu archiv grundeinstellung (INT CONST ort)' sollte bei den Archiv -operationen immer als 2. Parameter in der Prozedur 'oberbegriff' übergeben wer -den. Nur wenn diese Prozedur beim Entfallten des Archiv-Pull-Down-Menus ausge -führt wird, ist die einwandfreie Funktion des Archivsystems sichergestellt. Dadurch -geschieht nämlich folgendes: - - 1) Als Zieltask wird das Archiv der eigenen Station eingestellt - unabhängig - davon, mit welcher Einstellung das Menu zuvor verlassen wurde. - - 2) Es wird die Zieltask auf dem Bildschirm angezeigt. - - 3) Die entsprechenden Menupunkte werden aktiviert bzw. deaktiviert. - - 4) Es wird festgelegt, an welcher Stelle innerhalb des Menus die Menunotiz zur - Anzeige der Zieltask (und ggf. des Archivnamens) ausgegeben wird. - -Im Programm oben ist hierfür die Position 4 (rechts unten in der Ecke) gewählt. Wir -haben diese Festlegung deswegen so getroffen, weil das Archiv-Pull-Down-Menu -ziemlich weit links auf dem Bildschirm erscheint (es sind nur zwei Oberbegriffe -eingetragen!). So stören sich Archiv-Pull-Down-Menu und die Menunotiz nicht gegen -seitig. In unseren Anwendungssystemen 'gs-Herbert und Robbi' und -'gs-MP-BAP' haben wir dagegen die Position '3' eingetragen, damit die Menunotiz -unten links in der Ecke erscheint, weil das Archiv-Pull-Down-Menu ganz rechts auf -dem Bildschirm entfaltet wird. - -Achtung! Uns ist es sehr, sehr wichtig, daß zumindest die Archivfunktionen in allen -Anwendungen unter gs-DIALOG in gleicher Weise zur Verfügung gestellt werden. Um -das sicherzustellen, sind die Funktionen so in gs-DIALOG integriert, daß das System -nur dann reibungslos funktioniert, wenn Sie sich an die eben aufgezeigten Regeln für -die Einbindung in Ihr Anwendungssystem halten! Für die korrekte Funktionsweise -muß im Archiv-Pull-Down-Menu auch immer exakt die Reihenfolge (der Aufbau) der -Verarbeitungsfunktionen eingehalten werden. Auch die Namen sollten immer gleich -gewählt werden! - -Wir hoffen, daß Sie als Programmierer für diese doch etwas rigorose Maßnahme -Verständnis haben - dafür versichern wir Ihnen, daß wir sehr viel Gedanken und -Arbeit in die Konstruktion des Archivsystems investiert haben! - -Auf eine Einschränkung muß allerdings noch hingewiesen werden:Das Archiv- -Pull-Down-Menu kann aus technischen Gründen nicht das erste, ganz links in einem -Menu stehende sein; es kann frühestens unter dem zweiten Oberbegriff in das Menu -aufgenommen werden! Es ist z.Z. nicht möglich, im ganz links stehenden Pull- -Down-Menu deaktivierte Menupunkte zu behandeln. - - -#ib#6.2 Einbinden der Dateiopertionen#ie# - -gs-DIALOG stellt neben den Archivoperationen standardmäßig auch einige Dateiope -rationen bereit. Folgende Prozeduren stehen zur Verfügung: - - - PROC #ib#menu dateien verzeichnis#ie#, - PROC #ib#menu dateien loeschen#ie#, - PROC #ib#menu dateien drucken#ie#, - PROC #ib#menu dateien kopieren#ie#, - PROC #ib#menu dateien umbenennen#ie#, - PROC #ib#menu dateien speicherplatz#ie#, - PROC #ib#menu dateien aufraeumen#ie#. - - -Die Prozeduren bedürfen in Ihrer Wirkung sicher kaum einer Erklärung. Die Wir -kungsweise können Sie einfach ausprobieren, indem Sie die entsprechenden Ver -arbeitungsfunktionen im Archiv-Menu einfach einmal aktivieren. - - diff --git a/doc/menugenerator/menu-generator handbuch.7 b/doc/menugenerator/menu-generator handbuch.7 deleted file mode 100644 index 2e6f0ba..0000000 --- a/doc/menugenerator/menu-generator handbuch.7 +++ /dev/null @@ -1,367 +0,0 @@ -#block##pageblock# -#pagenr("%",1)##setcount(1)##count per page# -#headeven# -gs-Menu-Generator -#center#____________________________________________________________ - -#end# -#headodd# -#right#gs-Menu-Generator -#center#____________________________________________________________ - -#end# -#bottomeven# -#center#____________________________________________________________ -7 - % #right#ERGOS -#end# -#bottomodd# -#center#____________________________________________________________ -ERGOS #right# 7 - % -#end# -#ib#7 Eigene Fenster und Fensteroperationen #ie# - - -In Kapitel 5.11 haben wir Ihnen gezeigt, wie Sie innerhalb des Menus ein Fenster -(das Menufenster) öffnen können. Innerhalb dieses Bereichs stehen Ihnen die -wesentlichen Ein- und Ausgabeoperationen zur Verfügung, die Sie auch sonst vom -Bildschirm her kennen. Auf die Größe des Menufensters können Sie allerdings keinen -Einfluß nehmen, da die Fenstergröße automatisch vom System (gs-DIALOG) festge -legt wird - je nachdem, ob Sie mit einem Menu oder mit geschachtelten Menus -arbeiten. -Auf die Einschränkungen bzw. Abweichungen gegenüber den Möglichkeiten, die Sie -bei Benutzung des ganzen Bildschirms haben, haben wir Sie ausdrücklich hingewie -sen: So ist es nicht möglich, den Text innerhalb eines Fensters zu rollen (scrolling); -statt dessen wird bei Überschreiten der unteren Fenstergrenze der Fensterinhalt -gelöscht und die Ausgabe oben im "neuen" Fenster fortgesetzt. -Als wir gs-DIALOG konzipierten und die ersten Anwendungen unter dieser Benutzer -schnittstelle entwarfen, fiel uns auf, daß es sehr günstig für die Strukturierung des -Bildschirms innerhalb der Anwendungsprogramme ist, wenn man den Bildschirm in -Bereiche (Fenster) einteilen und den Fenstern entsprechende Funktionen zuweisen -kann (z.B. Eingabe-, Informations-, Kontroll-Fenster etc.). Sinnvoll ist es dann, auch -die entsprechenden Ein-/Ausgaberoutinen zur Verfügung zu haben, die sich auf die -einzelnen Fenster beziehen. - -In diesem Kapitel werden wir Ihnen zeigen, wie Sie eigene Fenster definieren und -darin Ein- und Ausgaben realisieren können. Für die Fenster gelten die gleichen -Einschränkungen wie für das Menufenster - d.h. ein Rollen des Textes (scrolling) ist -nicht möglich. Die Fensterposition und -größe innerhalb des Bildschirms können Sie -aber festlegen. - - -#ib#7.1 Definition von Fenstern ('window')#ie# - -Das Fensterkonzept in gs-DIALOG ist sehr einfach gehalten: Durch die Definition -des Fenters werden nur Bereiche auf dem Bildschirm festgelegt, auf die sich -bestimmte Ein-/Ausgabeprozeduren beziehen. - -Wir wollen Ihnen die Verwendung von Fenstern wieder an einem kleinen Beispiel -verdeutlichen - bleiben wir dazu bei unserer Textverarbeitung: Für die Seitenforma -tierung müßte der Benutzer den oberen und linken Rand, die Schreibfeldbreite und -die Schreibfeldlänge festlegen. Dazu wollen wir dem Benutzer die aktuellen Werte -anzeigen und ggf. eine Neueinstellung vornehmen lassen. Ein Programm dazu könnte -so aussehen: - - -WINDOW VAR info :: window ( 2, 2, 32, 9), - frage :: window (36, 2, 40, 3), - daten :: window (36, 7, 40, 4); - -TEXT VAR oberer rand :: " 2.54", - linker rand :: " 2.54", - feldbreite :: "16.00", - feldlaenge :: "24.50"; - - -zeige aktuelle werte an; -frage nach neueinstellung. - -zeige aktuelle werte an: - page; show (info); - out (info, center (info, invers ("Aktuell eingestellte Werte:"))); - cursor (info, 2, 4); - out (info, "Oberer Rand : " + oberer rand + " cm"); - cursor (info, 2, 5); - out (info, "Linker Rand : " + linker rand + " cm"); - cursor (info, 2, 7); - out (info, "Schreibfeldbreite : " + feldbreite + " cm"); - cursor (info, 2, 8); - out (info, "Schreibfeldlänge : " + feldlaenge + " cm"). - -frage nach neueinstellung: - show (frage); - cursor (frage, 1, 1); - out (frage, center (frage, invers ("Papierformat einstellen:"))); - cursor (frage, 2, 3); - IF yes ("Neueinstellung vornehmen") - THEN neue werte erfragen - FI. - -neue werte erfragen: - show (daten); - erfrage oberen rand; - erfrage linken rand; - erfrage feldbreite; - erfrage feldlaenge. - -erfrage oberen rand: - REAL VAR neuer oberer rand; - cursor (daten, 1, 1); - out (daten, center (daten, invers ("Oberen Rand einstellen:"))); - cursor (daten, 2, 3); - out (daten, "Bitte den neuen Wert: "); - get (daten, neuer oberer rand); - oberer rand := text (neuer oberer rand, 5, 2); - cursor (info, 23, 4); - out (info, oberer rand). - -erfrage linken rand: - (* analog zu 'erfrage oberen rand *). - -erfrage feldbreite: - (* analog zu 'erfrage oberen rand *). - -erfrage feldlaenge: - (* analog zu 'erfrage oberen rand *). - - - -Am Anfang des Programms werden drei Fenster definiert. Das "Infofenster" erscheint -links oben auf dem Bildschirm, in ihm werden die aktuell eingestellten Werte ange -zeigt. Das "Fragefenster" erscheint neben dem ersten Fenster oben rechts auf dem -Bildschirm. -Beantwortet der Benutzer die dort ausgegebene Frage 'Neueinstellung vornehmen -(j/n)?' mit 'ja', dann erscheint unter dem zweiten Fenster ein drittes -("Datenfenster"). Innerhalb dieses Fensters können nacheinander die neuen Werte -eingelesen werden (nicht alle Prozeduren sind hier ausgeführt!). - -Die Definition eines Fensters erfolgt in folgender Weise: - - #ib#WINDOW#ie# VAR fenstername :: #ib#window#ie# ( x, y, xsize, ysize); - -Der Fenstervariablen wird durch 'window' eine Größe zugeordnet. Mit den ersten -beiden Werten legen Sie die linke obere Ecke des Fensters ('x' bezeichnet die Spalten, -'y' die Zeilen) auf dem Gesamtbildschirm fest. Mit 'xsize' bestimmen Sie die Fenster -breite (Spaltenzahl), mit 'ysize' die Höhe des Fensters (Zeilenzahl). Der Fenster -cursor hat die Position (1,1). -Die linke obere Ecke des ersten Fensters im Programm hat also die Position ( 2, 2). -Das Fenster ist 32 Spalten breit und 9 Zeilen hoch; es kann unter dem Namen 'info' -angesprochen werden. -Bei der Festlegung der Fenstermaße ist der Rahmen des Fensters nicht berücksich -tigt - er gehört nicht zum Fenster dazu! Haben Sie die Absicht, das Fenster mit -Rahmen auszugeben, dann sollten Sie das bei der Fensterdefinition berücksichtigen. -Wir haben es im Beispielprogramm auch gemacht: Die linke obere Ecke hat gerade -die Position (2,2) erhalten, damit noch der Rahmen Platz hat. Mit Rahmen ist unser -Fenster also 34 Spalten breit und 11 Zeilen hoch. Die linke obere Ecke des zweiten -Fensters ('frage') legen wir deshalb in die 36. Spalte und 2. Zeile, damit auch hier -Platz für den Rahmen bleibt. -Eine wichtige Einschränkung sollten Sie unbedingt berücksichtigen: Da manche -Terminals mit Beschreiben der Position (80,24) automatisch den Bildschirm -löschen, haben wir die maximale Ausdehnung eines umrandeten Fensters auf (2, 2, -77, 22) festgelegt. Überschreiten Sie irgendwo diese Grenzen, dann wird kein Rah -men mehr erzeugt. Der Rahmen wird auch dann nicht erzeugt, wenn er in der 0. -Zeile, 0.Spalte, 25 Zeile oder 80 Spalte zu liegen käme - erst recht natürlich nicht, -wenn diese Werte noch unter- bzw. überschritten werden. - - -#ib#7.2 Anzeigen/Löschen von Fenstern#ie# - ('#ib#show#ie#', '#ib#page#ie#', '#ib#erase#ie#', '#ib#out frame#ie#') - -Mit dem Befehl 'show (WINDOW VAR w)' wird das Fenster 'w' angezeigt. Der Fenster -variablen müssen natürlich zuvor die Maße des Fensters zugewiesen sein. Durch den -Befehl wird um den angegebenen Fensterbereich ein Rahmen gezogen und der -"Innenbereich" des Fensters gelöscht. Möchten Sie das Fenster ohne Rahmen ange -zeigt haben, so verwenden Sie nur den Befehl 'page (WINDOW VAR w)'. Durch die -sen Befehl wird nur der "Innenbereich" des Fensters gelöscht. -Haben Sie das Fenster einmal mit 'show' ausgegeben und wollen den Fensterinhalt -löschen, so verwenden Sie auch hier den Befehl 'page (WINDOW VAR w)', denn der -Rahmen braucht ja nicht erneut ausgegeben zu werden. -Möchten Sie ein Fenster und den zugehörigen Rahmen löschen, dann steht Ihnen der -Befehl 'erase (WINDOW VAR w) zur Verfügung: Durch den Befehl wird sowohl der -"Innenbereich" des Fensters als auch der Rahmen gelöscht. -Sie können natürlich auch selbst einen Rahmen um ein Fenster setzen. Dafür steht -der Befehl 'out frame (WINDOW VAR w)' zur Verfügung. Der Rahmen wird ebenfalls -um den durch 'w' bestimmten Fensterbereich gezogen - der "Innenbereich" bleibt -unberührt! - -Sollten Sie ein Fenster mit dem Befehl 'show' ausgeben (oder mit 'out frame' einen -Rahmen erzeugen) wollen, aber kein Rahmen auf dem Bildschirm erscheint, so -haben Sie die zulässigen Fenstergrenzen überschritten. Sehen Sie dazu auch Kapitel -7.1. - - -#ib#7.3 Operationen innerhalb des Fensters#ie# - -Innerhalb des selbstdefinierten Fensters stehen Ihnen die gleichen Operationen zur -Verfügung wie innerhalb des Menufensters. Bezieht sich eine Operation auf ein -Fenster, so wird der interne Fensterbezeichner als erster Parameter übergeben. - - -#ib#7.3.1 Datei anzeigen/editieren #ie#('#ib#edit#ie#', '#ib#show#ie#') - -Zum Anzeigen einer Datei steht die Prozedur 'show' zur Verfügung. Dabei kann -einmal ein FILE angegeben werden ('show (WINDOW VAR w, FILE VAR f)') oder aber -der Name der anzuzeigenden Datei ('show (WINDOW VAR w, TEXT VAR dateiname)'). -Die Datei kann nur eingesehen, nicht aber schreibend verändert werden. -Die Prozedur 'edit' gibt es ebenfalls in den zwei Ausprägungen. Hier kann die Datei -im Gegensatz zu 'show' auch schreibend verändert werden. -Durch diesen Befehl wird jeweils innerhalb des angegebenen Fensters die Datei -ausgegeben. Sofern die Lage des Fensters es zuläßt, wird automatisch ein Rahmen -um das Dateifenster gezogen. - - -#ib#7.3.2 Positionierungen im Fenster#ie# - ('#ib#cursor#ie#', '#ib#get cursor#ie#', '#ib#line#ie#', '#ib#remaining lines#ie#') - -Mit 'cursor (WINDOW VAR w, INT CONST spalte, zeile)' können Sie den Cursor inner -halb des angegebenen Fensters positionieren. Werden dabei die Fenstergrenzen über- -oder unterschritten, so wird der Fensterinhalt gelöscht und auf die Position (1, 1) -innerhalb des Fensters positioniert. -Mit der Prozedur 'get cursor (WINDOW VAR w, INT VAR spalte, zeile)' können Sie die -aktuelle Cursorposition innerhalb des angegebenen Fensters erfragen. -Wollen Sie an den Anfang der nächsten Zeile positionieren, dann verwenden Sie den -Befehl 'line (WINDOW VAR w)' - wollen Sie gleich mehrere Zeilen vorwärtspositionie -ren, dann benutzen Sie den Befehl 'line (WINDOW VAR w, INT VAR anzahl zeilen)'. -Wird allerdings bei einem der beiden letzten Befehle die untere Fenstergrenze über -schritten, so wird der Fensterinhalt gelöscht und die Operation in der ersten Zeile des -neuen Fensters fortgesetzt. -Die Informations-Prozedur 'remaining lines (WINDOW VAR w)' liefert Ihnen die -Anzahl der unterhalb der aktuellen Zeile noch im Fenster vorhanden Zeilen. - - -#ib#7.3.3 Ein- und Ausgaben innerhalb des Fensters#ie# - ('#ib#out#ie#', '#ib#put#ie#', '#ib#putline#ie#', '#ib#get#ie#', '#ib#getline#ie#', '#ib#yes#ie#', '#ib#no#ie#') - -Mit der Prozedur 'out (WINDOW VAR w, TEXT CONST text)' können Sie einen Text -innerhalb des angegebenen Fensters ausgeben. Paßt der Text nicht mehr in die -aktuelle Zeile, so wird er in der nächsten Zeile fortgesetzt. -Bedenken Sie, daß innerhalb der Fenster kein Wortumbruch realisiert ist. Ebenso -wenig ist das Rollen (scrolling) des Fensterinhalts möglich: Erfolgt die Ausgabe eines -Textes über die untere Fenstergrenze hinaus, so wird der Fensterinhalt gelöscht und -die Ausgabe an der Position (1, 1) des Fensters fortgesetzt. -Zur Ausgabe von Texten stehen noch die beiden Prozeduren 'put (WINDOW VAR w, -TEXT CONST text)' und 'putline (WINDOW VAR w, TEXT CONST text)' zur Verfügung. -Bei erstgenannter Prozedur wird gegenüber 'out' an die Ausgabe noch ein Leerzei -chen angehängt, bei der zweiten wird zusätzlich an den Anfang der nächsten Zeile -positioniert. -Zahlenwerte können mit den Prozeduren 'put (WINDOW VAR w, INT CONST intwert)' -und 'put (WINDOW VAR w, REAL CONST realwert)' ausgegeben werden. An die -Zahlenwerte wird jeweils ein Leerzeichen angehängt. - -Für das Einlesen von Werten steht die Prozedur 'get' in mehreren Varianten zur -Verfügung. Mit 'get (WINDOW VAR w, TEXT VAR text)' kann ein Text an der aktuellen -Position des Fensters eingelesen werden. Stehen in der aktuellen Zeile des Fensters -weniger als 5 Zeichenpositionen für die Eingabe zur Verfügung, so wird automatisch -auf den Anfang der nächsten Zeile innerhalb des Fensters positioniert. -Über einen dritten Parameter können noch zusätzliche Festlegungen getroffen wer -den: Soll die Eingabe noch durch weitere Zeichen (außer Positionierungszeichen) -abgeschlossen werden können, so werden die Zeichen als TEXT übergeben( 'get -(WINDOW VAR w, TEXT VAR text, TEXT CONST separator)'), soll die Maximallänge des -einzugebenden Textes festgelegt sein, so wird diese als INT übergeben ('get (WINDOW -VAR w, TEXT VAR text, INT CONST laenge)'). - -Mit den Prozeduren 'get (WINDOW VAR w, INT VAR intwert)' und 'get (WINDOW VAR -w, INT VAR realwert)' können auch Zahlenwerte innerhalb des Fensters eingelesen -werden. - -Damit dem Anwender auch Vorschläge für der Eingabe gemacht werden können, -steht die Prozedur 'editget' in zwei Variationen zur Verfügung. Bei 'editget' (WINDOW -VAR w, TEXT VAR ausgabe) wird 'ausgabe zum Editieren ausgegeben. Daneben -existiert noch ein 'editget' mit 7 Parametern, der detailliert bei der Zusammenstel -lung der Befehle erläutert ist. - -Ebenso wie auf dem Gesamtbildschirm und innerhalb des Menufensters stehen auch -hier die beiden Prozeduren 'yes (WINDOW VAR w, TEXT CONST frage)' und 'no -(WINDOW VAR w, TEXT CONST frage)' zur Verfügung. - - -#ib#7.3.4 Weitere Prozeduren #ie#('#ib#center#ie#', '#ib#stop#ie#') - -Mit 'center (WINDOW VAR w, TEXT CONST text)' werden vor dem angegebenen Text -so viele Leerzeichen angehängt, daß der Text zentriert in der aktuellen Fensterzeile -ausgegeben wird - wenn der Cursur bei der Ausgabe auf der ersten Position der Zeile -steht. Dabei werden aber bereits vorhandene Zeileninhalte überschrieben. - -Durch die Prozedur 'stop (WINDOW VAR w)' wird innerhalb des angegebenen Fen -sters an den Anfang der übernächsten Zeile positioniert und der Text " Zum Weiter -machen bitte irgendeine Taste tippen!" ausgegeben. Möchten Sie nicht an den Anfang -der übernächsten Zeile positionieren, so können Sie die Anzahl der Zeilen auch -explizit festlegen durch 'stop (WINDOW VAR w, INT CONST zeilenzahl). - - -#ib#7.4 Boxoperationen#ie# - -Innerhalb des Menufensters (sehen Sie Kapitel 5) stehen Ihnen die Prozeduren -'menuanswer', 'menuinfo', 'menuone', 'menusome', 'menuanswerone', -'menuanswersome', 'menuyes', 'menuno', 'menualternative', 'write menunotice' und -'menufootnote' zur Verfügung. Alle diese Prozeduren bezogen sich auf das von -gs-DIALOG automatisch gesetzte Menufenster. -Auch innerhalb der von Ihnen selbst definierten Fenster können Sie auf ähnliche -Prozeduren zurückgreifen. Da wir die eben genannten Prozeduren in Kapitel 5 sehr -detailliert beschrieben haben, werden wir hier nur auf die entsprechenden -Beschreibungen verweisen und ggf. die Besonderheiten/Abweichnungen erwähnen. -Zu beachten ist, daß innerhalb des Fensters weder die oberen noch die unteren zwei -Zeilen von der "Box" beschrieben werden. Die oberen bleiben ständig frei - die unter -en werden zur Ausgabe der zugehörigen Benutzerinformation (Fußnote) benutzt - -das sollten Sie bei der Festlegung der Fenstergröße bzw. bei der Länge der zu über -gebenden Texte berücksichtigen. Bei der Übergabe der Texte müssen Sie sich an die -gs-DIALOG Syntax-Regeln halten, die in Kapitel 5.12 beschrieben sind. - -Die Prozedur '#ib#boxanswer#ie# (WINDOW VAR w, TEXT CONST ausgabetext, antwortvorgabe, -INT CONST position)' arbeitet wie die Prozedur 'menuanswer (TEXT CONST ausgabe -text, antwortvorgabe, INT CONST position)' nur innerhalb des Fensters 'w' (sehen Sie -auch Kapitel 5.1). - -Die Prozedur '#ib#boxinfo#ie#' gibt es in zwei Ausführungen: 'boxinfo (WINDOW VAR w, TEXT -CONST text)' arbeitet wie 'menuinfo (TEXT CONST text)', allerdings auf dem angege -benen Fenster. Bei 'boxinfo (WINDOW VAR w, TEXT CONST text, INT CONST position, -timelimit)' kann über den dritten Parameter noch die relative Position im angegebe -nen Fenster (sehen Sie dazu Kapitel 5.12) und über den vierten Parameter die Zeit -spanne festgelegt werden, für die die Information erscheint (sehen Sie auch Kap. -5.2). - -Die Prozedur '#ib#boxone#ie# (WINDOW VAR w, THESAURUS CONST thesaurus, TEXT CONST -text1, text2, BOOL CONST mit reinigung)' arbeitet wie die Prozedur 'menuone -(THESAURUS CONST thesaurus, TEXT CONST text1, text2, BOOL CONST mit reini -gung)'. Zu bedenken ist hier, daß die Auswahl innerhalb des Fensters Platz finden -muß. Der Aufruf dieser Prozedur ist daher nur möglich, wenn das angegebene Fen -ster mindestens 60 Spalten breit und 17 Zeilen hoch ist. Ansonsten kommt es zu -einer Fehlermeldung (sehen Sie auch Kap. 5.3). - -Die Prozedur '#ib#boxsome#ie# (WINDOW VAR w, THESAURUS CONST thesaurus, TEXT -CONST text1, text2, BOOL CONST mit reinigung)' arbeitet wie die Prozedur -'menusome (THESAURUS CONST thesaurus, TEXT CONST text1, text2, BOOL CONST -mit reinigung)'. Hinsichtlich der Fenstergröße gelten die gleichen Einschränkungen -wie bei 'boxone' (sehen Sie auch Kap. 5.4). - -Die Prozeduren '#ib#boxanswerone#ie#' und '#ib#boxanswersome#ie#' entsprechen den Prozeduren -'menuanswerone' und 'menuanswersome'; es wird nur zusätzlich jeweils als erster -Parameter das aktuelle Fenster übergeben. Hinsichtlich der Fenstergröße gelten die -gleichen Einschränkungen wie bei 'boxone' (sehen Sie auch Kap. 5.5). - -Die Prozeduren '#ib#boxyes#ie#', '#ib#boxno#ie#' und '#ib#boxalternative#ie#' entsprechen den Prozeduren -'menuyes', 'menuno' und 'menualternative'; es wird nur zusätzlich jeweils als erster -Parameter das aktuelle Fenster übergeben (sehen Sie auch Kap. 5.6 und 5.7). - -Die Prozedur '#ib#boxnotice#ie#' unterscheidet sich von der Prozedur 'write menunotice' -erheblich: Letztgenannte Prozedur hat zwei Parameter. Durch den ersten wird der -Ausgabetext übergeben, mit dem zweiten wird die relative Position innerhalb des -Menubildschirms festgelegt. Sowohl Text als auch Position werden vom System ge -speichert. Bei jedem Neuaufbau eines Pull-Down-Menus oder des Menubildschirms -wird die Notiz neu mitaufgebaut. -Die Prozedur 'boxnotice (WINDOW VAR w, TEXT CONST text, INT CONST position, INT -VAR x, y, xsize, ysize) dagegen hat sieben Parameter. Über den ersten wird das aktuel -le Fenster festgelegt. Die beiden nächsten Parameter entsprechen den beiden Para -metern von 'write menunotice'. Über die letzten vier Parameter werden die Posi -tion/Maße der Box geliefert, die ja erst durch das Aussehen der übergebenen Texte -festgelegt werden. Weder Text noch Position der Boxnotiz werden vermerkt. Wollen Sie -die Notiz löschen, so verwenden Sie eine der Prozeduren '#ib#page#ie# (INT CONST x, y, xsize, -ysize)' oder '#ib#page up#ie# (INT CONST x, y, xsize, ysize)'. Im ersten Falle erscheint es dem -Betrachter, als ob die Box von oben nach unten "aufgerollt" würde, im zweiten Falle -von unten nach oben. - -Mit den Prozeduren '#ib#out footnote#ie# (WINDOW VAR w, TEXT CONST text)' wird in der -untersten Zeile des Fensters 'w' der angegebene Text ausgegeben. In der vorletzten -Zeile des Fensters wird eine Trennlinie ausgegeben. Die Fußnote incl. der Trennline -kann durch den Befehl '#ib#erase footnote#ie#' gelöscht werden. - - diff --git a/doc/menugenerator/menu-generator handbuch.8 b/doc/menugenerator/menu-generator handbuch.8 deleted file mode 100644 index 66eb6cf..0000000 --- a/doc/menugenerator/menu-generator handbuch.8 +++ /dev/null @@ -1,1676 +0,0 @@ -#block##pageblock# -#pagenr("%",1)##setcount(1)##count per page# -#headeven# -gs-Menu-Generator -#center#____________________________________________________________ - -#end# -#headodd# -#right#gs-Menu-Generator -#center#____________________________________________________________ - -#end# -#bottomeven# -#center#____________________________________________________________ -8 - % #right#ERGOS -#end# -#bottomodd# -#center#____________________________________________________________ -ERGOS #right# 8 - % -#end# -#ib#8 Kurzbeschreibung der Befehle #ie# - - -Durch #u#(*)#e# gekennzeichnete Prozeduren stehen (zumindest in der hier dokumentier -ten Form) erst ab gs-DIALOG Version 1.1 zur Verfügung! - - -#ib#activate#ie# -PROC activate (TEXT CONST punktname): - -Zweck: Mit der Prozedur kann ein (deaktivierter) Menupunkt im aktuellen - Pull-Down-Menu aktiviert, d.h. zur Ausführung freigegeben werden. Das - '-'-Zeichen vor der Punktbezeichnung verschwindet auf dem Bildschirm, - statt dessen erscheint das Zeichen, über den die Menufunktion direkt - aktivierbar ist. 'punktname' muß eine Punktbezeichnung sein, die genau - in der angegebenen Schreibweise im aktuellen Pull-Down-Menu vorhan - den ist (über den 2. Parameter der Prozedur 'menufunktion' in die - Menukarte eingetragen wurde) - ansonsten wird diese Anweisung igno - riert. Die Prozedur "zeigt nur dann Wirkung", wenn sie aus einer Verar - beitungsfunktion des aktuell entfalteten Pull-Down-Menus heraus oder - durch die "Startprozedur"/"Leaveprozedur" des aktuellen Pull-Down- - Menus (sehen Sie auch 'oberbegriff') aufgerufen wird. - Die Veränderung wird nicht sofort auf dem Bildschirm angezeigt, sondern - erst, wenn das Pull-Down-Menu das nächste Mal vom System regeneriert - wird; ansonsten muß das Kommando 'refresh submenu' gegeben werden. - - -PROC activate (INT CONST punktposition):#u#(*)#e# -Zweck: arbeitet wie obiges 'activate', allerdings werden die Menupunkte nicht - über ihre Bezeichnung, sondern über ihre Position im (aktuellen) Pull- - Down-Menu identifiziert. Die Positionen sind von oben nach unten durch - numeriert. Beachten Sie, daß Trennlinien eine Position belegen und - mitgezählt werden. Die Prozedur arbeitet schneller als obige! - - -#ib#anwendungstext#ie# -TEXT PROC anwendungstext (INT CONST zeilennummer): - -Zweck: Mit diesem Befehl können Texte angesprochen (geholt) werden, die in die - Menukarte ausgelagert wurden. Es wird der Text aus der angekoppelten - Menukarte geliefert, der bei der "Einlagerung" in der Zeile 'zeilen - nummer' stand. -Fehler: Kein Text vorhanden! (In der angekoppelten Menukarte ist unter der - 'zeilennummer' kein Anwendungstext eingetragen.) - Bitte achten Sie auf folgendes: Wenn Sie eine neue Menukarte generiert - haben, muß diese erst an die aktuelle Task gekoppelt werden, bevor Sie - auf die dort eingetragenen (Anwendungs-)Texte zugreifen können (z.B. - mit 'testinstallation'). - - -#ib#areax#ie# -INT PROC areax (WINDOW VAR w) -Zweck: Liefert den Wert 'x' des Fensters w. - - -#ib#areaxsize#ie# -INT PROC areaxsize (WINDOW VAR w) -Zweck: Liefert den den Wert 'xsize' des Fensters w. - - -#ib#areay#ie# -INT PROC areay (WINDOW VAR w) -Zweck: Liefert den den Wert 'y' des Fensters w. - - -#ib#areaysize#ie# -INT PROC areaysize (WINDOW VAR w) -Zweck: Liefert den den Wert 'ysize' des Fensters w. - - -#ib#balken links#ie# -TEXT PROC balken links: - -Zweck: Liefert das Zeichen, das bei der Darstellung der "Kästen" als "linker - Balken" (̄) ausgegeben wird. - - -PROC balken links (TEXT CONST zeichen): - -Zweck: Durch diese Prozedur kann das Zeichen festgelegt werden, das bei Dar - stellung der "Kästen" als "linker Balken" ausgegeben werden soll. - - -#ib#balken oben#ie# -TEXT PROC balken oben: - -Zweck: Liefert das Zeichen, das bei der Darstellung der "Kästen" als "oberer - Balken" (�) ausgegeben wird. - - -PROC balken oben (TEXT CONST zeichen): - -Zweck: Durch diese Prozedur kann das Zeichen festgelegt werden, das bei Dar - stellung der "Kästen" als "oberer Balken" ausgegeben werden soll. - - -#ib#balken rechts#ie# -TEXT PROC balken rechts: - -Zweck: Liefert das Zeichen, das bei der Darstellung der "Kästen" als "rechter - Balken" (̃) ausgegeben wird. - - -PROC balken rechts (TEXT CONST zeichen): - -Zweck: Durch diese Prozedur kann das Zeichen festgelegt werden, das bei Dar - stellung der "Kästen" als "rechter Balken" ausgegeben werden soll. - - -#ib#balken unten#ie# -TEXT PROC balken unten: - -Zweck: Liefert das Zeichen, das bei der Darstellung der "Kästen" als "unterer - Balken" (̂) ausgegeben wird. - - -PROC balken unten (TEXT CONST zeichen): - -Zweck: Durch diese Prozedur kann das Zeichen festgelegt werden, das bei Dar - stellung der "Kästen" als "unterer Balken" ausgegeben werden soll. - - -#ib#boxalternative#ie# -INT PROC boxalternative (WINDOW VAR w, - TEXT CONST infotext, - auswahlliste, - zusatztasten, - INT CONST position, - BOOL CONST mit abbruch): - -Zweck: Vergl. 'menualternative'. Hier wird nur zusätzlich das Fenster festgelegt, - das bei 'menualternative' automatisch gesetzt wird. Der 'infotext' muß - den gs-DIALOG-Syntax-Regel gehorchen! Die 'auswahlliste' muß nach - festen Regeln erstellt werden (sehen Sie Kap. 5.7) - - -#ib#boxanswer#ie# -TEXT PROC boxanswer (WINDOW VAR w, - TEXT CONST infotext, - vorgabe, - INT CONST position): - -Zweck: Vergl. 'menuanswer'. Hier wird nur zusätzlich das Fenster festgelegt, das - bei 'menuanswer' automatisch gesetzt wird. Der 'infotext' muß den - gs-DIALOG-Syntax-Regel gehorchen! - - -#ib#boxanswerone#ie# -TEXT PROC boxanswerone (WINDOW VAR w, - TEXT CONST infotext, - vorgabe, - THESAURUS CONST thes, - TEXT CONST ueberschrift, - hinweis, - BOOL CONST mit reinigung): - -Zweck: Vergl. 'menuanswerone'. Hier wird nur zusätzlich das Fenster festgelegt, - das bei 'menuanswerone' automatisch gesetzt wird. -Fehler: Fenster für Auswahl zu klein (x < 56, y < 15) - - -#ib#boxanswersome#ie# -THESAURUS PROC boxanswersome (WINDOW VAR w, - TEXT CONST infotext, - vorgabe, - THESAURUS CONST thes, - TEXT CONST ueberschrift, - hinweis, - BOOL CONST mit reinigung): - -Zweck: Vergl. 'menuanswersome'. Hier wird nur zusätzlich das Fenster festgelegt, - das bei 'menuanswersome' automatisch gesetzt wird. -Fehler: Fenster für Auswahl zu klein (x < 56, y < 15) - - -#ib#boxinfo#ie# -PROC boxinfo (WINDOW VAR w, TEXT CONST infotext, - INT CONST position, timelimit): - -Zweck: Vergl. 'menuinfo'. Hier wird nur zusätzlich das Fenster festgelegt, das bei - 'menuinfo' automatisch gesetzt wird. Der 'infotext' muß den gs-DIALOG- - Syntax-Regel gehorchen! - - -PROC boxinfo (WINDOW VAR w, TEXT CONST infotext): - - wirkt wie: boxinfo (w, infotext, 5, maxint) - - -#ib#boxno#ie# -BOOL PROC boxno (WINDOW VAR w, - TEXT CONST frage, - INT CONST position): - - wirkt wie: NOT boxyes (w, frage, position) - - -#ib#boxnotice#ie# -PROC boxnotice (WINDOW VAR w, - TEXT CONST infotext, - INT CONST position - INT VAR x, y, xsize, ysize): - -Zweck: Mit 'w' wird das aktuelle Fenster festgelegt. In 'infotext' wird der Text - übergeben, der als Notiz ausgegeben werden soll, der Text muß den - gs-DIALOG-Syntax-Regeln entsprechen. Mit 'position' wird die relative - Lage innerhalb des Fensters 'w' bestimmt. Über die letzten vier Parameter - werden die Position/Maße der Box geliefert. Weder Text noch Position - werden vermerkt. - - -#ib#boxone#ie# -TEXT PROC boxone (WINDOW VAR w, - THESAURUS CONST thes, - TEXT CONST ueberschrift, - hinweis, - BOOL CONST mit reinigung): - -Zweck: Vergl. 'menuone'. Hier wird nur zusätzlich das Fenster festgelegt, das bei - 'menuone' automatisch gesetzt wird. -Fehler: Fenster für Auswahl zu klein (x < 56, y < 15) - - -#ib#boxsome#ie# -THESAURUS PROC boxsome (WINDOW VAR w, - THESAURUS CONST thes, - TEXT CONST ueberschrift, - hinweis, - BOOL CONST mit reinigung): - -Zweck: Vergl. 'menusome'. Hier wird nur zusätzlich das Fenster festgelegt, das - bei 'menusome' automatisch gesetzt wird. -Fehler: Fenster für Auswahl zu klein (x < 56, y < 15) - - -#ib#boxyes#ie# -BOOL PROC boxyes (WINDOW VAR w, - TEXT CONST frage, - INT CONST position): - -Zweck: Vergl. 'menuyes'. Hier wird nur zusätzlich das Fenster festgelegt, das bei - 'menuyes' automatisch gesetzt wird. Die 'frage' muß den gs-DIALOG- - Syntax-Regel gehorchen! - - -#ib#center#ie# -TEXT PROC center (WINDOW VAR w, TEXT CONST text): - -Zweck: Vergl. 'menuwindowcenter'. Hier wird nur zusätzlich das Fenster festge - legt, das bei 'menuwindowcenter' automatisch gesetzt wird. - - -TEXT PROC center (INT CONST laenge, - TEXT CONST text): - -Zweck: "Ummantelt" 'text' mit Leerzeichen, so daß 'text' etwa in der Mitte zu - stehen kommt. Der gelieferte Text hat die Länge 'laenge'. - - -TEXT PROC center (TEXT CONST text): - - wirkt wie: center (79, text) - - -#ib#clear buffer#ie# -PROC clear buffer - -Zweck: Leert den Zeichenpuffer - - -#ib#clear buffer and count#ie# -INT PROC clear buffer and count (TEXT CONST - zeichen): - -Zweck: Leert den Zeichenpuffer und liefert die Häufigkeit des Vorkommens von - 'zeichen' im Zeichenpuffer. - - -#ib#current menuwindow#ie# -WINDOW PROC current menuwindow: - -Zweck: liefert das aktuelle Menufenster (die Einzelwerte können dann mit - 'areax', 'areay', 'areaxsize' und 'areaysize' erfragt werden). - - -#ib#cursor#ie# -PROC cursor (WINDOW VAR w, INT CONST spalte, - zeile): - -Zweck: Vergl. 'menuwindowcursor'. Hier wird nur zusätzlich das Fenster festge - legt, das bei 'menuwindowcursor' automatisch gesetzt wird. - - -#ib#cursor off#ie# -PROC cursor off: - -Zweck: Sofern die EUMEL-Installation die Möglichkeit bietet, wird der Cursor aus - dem Bildschirm ausgeblendet. - Wenn neue Verarbeitungsfunktionen entwickelt werden, sollte zu Beginn - der Cursor eingeschaltet und nach Abschluß der Cursor wieder ausge - schaltet werden (sehen Sie auch Kap. 5.1). - - -PROC cursor off (TEXT CONST zeichenkette): - -Zweck: Neufestlegung der 'zeichenkette', die ausgegeben werden soll, um bei der - aktuellen EUMEL-Installation den Cursor auf den Befehl 'cursor off' hin - auszuschalten. - - -#ib#cursor on#ie# -PROC cursor on: - -Zweck: Sofern die EUMEL-Installation die Möglichkeit bietet, wird der Cursor auf - dem Bildschirm angezeigt. Wenn neue Verarbeitungsfunktionen entwik - kelt werden, sollte zu Beginn der Cursor eingeschaltet und nach Abschluß - der Cursor wieder ausgeschaltet werden (sehen Sie auch Kap. 5.1). - - -PROC cursor on (TEXT CONST zeichenkette): - -Zweck: Neufestlegung der 'zeichenkette', die ausgegeben werden soll, um bei der - aktuellen EUMEL-Installation den Cursor auf den Befehl 'cursor on' hin - anzuschalten. - - -#ib#deactivate#ie# -PROC deactivate (TEXT CONST punktname): - -Zweck: Vergl. 'activate (TEXT CONST punktname)'. - Im Gegensatz zu der Prozedur wird hier 'punktname' deaktiviert und - beim (nächsten) Erscheinen der Menupunktbezeichnung ein '-'Zeichen - vorangestellt. Es gelten die gleichen Einschränkungen wie bei 'activate'! - - -PROC deactivate (INT CONST punktposition):#u#(*)#e# -Zweck: arbeitet wie obiges 'deactivate', allerdings werden die Menupunkte nicht - über ihre Bezeichnung, sondern über ihre Position im (aktuellen) Pull- - Down-Menu identifiziert. Die Positionen sind von oben nach unten durch - numeriert. Beachten Sie, daß Trennlinien eine Position belegen und - mitgezählt werden. Die Prozedur arbeitet schneller als obige! - - -#ib#direktstart#ie# -PROC direktstart (TEXT CONST prozedurname, - BOOL CONST mit loeschen):#u#(*)#e# -Zweck: Macht aus der aktuellen Task eine Manager-Task ('global manager'). - Werden neue Sohntasks eingerichtet, so melden sich diese nicht - wie - gewohnt - mit der 'gib kommando:'-Ebene. Statt dessen wird die Prozedur - 'prozedurname' ausgeführt. Das Kommando ist dann sinnvoll, wenn sich - die Sohntask gleich mit einem Menu melden soll. In der Prozedur - 'prozedurname' muß dann die entsprechende Menukarte angekoppelt - und das gewünschte Menu zur Ausführung gebracht werden. Hat 'mit - loeschen den Wert 'TRUE', so wird nach Verlassen der Menuebene die - Task automatisch gelöscht; bei 'FALSE' wird noch angefragt, ob die Task - gelöscht werden soll. Wird die Frage bejaht, wird gelöscht; sonst wird die - Task abgekoppelt (break) und kann durch 'continue' wieder angekoppelt - werden. - In der Task, in der das Kommando 'direktbefehl' gegeben wurde, sollte - nicht das Kommando 'monitor' gegeben werden, da dadurch auch die - se Task zu einer Task gemacht würde, die sich direkt mit dem Menu - meldet und ggf. bei Verlassen des Menus automatisch gelöscht wird! Die - 'gib kommando:'-Ebene ist dadurch unzugänglich! - - -#ib#ecke oben links#ie# -TEXT PROC ecke oben links: - -Zweck: Liefert das Zeichen, das bei der Darstellung der "Kästen" links oben in der - Ecke (ω) ausgegeben wird. - - -PROC ecke oben links (TEXT CONST zeichen): - -Zweck: Durch diese Prozedur kann das Zeichen festgelegt werden, das bei Dar - stellung der "Kästen" links oben in der Ecke ausgegeben werden soll. - - -#ib#ecke oben rechts#ie# -TEXT PROC ecke oben rechts: - -Zweck: Liefert das Zeichen, das bei der Darstellung der "Kästen" rechts oben in - der Ecke (�) ausgegeben wird. - - -PROC ecke oben rechts (TEXT CONST zeichen): - -Zweck: Durch diese Prozedur kann das Zeichen festgelegt werden, das bei Dar - stellung der "Kästen" rechts oben in der Ecke ausgegeben werden soll. - - -#ib#ecke unten links#ie# -TEXT PROC ecke unten links: - -Zweck: Liefert das Zeichen, das bei der Darstellung der "Kästen" links unten in - der Ecke (�) ausgegeben wird. - - -PROC ecke unten links (TEXT CONST zeichen): - -Zweck: Durch diese Prozedur kann das Zeichen festgelegt werden, das bei Dar - stellung der "Kästen" links unten in der Ecke ausgegeben werden soll. - - -#ib#ecke unten rechts#ie# -TEXT PROC ecke unten rechts: - -Zweck: Liefert das Zeichen, das bei der Darstellung der "Kästen" rechts unten in - der Ecke (�) ausgegeben wird. - - -PROC ecke unten rechts (TEXT CONST zeichen): - -Zweck: Durch diese Prozedur kann das Zeichen festgelegt werden, das bei Dar - stellung der "Kästen" rechts unten in der Ecke ausgegeben werden soll. - - -#ib#edit#ie# -PROC edit (WINDOW VAR w, TEXT CONST dateiname): - -Zweck: Vergl. 'menuwindowedit'. Hier wird nur zusätzlich das Fenster festgelegt, - das bei 'menuwindowedit' automatisch gesetzt wird. - - -PROC edit (WINDOW VAR w, FILE VAR f): - -Zweck: Vergl. 'menuwindowedit'. Hier wird nur zusätzlich das Fenster festgelegt, - das bei 'menuwindowedit' automatisch gesetzt wird. - - -#ib#editget#ie# -PROC editget (WINDOW VAR w, TEXT VAR text):#u#(*)#e# -Zweck: Eingabe mit Editiermöglichkeit von 'text'. 'text' wird ausgegeben. Die - Eingabe wird mit RETURN beendet. 'text' darf höchstens 79 Zeichen - lang sein! Fehler: Text nicht initialisiert. - - -PROC editget (WINDOW VAR w, TEXT VAR text, - INT CONST max laenge, scroll, - TEXT CONST sep, res, - TEXT VAR exit char):#u#(*)#e# -Zweck: Wie oben. Über 'max laenge' kann festgelegt werden , wie lang der einzu - gebende Text ('text') maximal sein darf. Über 'scroll' wird die Breite des - Zeilenfensters festgelegt, bevor gerollt wird (jedoch nicht über die rech - te Fenstergrenze hinaus). Über 'sep' können Zeichen bestimmt werden, - bei denen die Eingabe (zusätzlich zu RETURN) beendet werden soll. Über - 'res' können reservierte Tasten angegeben werden. Wird eine dieser - Tasten mit ESC betätigt, wird die Eingabe beendet. In 'exit char' steht - dann ESC und das Zeichen, mit dem der Editor verlassen wurde. -Fehler: Text nicht initialisiert. - - -#ib#erase#ie# -PROC erase (WINDOW VAR fenster): - -Zweck: Der durch 'fenster' beschrieben Bildschirmbereich wird gelöscht - ein - schließlich des Rahmens, der den Fensterbereich umgibt (vergl. Sie auch - 'page')! - - -#ib#erase footnote#ie# -PROC erase footnote (WINDOW VAR fenster): - -Zweck: Die letzten beiden Zeilen in 'fenster' (in der die Fußnote nebst Trennlinie - eingetragen sind) werden gelöscht (vergl. Sie auch 'out footnote')! - - -#ib#erase menunotice#ie# -PROC erase menunotice: - -Zweck: Sofern zuvor mit 'write menunotice' (sehen Sie auch dort) eine Menunotiz - gesetzt wurde, wird diese gelöscht, ansonsten hat die Prozedur keine - Wirkung. - - -#ib#get#ie# -PROC get (WINDOW VAR w, TEXT CONST eingabe): - -Zweck: Vergl. 'menuwindowget'. Hier wird nur zusätzlich das Fenster festgelegt, - das bei 'menuwindowget' automatisch gesetzt wird. - - -PROC get (WINDOW VAR w, INT CONST wert): - -Zweck: Vergl. 'get (WINDOW VAR w, TEXT CONST eingabe)'. Der eingelesene Wert - wird anschließend entsprechend konvertiert. - - - -PROC get (WINDOW VAR w, REAL CONST wert): - -Zweck: Vergl. 'get (WINDOW VAR w, TEXT CONST eingabe)'. Der eingelesene Wert - wird anschließend entsprechend konvertiert. - - -PROC get (WINDOW VAR w, TEXT CONST eingabe, - INT CONST laenge): - -Zweck: Vergl. 'get (WINDOW VAR w, TEXT CONST eingabe)'. Zusätzlich wird die - Eingabe beendet, wenn der eingegebene Text die Länge 'laenge' erreicht - hat. - - -PROC get (WINDOW VAR w, TEXT CONST eingabe, - TEXT CONST separator): - -Zweck: Vergl. 'get (WINDOW VAR w, TEXT CONST eingabe)'. Zusätzlich werden - über 'separtor' die Zeichen festgelegt, die zusätzlich zu den Positionie - rungszeichen die Eingabe beenden. - - -#ib#get cursor#ie# -PROC get cursor (WINDOW VAR w, INT VAR spalte, - zeile): - -Zweck: Vergl. 'get menuwindowcursor'. Hier wird nur zusätzlich das Fenster - festgelegt, das bei 'get menuwindowcursor' automatisch gesetzt wird. - - -#ib#getline#ie# -PROC getline (WINDOW VAR w, TEXT CONST eingabe): - -Zweck: Vergl. 'get (WINDOW VAR w, TEXT CONST eingabe). Nur wird hier die - Eingabe ausschließlich über die Positionierungstasten - nicht aber über - das Leerzeichen beendet. - - -#ib#get menuwindowcursor#ie# -PROC get menuwindowcursor (INT VAR spalte, zeile): - -Zweck: Mit der Prozedur wird die aktuelle Cursorposition innerhalb des Menu - fensters erfragt. - - -#ib#handle menu#ie# -PROC handle menu (TEXT CONST menuname): - -Zweck: Bringt das in der angekoppelten Menukarte enthaltene Menu mit dem - Namen 'menuname' zur Ausführung, d.h. das entsprechende Menu wird - auf dem Bildschirm präsentiert und kann mit den üblichen Tastenfunk - tionen gehandhabt werden. - (Anmerkung: Die Menufunktionen können natürlich nur dann ausge - führt werden, wenn die zugehörigen Programme in der aktuellen Task - zuvor insertiert wurden - ansonsten erscheint auf dem Bildschirm jeweils - der Hinweis 'unbekanntes Kommando'!) -Fehler: Das Menu 'menuname' ist nicht in der angekoppelten Menukarte! - - -#ib#infix namen#ie# -THESAURUS PROC infix namen (THESAURUS CONST thes, - TEXT CONST infix): - -Zweck: Die Prozedur liefert einen Thesaurus, in dem alle Namen enthalten sind, - die in 'thes' übergeben wurden und die den Wortbestandteil 'infix' enthal - ten (gleichgültig an welcher Position). - - -THESAURUS PROC infix namen (THESAURUS CONST thes, - INT CONST dateityp): - -Zweck: Die Prozedur liefert einen Thesaurus, in dem alle Dateinamen enthalten - sind, die in 'thes' übergeben wurden und die den Dateityp 'dateityp' - haben. - - -THESAURUS PROC infix namen (THESAURUS CONST thes, - TEXT CONST infix, - INT CONST dateityp): - - wirkt wie: infix namen (infix namen (thes, infix), dateityp) - - -#ib#install menu#ie# -PROC install menu (TEXT CONST menukartenname, - BOOL CONST mit emblem): - -Zweck: Mit diesem Befehl wird die Menukarte mit dem Namen 'menukarten - name' aus der Task 'gs-MENUKARTEN' in die aktuelle Task kopiert. Die - Menukarte wird als unbenannter Datenraum an die Task gekoppelt. Der - benannte Datenraum wird gelöscht. Der Name der angekoppelten Menu - karte wird vermerkt. - Stimmt der Name der angekoppelten Menukarte mit dem Namen der - angeforderten Menukarte überein, dann wird nicht erneut eine Kopie - angefordert, sondern auf der bereits angekoppelten Menukarte gearbeitet. - Hat 'mit emblem' den Wert 'TRUE', dann wird unser 'Software-Emblem' - während des Ankoppelvorgangs auf dem Bildschirm ausgegeben, bei - 'FALSE' nicht. -Fehler: Die Menukarte 'menukartenname' existiert nicht in der Task - 'gs-MENUKARTEN'. - - -PROC install menu (TEXT CONST menukartenname): - - wirkt wie: install menu (TEXT CONST menukartenname, TRUE) - - -#ib#invers#ie# -TEXT PROC invers (TEXT CONST text): - -Zweck: Liefert den Text 'text' invers dargestellt. An den Text wird zuvor ein Leer - zeichen angehängt. - - -#ib#kreuz#ie# -TEXT PROC kreuz: - -Zweck: Liefert das Zeichen, das bei der Darstellung der "Kästen" als "Kreuz" (̗) - ausgegeben wird. - - -PROC kreuz (TEXT CONST zeichen): - -Zweck: Durch diese Prozedur kann das Zeichen festgelegt werden, das bei Dar - stellung der "Kästen" als "Kreuz" ausgegeben werden soll. - - -#ib#line#ie# -PROC line (WINDOW VAR w, INT CONST anzahl): - -Zweck: Vergl. 'menuwindowline'. Hier wird nur zusätzlich das Fenster festgelegt, - das bei 'menuwindowline' automatisch gesetzt wird. - - -PROC line (WINDOW VAR w): - - wirkt wie: line (w, 1) - - -#ib#menualternative#ie# -INT PROC menualternative (TEXT CONST infotext, - auswahlliste, - zusatztasten, - INT CONST position, - BOOL CONST mit abbruch): - -Zweck: Mit der Prozedur können dem Benutzer innerhalb des Menubildschirms - mehrere Alternativen zur Entscheidung angeboten werden, von denen er - sich für eine entscheiden kann. - Auf dem Bildschirm wird innerhalb des Menus eine Box ausgegeben. - Boxbreite und -höhe werden vom System automatisch anhand des über - gebenen 'infotext'es (bzw. der 'auswahlliste') festgelegt. Der in 'infotext' - übergebene Text wird innerhalb der Box angezeigt. Der Text muß den - gs-DIALOG-Syntax-Regeln (sehen Sie Kap. 5.13) entsprechen - er dient - ausschließlich der Information des Benutzers. - In der letzten Zeile der Box wird die 'auswahlliste' angeboten. Zwischen - jeder notierten Alternative muß in 'auswahlliste' der code "13" eingetra - gen sein. In der Box werden zwischen den Alternativen je drei Leerzei - chen eingefügt. Es können maximal 10 Alternativen angegeben werden, - die aber incl. der eingefügten Leerzeichen eine Gesamtbreite von 64 - Zeichen nicht überschreiten dürfen. Über diese Liste erfolgt durch Posi - tionierung und anschließendem <RETURN> die Entscheidung für eine - Alternative. Die Prozedur liefert dann als Zahlenwert die Position der - gewählten Alternative in der übergebenen Auswahlliste. - Über 'mit abbruch' wird festgelegt, ob die Alternativentscheidung durch - die Tastenfolge <ESC><h> abgebrochen werden kann oder nicht. Ist - das zulässig und geschehen, dann wird der Wert 0 geliefert. - Über 'zusatztasten' kann noch festgelegt werden, ob die Entscheidung - auch durch Tippen bestimmter Tasten angegeben werden kann. Sind hier - Zeichen angegeben und erfolgt die Entscheidung über das Tippen einer - zugelassenen Taste, dann wird die Position der getippten Taste in der - unter 'zusatztasten' übergebenen Zeichenkette ermittelt und der Wert 100 - hinzuaddiert (sehen Sie dazu auch Kap. 5.7). - Nach der Entscheidung wird der Menubildschirm automatisch in den - Ausgangszustand versetzt. - - -#ib#menuanswer#ie# -TEXT PROC menuanswer (TEXT CONST infotext, - vorgabe, - INT CONST position): - -Zweck: Die Prozedur ermöglicht den Dialog mit dem Benutzer innerhalb des - Menus. Sie liefert einen vom Benutzer eingegebenen (bzw. modifizierten) - Text/Namen. - Auf dem Bildschirm wird innerhalb des Menus eine Box ausgegeben. - Boxbreite und -höhe werden vom System automatisch anhand des über - gebenen 'infotext'es festgelegt. Der in 'infotext' übergebene Text wird - innerhalb der Box angezeigt. Der Text muß den gs-DIALOG-Syntax-Regeln - (sehen Sie Kap. 5.13) entsprechen. - In der letzten Zeile der ausgegebenen Box erscheint der Text "Eingabe:". - Über 'vorgabe' kann dem Benutzer ein Text zum Editieren angeboten - werden. Mit 'position' wird die relative Lage der Box innerhalb des Menu - bildschirms festgelegt (1, 2, 3, 4, 5: sehen Sie dazu Kap. 5.12). - Die Eingabe kann durch <RETURN> abgeschlossen oder durch - <ESC><h> abgebrochen werden, in letzterem Falle wird niltext ("") - geliefert. - Der gelieferte Wert ist von führenden und folgenden Leerzeichen befreit - (compress). Es ist nicht möglich, den Namen 'break' einzugeben (sehen - Sie dazu Kap.5.1). - - -#ib#menuanswerone#ie# -TEXT PROC menuanswerone (TEXT CONST infotext, - vorgabe, THESAURUS CONST thesaurus, - TEXT CONST ueberschrift, hinweis, - BOOL CONST mit reinigung): - -Zweck: Die Prozedur ist aus den zwei Prozeduren 'menuanswer' und 'menuone' - zusammengesetzt (sehen Sie auch dort). In einer Box innerhalb des - Menus wird der 'infotext' ausgegeben und eine Eingabe erwartet; ggf. - kann ein Text in 'vorgabe' zum Editieren ausgegeben werden. Wird die - Eingabe mit <RETURN> abgeschlossen, wird der eingegebene Text - geliefert. Statt der Eingabe kann der Benutzer sich durch die Tastenfolge - <ESC><z> auch die in 'thesaurus' übergebenen Namen zur Auswahl - anbieten lassen. Wird ein Name angekreuzt, wird dieser geliefert; wird die - Auswahl durch <ESC><h> abgebrochen, wird niltext ("") geliefert. -Fehler: Fenster für Auswahl zu klein (x < 56, y < 15) - - -#ib#menuanswersome#ie# -THESAURUS PROC menuanswersome (TEXT CONST - infotext, vorgabe, - THESAURUS CONST thesaurus, - TEXT CONST ueberschrift, hinweis, - BOOL CONST mit reinigung): - -Zweck: Die Prozedur ist aus den zwei Prozeduren 'menuanswer' und 'menusome' - zusammengesetzt (sehen Sie auch dort). In einer Box innerhalb des - Menus wird der 'infotext' ausgegeben und eine Eingabe erwartet; ggf. - kann ein Text in 'vorgabe' zum Editieren ausgegeben werden. Wird die - Eingabe mit <RETURN> abgeschlossen, wird der eingegebene Text in - einem Thesaurus geliefert. Statt der Eingabe kann der Benutzer sich - durch die Tastenfolge <ESC><z> auch die in 'thesaurus' übergebenen - Namen zur Auswahl anbieten lassen. Werden Namen angekreuzt, werden - diese in einem Thesaurus geliefert; wird die Auswahl durch - <ESC><h> abgebrochen, wird ein leerer Thesaurus geliefert. -Fehler: Fenster für Auswahl zu klein (x < 56, y < 15) - - -#ib#menu archiv checken#ie# -PROC menu archiv checken: - -Zweck: Über diese Prozedur kann das "Checken" von Dateien auf dem Archiv in - das Archiv-Pull-Down-Menu eingebunden werden. Sehen Sie dazu unbe - dingt Kap. 6.1! - - -#ib#menu archiv grundeinstellung#ie# -PROC menu archiv grundeinstellung (INT CONST ort): - -Zweck: Hierüber wird die Grundeinstellung des Archivpakets vorgenommen: Dazu - wird als Zieltask das Archiv der eigenen Station eingestellt. Dieses wird - auch über eine Menunotiz im Menu angezeigt. Die entsprechenden Menu - punkte werden aktiviert bzw. deaktiviert. Sehen Sie dazu unbedingt Kap. - 6.1! - Über 'ort' wird festgelegt, an welcher Stelle innerhalb des Menus die - Menunotiz zur Anzeige der Zieltask (und ggf. des Archivnamens) ausge - geben wird (sehen Sie dazu Kap. 5.12). - - -#ib#menu archiv holen#ie# -PROC menu archiv holen: - -Zweck: Über diese Prozedur kann das Holen von Dateien vom Archiv in das - Archiv-Pull-Down-Menu eingebunden werden. Sehen Sie dazu unbedingt - Kap. 6.1! - - -#ib#menu archiv initialisieren#ie# -PROC menu archiv initialisieren: - -Zweck: Über diese Prozedur kann das Formatieren/ Initialisieren eines Archivs in - das Archiv-Pull-Down-Menu eingebunden werden. Sehen Sie dazu unbe - dingt Kap. 6.1! - - -#ib#menu archiv loeschen#ie# -PROC menu archiv loeschen: - -Zweck: Über diese Prozedur kann das Löschen von Dateien auf dem Archiv in das - Archiv-Pull-Down-Menu eingebunden werden. Sehen Sie dazu unbedingt - Kap. 6.1! - - -#ib#menu archiv neue diskette#ie# -PROC menu archiv neue diskette: - -Zweck: Über diese Prozedur kann das Anmelden einer neuen Diskette bei schon - reserviertem Archiv in das Archiv-Pull-Down-Menu eingebunden werden. - Sehen Sie dazu unbedingt Kap. 6.1! - - -#ib#menu archiv reservieren#ie# -PROC menu archiv reservieren: - -Zweck: Über diese Prozedur kann die Archivreservierung in das Archiv-Pull- - Down-Menu eingebunden werden. Sehen Sie dazu unbedingt Kap. 6.1! - - -#ib#menu archiv reservierung aufgeben#ie# -PROC menu archiv reservierung aufgeben: - -Zweck: Über diese Prozedur kann eine bestehende Archivreservierung aus dem - Menu heraus aufgegeben werden. Sehen Sie dazu unbedingt Kap. 6.1! - - -#ib#menu archiv schreibcheck#ie# -PROC menu archiv schreibcheck: - -Zweck: Über diese Prozedur kann das Schreiben von Dateien auf das Archiv und - das sich automatisch daran anschließende "Checken" der zuvor geschrie - benen Dateien in das Archiv-Pull-Down-Menu eingebunden werden. - Sehen Sie dazu unbedingt Kap. 6.1! - - -#ib#menu archiv schreiben#ie# -PROC menu archiv schreiben: - -Zweck: Über diese Prozedur kann das Schreiben von Dateien auf das Archiv in - das Archiv-Pull-Down-Menu eingebunden werden. Sehen Sie dazu unbe - dingt Kap. 6.1! - - -#ib#menu archiv verzeichnis#ie# -PROC menu archiv verzeichnis: - -Zweck: Über diese Prozedur kann die Ausgabe eines Inhaltsverzeichnisses des - Archivs auf dem Bildschirm in das Archiv-Pull-Down-Menu eingebunden - werden. Sehen Sie dazu unbedingt Kap. 6.1! - - -#ib#menu archiv verzeichnis drucken#ie# -PROC menu archiv verzeichnis drucken: - -Zweck: Über diese Prozedur kann die Ausgabe eines Inhaltsverzeichnisses des - Archivs über den Drucker in das Archiv-Pull-Down-Menu eingebunden - werden. Sehen Sie dazu unbedingt Kap. 6.1! - - -#ib#menu archiv zieltask einstellen#ie# -PROC menu archiv zieltask einstellen: - -Zweck: Über diese Prozedur kann die Festlegung der Zieltask, mit der die Inter - taskkommunikation abgewickelt werden soll, in das Archiv-Pull-Down- - Menu eingebunden werden. Sehen Sie dazu unbedingt Kap. 6.1! - - -#ib#menu dateien aufraeumen#ie# -PROC menu dateien aufraeumen: - -Zweck: Durch diese Prozedur wird innerhalb des aktuellen Menus der Name der - Datei erfragt, die aufgeräumt, d.h. reorganisiert werden soll. Existiert - keine Datei mit dem angegebenen Namen, so erfolgt ein Hinweis darauf. - Statt der Eingabe des Dateinamens kann auch die Tastenfolge - <ESC><z> getippt werden. Daraufhin werden alle Dateinamen der - Task zur Auswahl angeboten. Hier können die gewünschten Dateinamen - angekreuzt werden. Anschließend werden die angekreuzten Dateien - reorganisiert. Der Vorgang wird auf dem Bildschirm protokolliert. Am - Ende des Vorgangs wird der Menubildschirm automatisch regeneriert. Es - können natürlich nur Dateien des Typs 1003 (Textfiles) reorganisiert - werden; sofern andere Dateien ausgewählt werden, erfolgt ein Hinweis - darauf. - - -#ib#menu dateien drucken#ie# -PROC menu dateien drucken: - -Zweck: Durch diese Prozedur wird innerhalb des aktuellen Menus (auch bei - geschachtelten(!)) der Name der Datei erfragt, die gedruckt werden soll. - Anschließend wird die Datei mit dem angegebenen Namen gedruckt. - Existiert keine Datei mit dem angegebenen Namen, so erfolgt ein Hinweis - darauf. - Statt der Eingabe des Dateinamens kann auch die Tastenfolge - <ESC><z> getippt werden. Daraufhin werden alle Dateinamen der - Task zur Auswahl angeboten. Alle angekreuzten Dateien werden an - schließend gedruckt. Der Vorgang wird auf dem Bildschirm protokolliert. - Am Ende wird der Menubildschirm automatisch regeneriert. - - -#ib#menu dateien kopieren#ie# -PROC menu dateien kopieren: - -Zweck: Durch diese Prozedur wird innerhalb des aktuellen Menus der Name der - Datei erfragt, die kopiert werden soll. Existiert keine Datei mit dem - angegebenen Namen, so erfolgt ein Hinweis darauf. Statt der Eingabe des - Dateinamens kann auch die Tastenfolge <ESC><z> getippt werden. - Daraufhin werden alle Dateinamen der Task zur Auswahl angeboten. Hier - kann ein Dateiname angekreuzt werden. Nun wird der Name erfragt, den - die Kopie erhalten soll. Existiert der Name bereits, erfolgt ein Hinweis - darauf, sonst wird die Datei kopiert. Der Menubildschirm wird automa - tisch regeneriert. - - -#ib#menu dateien loeschen#ie# -PROC menu dateien loeschen: - -Zweck: Durch diese Prozedur wird innerhalb des aktuellen Menus der Name der - Datei erfragt, die gelöscht werden soll. Anschließend wird die Datei mit - dem angegebenen Namen gelöscht, sofern die Sicherheitsabfrage zum - Löschen mit 'Ja' beantwortet wurde. Existiert keine Datei mit dem ange - gebenen Namen, so erfolgt ein Hinweis darauf. Statt der Eingabe des - Dateinamens kann auch die Tastenfolge <ESC><z> getippt werden. - Daraufhin werden alle Dateinamen der Task zur Auswahl angeboten. Alle - angekreuzten Dateien werden anschließend (nach jeweiliger Sicherheits - anfrage) gelöscht. Der Vorgang wird auf dem Bildschirm protokolliert. Am - Ende wird der Menubildschirm automatisch regeneriert. - - -#ib#menu dateien speicherplatz#ie# -PROC menu dateien speicherplatz: - -Zweck: Durch diese Prozedur wird innerhalb des aktuellen Menus der Name der - Datei erfragt, deren Speicherplatz ermittelt werden soll. Existiert keine - Datei mit dem angegebenen Namen, so erfolgt ein Hinweis darauf. Statt - der Eingabe des Dateinamens kann auch die Tastenfolge <ESC><z> - getippt werden. Daraufhin werden alle Dateinamen der Task zur Aus - wahl angeboten. Hier können die gewünschten Dateinamen angekreuzt - werden. Anschließend wird der Speicherplatz der angekreuzten Datei(en) - ermittelt und im Menufenster ausgegeben. Im Anschluß an die Anzeige - wird der Menubildschirm automatisch regeneriert. - - -#ib#menu dateien umbenennen#ie# -PROC menu dateien umbenennen: - -Zweck: Durch diese Prozedur wird innerhalb des aktuellen Menus der Name der - Datei erfragt, die umbenannt werden soll. Existiert keine Datei mit dem - angegebenen Namen, so erfolgt ein Hinweis darauf. Statt der Eingabe des - Dateinamens kann auch die Tastenfolge <ESC><z> getippt werden. - Daraufhin werden alle Dateinamen der Task zur Auswahl angeboten. Hier - kann ein Dateiname angekreuzt werden. Nun wird der Name erfragt, den - die Datei anschließend erhalten soll. Existiert der Name bereits, erfolgt ein - Hinweis darauf, sonst wird die Datei umbenannt. Der Menubildschirm - wird automatisch regeneriert. - - -#ib#menu dateien verzeichnis#ie# -PROC menu dateien verzeichnis - -Zweck: Mit der Prozedur kann innerhalb des aktuellen Menus ein Verzeichnis der - Dateien der eigenen Task ausgegeben werden. Nach Verlassen des Ver - zeichnisses durch <ESC><q> wird der Menubildschirm automatisch - regeneriert. - - -#ib#menufootnote#ie# -PROC menufootnote (TEXT CONST fussnotentext): - -Zweck: Mit der Prozedur kann der Text in der "Fußzeile" des aktuellen Menubild - schirms (zumeist Hinweise an den Benutzer) ersetzt werden. Der vorhan - dene Text wird gelöscht und stattdessen 'fussnotentext' notiert. Der Text - bleibt so lange erhalten, bis er durch eine andere selbstgesetzte Fußnote - ('menufootnote') oder durch die alte vom System gesetzte Fußnote ('old - menufootnote'; sehen Sie auch dort) überschrieben wird. Sofern - gs-DIALOG-Prozeduren aufgerufen werden, die selbst Ausgaben in der - Fußzeile machen, wird die durch 'menufootnote' gesetzte Fußnote eben - falls überschrieben. Wenn der Text länger als die aktuelle Menubild - schirmbreite ist,wird der Text abgeschnitten. Damit der Text auch in - geschachtelten Menus vollständig ausgegeben werden kann, sollte er nicht - länger als 69 Zeichen sein. - - -#ib#menufunktion#ie# -PROC menufunktion (TEXT CONST kuerzel, - punktbezeichnung, - prozedurname, - infotext): - -Zweck: Der Befehl wird für die Generierung von Menukarten benötigt. Mit diesem - Befehl wird in das aktuell geöffnete Menu unter dem aktuellen Oberbe - griff eine Verarbeitungsfunktion eingetragen. Mit 'kuerzel' wird die Taste - bestimmt, über die die Verarbeitungsfunktion direkt aktiviert werden - kann. 'kuerzel' muß innerhalb eines Pull-Down-Menus eindeutig gewählt - sein! Unter 'punktbezeichnung' wird der Text eingetragen, der im Pull- - Down-Menu ausgegeben werden soll. In 'prozedurname' steht der Name - der Prozedur (als Text(!)), die bei Aktivierung des Menupunktes ausge - führt werden soll. In 'infotext' steht der Text, der als Information zu - diesem Menupunkt bei Tippen der <?>-Taste angezeigt werden soll. -Fehler: Menupunkt-Kürzel ist länger als ein Zeichen. - Menupunktkürzel kommt mehrfach vor. - Menupunktbezeichnung ist zu lang (> 60 Zeichen). - Zu viele Menupunkte in einem Pull-Down-Menu (> 15). - - -#ib#menuinfo#ie# -PROC menuinfo (TEXT CONST infotext, INT CONST - position, timelimit): - -Zweck: Die Prozedur ermöglicht es, innerhalb des Menus einen Hinweis (Infor - mationstext) auszugeben. Im Menubildschirm erscheint der 'infotext' in - einer Box. Boxbreite und -höhe werden vom System automatisch anhand - des übergebenen 'infotext'es festgelegt. 'infotext' muß den gs-DIALOG- - Syntax-Regeln (sehen Sie Kap. 5.13) entsprechen. Mit 'position' wird die - relative Lage der Box innerhalb des Menubildschirms festgelegt (1, 2, 3, - 4, 5: sehen Sie dazu Kap. 5.12). Mit 'timelimit' kann die Zeitdauer (in - Zehntelsekunden) festgelegt werden, für die der Hinweis höchstens er - scheint. Die Anzeige kann vom Benutzer durch Tippen einer beliebigen - Taste abgebrochen werden. - - -PROC menuinfo (TEXT CONST infotext, - INT CONST position): - - wirkt wie: menuinfo (infotext, position, maxint) - - -PROC menuinfo (TEXT CONST infotext): - - wirkt wie: menuinfo (infotext, 5) - - -#ib#menukartenname#ie# -TEXT PROC menukartenname:#u#(*)#e# -Zweck: Liefert den Namen der zur zeit angekoppelten Menukarte. Ist keine - Menukarte angekoppelt, wird niltext ("") geliefert. - - -#ib#menuno#ie# -BOOL PROC menuno (TEXT CONST frage, - INT CONST position): - - wirkt wie: NOT menuyes (frage, position) - - -#ib#menuone#ie# -TEXT PROC menuone (THESAURUS CONST thesaurus, - TEXT CONST ueberschrift, - hinweis, - BOOL CONST mit reinigung): - -Zweck: Durch die Prozedur werden dem Benutzer innerhalb des Menubild - schirms Namen zur Auswahl angeboten. Nach Ankreuzen eines Namens - wird die Auswahl automatisch verlassen. Der angekreuzte Name wird - geliefert. Wird die Auswahl durch <ESC><h> abgebrochen, so wird - niltext ("") geliefert. In 'thesaurus' wird ein THESAURUS mit den Namen - übergeben, die zur Auswahl angeboten werden sollen (sehen Sie dazu - auch Kap. 5.14). Die beiden Texte 'ueberschrift' und 'hinweis' erscheinen - zur Kennzeichnung im Kopf der Auswahlliste: 'ueberschrift' zentriert und - invers dargestellt, 'hinweis' nur zentriert. Hat 'mit reinigung' den Wert - TRUE, so wird nach der Auswahl der Menubildschirm automatisch wie - deraufgebaut, bei FALSE wird darauf verzichtet. -Fehler: Fenster für Auswahl zu klein (x < 56, y < 15) - - -#ib#menusome#ie# -THESAURUS PROC menusome (THESAURUS CONST - thesaurus, - TEXT CONST ueberschrift, - hinweis, - BOOL CONST mit reinigung): - -Zweck: Durch die Prozedur werden dem Benutzer innerhalb des Menubild - schirms Namen zur Auswahl angeboten. Die Auswahl kann durch die - Tastenfolge <ESC><q> verlassen werden. Der/ die angekreuzte(n) - Name(n) wird/werden in einem Thesaurus geliefert. Wird die Auswahl - durch die Tastenfolge <ESC><h> abgebrochen oder wurde kein Name - angekreuzt, dann wird ein leerer Thesaurus geliefert. In 'thesaurus' wird - ein Thesaurus mit den Namen übergeben, die zur Auswahl angeboten - werden sollen (sehen Sie dazu auch Kap. 5.14). Die beiden Texte - 'ueberschrift' und 'hinweis' erscheinen zur Kennzeichnung im Kopf der - Auswahlliste: 'ueberschrift' zentriert und invers dargestellt, 'hinweis' nur - zentriert. Hat 'mit reinigung' den Wert TRUE, so wird nach der Auswahl - der Menubildschirm automatisch wiederaufgebaut, bei FALSE wird darauf - verzichtet. -Fehler: Fenster für Auswahl zu klein (x < 56, y < 15) - - -#ib#menuwindowcenter#ie# -TEXT PROC menuwindowcenter (TEXT CONST text): - -Zweck: Die Prozedur liefert einen Text, der so lang ist, wie das aktuelle Menufen - ster breit ist. Dazu wird 'text' so mit Leerzeichen "ummantelt" daß 'text' - etwa in der Mitte zu stehen kommt. Steht der Cursor bei Ausgabe dieses - Textes am Anfang der Zeile, erscheint der Text zentriert in der Zeile - (vorhandene Zeileninhalte werden dadurch überschrieben (der Cursor - steht dann auf dem rechten Fensterrand!). - - -#ib#menuwindowcursor#ie# -PROC menuwindowcursor (INT CONST spalte, zeile): - -Zweck: Mit diesem Befehl kann der Cursor innerhalb des aktuellen Menufensters - positioniert werden. Ein "normales" Menufenster ist 77 Zeichen breit und - 20 Zeichen hoch; ein Menufenster in einem geschachtelten Menu ist 71 - Zeichen breit und 16 Zeichen hoch). (Sehen Sie auch die Informations - prozeduren 'get menuwindowcursor' und 'remaining menuwindowlines'). -Fehler: Wird außerhalb des aktuellen Menufensters positioniert, wird der Fenster - inhalt gelöscht und die Fensterposition (1,1) angenommen. - - -#ib#menuwindowedit#ie# -PROC menuwindowedit (TEXT CONST dateiname): - -Zweck: Durch den Befehl wird innerhalb des Menus ein umrandetes Fenster - geöffnet und die Datei mit dem Namen 'dateiname' zum Editieren ausge - geben. Auf die Größe des Menufensters kann kein Einfluß genommen - werden - sie wird selbständig vom System gesetzt ("normales" Menu: 77 - Zeichen breit und 20 Zeichen hoch; geschachteltes Menu 71 Zeichen - breit und 16 Zeichen hoch). -Fehler: Die Datei mit dem Namen 'dateiname' existiert nicht. - - -PROC menuwindowedit (FILE VAR f): - -Zweck: Vergl. obige 'menuwindowedit'-Prozedur. Die Datei 'f' muß mit der Verar - beitungsart 'modify' assoziiert worden sein. - - -#ib#menuwindoweditget#ie# -PROC menuwindoweditget (TEXT VAR text):#u#(*)#e# -Zweck: Vergl. 'menuwindowget (TEXT VAR text)' Zusätzlich kann hier in 'text' ein - Text zum Editieren vorgegeben werden. -Fehler: Text nicht initialisiert. - - -#ib#menuwindowget#ie# -PROC menuwindowget (TEXT VAR text): - -Zweck: Mit der Prozedur können Texte innerhalb des Menufensters eingelesen - werden (INTEGER- und REAL-Werte müssen ggf. "von Hand" konvertiert - werden). Die Eingabe wird durch <RETURN> abgeschlossen. Es muß - mindestens ein Zeichen (ungleich Leerzeichen) eingegeben werden. Von - der Eingabe werden die führenden Leerzeichen abgeschnitten. Ist der - einzugebende Text länger als die noch verbleibende Restzeile, so wird der - Text in der Restzeile gescrollt. Sind in der aktuellen Zeile weniger als 7 - Zeichenpositionen für die Eingabe vorhanden, so wird automatisch für die - Eingabe an den Anfang der nächsten Zeile positioniert. - - -#ib#menuwindowline#ie# -PROC menuwindowline (INT CONST anzahl): - -Zweck: Die Prozedur 'menuwindowline' hat innerhalb des Menubildschirms eine - ähnliche Wirkung wie die Prozedur 'line' auf dem Gesamtbildschirm. Es - werden 'anzahl' Zeilenwechsel vorgenommen. Wird allerdings die untere - Grenze des Menubildschirms überschritten, dann rollt (scrollt) der Bild - schirm nicht die entsprechende Anzahl Zeilen nach oben, statt dessen - wird der Fensterinhalt gelöscht und die Operation oben im Fenster fort - gesetzt. - - -PROC menuwindowline: - - wirkt wie: menuwindowline (1) - - -#ib#menuwindowout#ie# -PROC menuwindowout (TEXT CONST text): - -Zweck: Mit der Prozedur können innerhalb des aktuellen Menufensters Texte - ausgegeben werden. Sollen INTEGER- oder REAL-Werte ausgegeben wer - den, müssen diese zunächst in Texte konvertiert werden. Ist der Text - länger als die verbleibende Restzeile innerhalb des aktuellen Menufen - sters, so wird der Text bis zum Fensterende (rechts) ausgegeben und die - Ausgabe am Anfang der nächsten Zeile fortgesetzt. Sobald die letzte Posi - tion des aktuellen Menufensters (unten rechts in der Fensterecke) be - schrieben wurde, wird der Fensterinhalt gelöscht und die Ausgabe an der - Position (1,1) des Fensters fortgesetzt. - - -#ib#menuwindowpage#ie# -PROC menuwindowpage: - -Zweck: Durch den Befehl 'menuwindowpage' wird der Inhalt des Fensters inner - halb des aktuellen Menus gelöscht (das "Menufenster") (vergleichen Sie - auch 'show menuwindow'). Der Rahmen des Fensters (der bei 'show - menuwindow' ausgegeben wurde), bleibt bestehen, da er nicht mit zum - eigentlichen Fenster gehört. Durch den Befehl wird der Menubildschirm - nicht rekonstruiert! Soll das Fenster geschlossen werden, ist der Befehl - 'regenerate menuscreen' zu geben. - - -#ib#menuwindowshow#ie# -PROC menuwindowshow (TEXT CONST dateiname): - -Zweck: Vergl. 'menuwindowedit'-Prozedur. Die Datei 'dateiname' kann nicht - schreibend verändert werden. - - -PROC menuwindowshow (FILE VAR f): - -Zweck: Vergl. obige 'menuwindowshow'-Prozedur. Die Datei 'f' muß mit der - Verarbeitungsart 'modify' assoziiert worden sein. - - -#ib#menuwindowstop#ie# -PROC menuwindowstop (INT CONST zeilenzahl): - -Zweck: Innerhalb des Menufensters werden 'zeilenzahl' Zeilenwechsel vorge - nommen und der Text " Zum Weitermachen bitte irgendeine Taste tip - pen!" ausgegeben. Danach wird so lange gewartet, bis eine Taste getippt - wird. - - -PROC menuwindowstop: - - wirkt wie: menuwindowstop (2) - - -#ib#menuyes#ie# -BOOL PROC menuyes (TEXT CONST frage, - INT CONST position): - -Zweck: Die Prozedur dient dazu, innerhalb des Menus eine Ja/Nein-Entscheidung - des Benutzers einzuholen. Im Gegensatz zur Standardprozedur 'yes' - arbeitet diese Prozedur unabhängig davon, ob der Kommandodialog ein- - oder ausgeschaltet ist. Auf dem Bildschirm wird innerhalb des Menus eine - Box ausgegeben. Boxbreite und -höhe werden vom System automatisch - anhand der übergebenen 'frage' festgelegt. Der in 'frage' übergebene Text - wird um ein Fragezeichen (?) ergänzt und innerhalb der Box angezeigt. - Der Text muß den gs-DIALOG-Syntax-Regeln (sehen Sie Kap. 5.13) - entsprechen. In der letzten Zeile der ausgegebenen Box erscheint der Text - "Ja Nein". Die Prozedur 'menuyes' liefert TRUE, wenn mit 'Ja' geantwor - tet wurde und FALSE, wenn mit 'Nein' geantwortet wurde (durch Tippen - der Anfangsbuchstaben oder Positionierung auf die Antwort und ab - schließendes <RETURN>). Der Menubildschirm wird automatisch - regeneriert. Mit 'position' wird die relative Lage der Box innerhalb des - Menubildschirms festgelegt (1, 2, 3, 4, 5: sehen Sie dazu Kap. 5.12). - - -#ib#no#ie# -BOOL PROC no (WINDOW VAR w, TEXT CONST frage): - - wirkt wie: NOT yes (w, frage). - - -#ib#not empty#ie# -BOOL PROC not empty (THESAURUS CONST thes): - -Zweck: Dient der Prüfung, ob ein Thesaurus Namen enthält oder nicht. Die - Prozedur liefert TRUE, wenn Namen in 'thes' enthalten sind, sonst FALSE. - - -#ib#oberbegriff#ie# -PROC oberbegriff (TEXT CONST punktname, - startprocname, - leaveprocname): - -Zweck: Der Befehl wird bei der Generierung von Menukarten benötigt. Mit diesem - Befehl wird die Bezeichnung 'punktname' in die Kopfzeile des aktuell - geöffneten Menus eingetragen. Die in 'startprocname' übergebene Proze - dur wird ausgeführt, bevor das zugehörige Pull-Down-Menu auf dem - Bildschirm "ausgeklappt" wird; die in 'leaveprocname' übergebene Pro - zedur, wenn in ein anderes Pull-Down-Menu gewechselt wird (beachten - Sie, daß die Prozedurnamen als Texte(!) übergeben werden). -Fehler: Menukarte noch nicht geöffnet ('oeffne menukarte' fehlt). - Menu noch nicht geöffnet ('oeffne menu' fehlt). - Zu viele Oberbegriffe im Menu (> 10). - Die Kopfzeile ist zu lang (> 70 Zeichen). - - -PROC oberbegriff (TEXT CONST punktname): - - wirkt wie: oberbegriff (punktname, "", "") - - -#ib#oeffne menu#ie# -PROC oeffne menu (TEXT CONST menuname, - einstiegsproc, - ausstiegsproc, infotext1, - infotext2, infotext3): - -Zweck: Der Befehl wird für die Generierung von Menukarten benötigt. Durch den - Befehl wird innerhalb der Menukarte ein Menu mit dem Namen - 'menuname' angelegt. Über diesen Namen kann das Menu auch später - angesprochen werden (mit 'handle menu'). Die unter 'einstiegsproc' - übergebene Prozedur wird bei der Aktivierung des Menus ausgeführt, die - unter 'ausstiegsproc' übergebene Prozedur, wenn das Menu (mit - <ESC><q>) verlassen wird (beachten Sie, daß die Prozedurnamen als - Texte(!) übergeben werden!). In 'infotext1', 'infotext2' und 'infotext3' - können Hinweise eingetragen werden, die bei Erscheinen des Menus auf - dem Bildschirm für kurze Zeit in einer Box rechts unten angezeigt wer - den. Die Erstellung der Boxtexte ist an genaue Regeln gebunden (sehen - Sie dazu Kap. 5.13). Sehen Sie auch bei 'schliesse menu'. - - -PROC oeffne menu (TEXT CONST menuname, - einstiegsproc, - ausstiegsproc): - - wirkt wie: oeffne menu (menuname, einstiegsproc, - ausstiegsproc, "", "", "") - - -PROC oeffne menu (TEXT CONST menuname): - - wirkt wie: oeffne menu (menuname, "", "") - - -#ib#oeffne menukarte#ie# -PROC oeffne menukarte (TEXT CONST menukartenname): - -Zweck: Der Befehl wird bei der Generierung von Menukarten benötigt. Ein Pro - gramm zur Erstellung einer Menukarte muß immer mit diesem Befehl - beginnen. Durch den Befehl wird ein Datenraum mit dem Namen - 'gs-MENUKARTE:menukartenname' eingerichtet; der Wortbestandteil - 'gs-MENUKARTE:' wird dabei automatisch vor den angegebenen Namen - gesetzt (sehen Sie auch 'schliesse menukarte'). -Fehler: Eine Menukarte mit dem angegebenen Namen existiert bereits in der - Task. Bei der Generierung wird dann angefragt, ob die alte Menukarte - gelöscht werden darf. - - -#ib#ohne praefix#ie# -THESAURUS PROC ohne praefix (THESAURUS CONST thes, - TEXT CONST praefix): - -Zweck: Liefert in einem Thesaurus alle Namen aus dem übergebenen Thesaurus - 'thes', die mit dem Wortbestandteil 'praefix' beginnen. Bei den gelie - ferten Namen ist dieser führende Wortbestandteil entfernt. - - -#ib#old menufootnote#ie# -PROC old menufootnote: - -Zweck: Der aktuelle Text in der Fußzeile des aktuellen Menubildschirms wird - durch den hier zuletzt vom System gesetzten Text überschrieben. Die - Prozedur wird benutzt, um eine selbstgesetzte Fußnote (sehen Sie auch - 'write menunotice') zu löschen. - - -#ib#out#ie# -PROC out (WINDOW VAR w, TEXT CONST text): - -Zweck: Vergl. 'menuwindowout'. Hier wird nur zusätzlich das Fenster festgelegt, - das bei 'menuwindowout' automatisch gesetzt wird. - - -#ib#out frame#ie# -PROC out frame (WINDOW VAR fenster): - -Zweck: Um den durch 'fenster' angegebenen Bildschirmbereich wird ein Rahmen - gezogen. - - -#ib#out footnote#ie# -PROC out footnote (WINDOW VAR fenster, - TEXT CONST textzeile): - -Zweck: In der untersten Zeile des Fensters 'fenster' wird 'textzeile' ausgegeben, in - der vorletzten Zeile eine Trennzeile. Sehen Sie auch 'erase footnote'. - - -#ib#page#ie# -PROC page (WINDOW VAR fenster, - BOOL CONST mit rahmen): - -Zweck: Der durch 'fenster' beschriebene Fensterbereich wird gelöscht. Hat 'mit - rahmen' den Wert TRUE, wird der Rahmenbereich ebenfalls gelöscht. - - -PROC page (WINDOW VAR fenster): - - wirkt wie: page (fenster, FALSE). - - -#ib#put#ie# -PROC put (WINDOW VAR w, TEXT CONST text): - - wirkt wie: out (w, text + " ") - - -PROC put (WINDOW VAR w, INT CONST zahl): - - wirkt wie: put (w, text (zahl)) - - -PROC put (WINDOW VAR w, REAL CONST zahl): - - wirkt wie: put (w, text (zahl)) - - -#ib#putline#ie# -PROC putline (WINDOW VAR w, TEXT CONST text): - - wirkt wie: put (w, text); line (w) - - -#ib#regenerate menuscreen#ie# -PROC regenerate menuscreen: - -Zweck: Der Befehl wird verwendet, um den Menubildschirm (z.B. nach der - Nutzung für anwendungsbezogene Ausgaben) in seinem letzten Zustand - zu reproduzieren. Der Bildschirm wird gelöscht. Anschließend wird der - aktuelle Menubildschirm vollständig neu aufgebaut - auch bei geschach - telten Menus. (sehen Sie auch 'refresh submenu') - - -#ib#refresh submenu#ie# -PROC refresh submenu: - -Zweck: Der Befehl dient dazu, das aktuelle Pull-Down-Menu (z.B. nach Über - schreiben) und ggf. eine gesetzte Menunotiz erneut auf den Bildschirm zu - schreiben. Betroffen ist nur der Bereich zwischen den Trennlinien der - Kopf- und Fußzeile. Für das vorausgehende Löschen verwendeter Bild - schirmbereich ist der Programmierer verantwortlich. Im Gegensatz zu - 'regenerate menuscreen' findet hier kein kompletter Bildschirmaufbau - statt. Wenn möglich, dann ist dieser Befehl dem Befehl 'regenerate - menuscreen' wegen des geringeren Zeitaufwandes vorzuziehen. - - -#ib#remaining lines#ie# -INT PROC remaining lines (WINDOW VAR w): - -Zweck: Die Prozedur liefert die Anzahl der Zeilen im Fenster 'w', die noch - zwischen Cursor und unterer Fenstergrenze vorhanden sind. - - -#ib#remaining menuwindowlines#ie# -INT PROC remaining menuwindowlines - -Zweck: Die Prozedur liefert die Anzahl der Zeilen im aktuellen Menufenster, die - noch zwischen Cursor und unterer Fenstergrenze vorhanden sind. - - -#ib#reset dialog#ie# -PROC reset dialog: - -Zweck: Das Menusystem wird in den Anfangszustand versetzt. (Keine Menukarte - angekoppelt; Anzahl der geöffneten Menus: 0) - - -#ib#schliesse menu#ie# -PROC schliesse menu: - -Zweck: Der Befehl wird bei der Generierung von Menukarten benötigt. Durch den - Befehl wird ein Menu in einer Menukarte abgeschlossen (sehen Sie auch - 'oeffne menu') - - -#ib#schliesse menukarte#ie# -PROC schliesse menukarte - -Zweck: Der Befehl wird bei der Generierung von Menukarten benötigt. Durch den - Befehl wird eine Menukarte abgeschlossen (sehen Sie auch 'oeffne - menukarte') - - -#ib#senkrecht#ie# -TEXT PROC senkrecht: - - Zweck: Liefert das Zeichen, das bei der Darstellung der "Kästen" als senkrechter - Strich (�) ausgegeben wird. - - -PROC senkrecht (TEXT CONST zeichen): - -Zweck: Durch diese Prozedur kann das Zeichen festgelegt werden, das bei Dar - stellung der "Kästen" als senkrechter Strich ausgegeben werden soll. - - -#ib#show#ie# -PROC show (WINDOW VAR fenster): - -Zweck: Das Fenster 'fenster' wird auf dem Bildschirm angezeigt (das Fenster - muß zuvor durch 'window' initialisiert worden sein). Um den angegebe - nen Fensterbereich wird automatisch ein Rahmen gezogen. Der Rahmen - gehört nicht zum Fenster dazu! (Soll das Fenster ohne Rahmen ausgege - ben werden, dann muß der Befehl 'page' verwendet werden.) Der Bereich - innerhalb des Rahmens (Fensterbereich) wird gelöscht. - - -#ib#show#ie# -PROC show (WINDOW VAR w, TEXT CONST dateiname): - -Zweck: Vergl. 'menuwindowshow'. Hier wird nur zusätzlich das Fenster festgelegt, - das bei 'menuwindowshow' automatisch gesetzt wird. - - -PROC show (WINDOW VAR w, FILE VAR f): - -Zweck: Vergl. 'menuwindowshow'. Hier wird nur zusätzlich das Fenster festgelegt, - das bei 'menuwindowshow' automatisch gesetzt wird. - - -#ib#show menuwindow#ie# -PROC show menuwindow: - -Zweck: Durch den Befehl 'show menuwindow' wird ein entsprechender Rahmen - innerhalb des Menubildschirms ausgegeben und der Bereich innerhalb - dieses Rahmens (das Fenster) gelöscht (sehen Sie auch 'menuwindow - page'). Innerhalb des Fensters können anschließend verschiedene Opera - tionen ausgeführt werden. Auf die Größe des Menufensters kann kein - Einfluß genommen werden - sie wird selbständig vom System gesetzt - ("normales" Menu: 77 Zeichen breit und 20 Zeichen hoch; geschachteltes - Menu 71 Zeichen breit und 16 Zeichen hoch). - - -#ib#stdinfoedit#ie# -PROC stdinfoedit (TEXT CONST dateiname):#u#(*)#e# -Zweck: Löscht den Bildschirm und bietet die Datei 'dateiname' in einem festge - legten zum Editieren an. In der Fußzeile wird die Information "Info: - <ESC><?> Verlassen: <ESC><q>" angezeigt. Nach Tippen von - <ESC><?> werden Editorinformationen in den Bildschirm einge - blendet. - - -PROC stdinfoedit (FILE VAR f):#u#(*)#e# -Zweck: Wie obige 'stdinfoedit'-Prozedur'. Die Datei 'f' muß mit der Verarbei - tungsart 'modify' assoziiert worden sein. - - -PROC stdinfoedit (TEXT CONST dateiname, - INT CONST oberste zeile):#u#(*)#e# -Zweck: Wie obige Prozedur (die wie 'stdwinfoedit (w, 1)' wirkt). Allerdings kön - nen bis zu zwei Zeilen oben auf dem Bildschirm unbenutzt bleiben (z.B. - um die Kopfzeile des Menus weiterhin anzuzeigen). 'oberste zeile' gibt an, - welche Bildschirmzeile die erste von dieser Prozedur benutzte ist - (1<= oberste zeile<=3). - - -PROC stdinfoedit (FILE VAR f, - INT CONST oberste zeile):#u#(*)#e# -Zweck: Wie obige 'stdinfoedit'-Prozedur'. Die Datei 'f' muß mit der Verarbei - tungsart 'modify' assoziiert worden sein. - - -#ib#stop#ie# -PROC stop (WINDOW VAR w, INT CONST zeilenzahl): - -Zweck: Vergl. 'menuwindowstop'. Hier wird nur zusätzlich das Fenster festgelegt, - das bei 'menuwindowstop' automatisch gesetzt wird. - - -PROC stop (WINDOW VAR w): - - wirkt wie: stop (w, 1). - - -#ib#testinstallation#ie# -PROC testinstallation (TEXT CONST menutafelname): - -Zweck: Die Menutafel mit dem Namen 'menutafelname' (muß mit dem - 'gs-MENUKARTE:' beginnen!) wird als aktuelle Menutafel an gs-DIALOG - gekoppelt. Durch den Befehl wird die angegebene Menutafel zur Task - 'gs-MENUAKRTEN' geschickt. Dem Namen wird zur Kennzeichnung noch - der Taskname der Sendertask angehängt (dadurch können sich bei - Multi-User-Betrieb verschiedene Anwender mit gleichen Menukarten - namen nicht stören). Die Menukarte wird anschließend in jedem Fall - "frisch" angekoppelt. Außerdem bleibt die Menukarte (als benannter - Datenraum) in der Task erhalten! - (Mit dem Befehl 'handle menu' kann nun ein Menu aus der Menukarte - zur Ausführung gebracht werden oder mit 'anwendungstext' auf in die - Menukarte ausgelagerte Texte zugegriffen werden.) - Hinweis: Von Zeit zu Zeit muß der Systembetreuer die überflüssigen - Menukarten aus der Task 'gs-MENUKARTEN' entfernen, da die Anwender - aus Ihrer Task die Karten nicht löschen können! -Fehler: 'menutafelname' gibt es nicht! - 'menutafelname' hat falsche(n) Typ/Bezeichnung (keine - gs-MENUKARTE)! - - -#ib#trennlinie#ie# -PROC trennlinie: - -Zweck: Der Befehl wird bei der Generierung von Menukarten benötigt. Durch den - Befehl wird unter dem aktuellen Oberbegriff eine Trennlinie zur opti - schen Trennung einzelner Menupunkte eingetragen. Die Trennlinie belegt - den gleichen Platz wie eine Verarbeitungsfunktion. -Fehler: Zu viele Menupunkte in einem Pull-Down-Menu (maximal 15 incl. der - Trennlinien!). - - -#ib#textprozedur#ie# -PROC textprozedur (TEXT CONST dateiname, - prozedurname): - -Zweck: Der Befehl wird benötigt, um Texte entsprechend der gs-DIALOG-Syntax - aufzuarbeiten. Der in die Datei 'dateiname' geschrieben Text wird bear - beitet. Die Prozedur eignet sich insbesondere dafür, Informationstexte - aufzuarbeiten, die zu den einzelnen Menufunktionen ausgegeben werden, - wenn der Benutzer die Tastenfolge <ESC><?> tippt (sehen Sie auch - 'textzeile'). Der aufbereitete Text steht anschließend in der Datei 'datei - name.a'. Der Text ist in eine Textprozedur "verpackt", die den Namen hat, - der als zweiter Parameter übergeben wird. - Die Zeilen werden dabei so zugeschnitten, daß Sie in einer Box in das - aktuelle Menu eingeblendet werden können. Boxbreite und -höhe werden - automatisch gesetzt (max. 65 Zeichen breit und 14 Zeichen hoch)); die - Zeilen werden geblockt, sofern in der Datei keine Absatzmarkierung - (<RETURN>) am Ende der Zeile vorhanden ist. Soll eine Zeile zentriert - werden, so muß als erstes Zeichen der Zeile das Zeichen '%' notiert sein - - die Zeile muß durch eine Absatzmarke abgeschlossen sein. Textpassagen, - die invers (markiert) dargestellt werden sollen, müssen duch das Zeichen - '$' eingeleitet und durch das Zeichen '&' abgeschlossen werden. Markier - te Textpassagen dürfen (nach dem Zuschnitt!) nicht über Zeilengrenzen - hinausgehen! -Fehler: Datei 'dateiname' existiert nicht! - Fonttabelle 'fonttab.gs-Menu-Generator' existiert nicht! (Fonttabelle von - gs-Menu-Generator-Diskette in die Task 'configurator' laden!) - Text ist zu lang - bitte kürzen! (Text darf in aufbereiteter Form maximal - 14 Zeilen umfassen!) - Zeilenformatierung mit <ESC> abgebrochen! - - - -#ib#textzeile#ie# -PROC textzeile (TEXT CONST dateiname): - -Zweck: Der Befehl wird benötigt, um Texte entsprechend der gs-DIALOG-Syntax - aufzuarbeiten. Der in die Datei 'dateiname' geschrieben Text wird bear - beitet. Die Prozedur eignet sich insbesondere dafür, anwendungsbezogene - Texte aufzuarbeiten, die in die Menukarte ausgelagert werden sollen - (sehen Sie auch 'textprozedur'). Der aufbereitete Text steht anschließend - in der Datei 'dateiname.a' in einer Zeile notiert. - - -#ib#waagerecht#ie# -TEXT PROC waagerecht: - -Zweck: Liefert das Zeichen, das bei der Darstellung der "Kästen" als waagerechter - Strich (̇) ausgegeben wird. - - -PROC waagerecht (TEXT CONST zeichen): - -Zweck: Durch diese Prozedur kann das Zeichen festgelegt werden, das bei Dar - stellung der "Kästen" als waagerechter Strich ausgegeben werden soll. - - -#ib#window#ie# -WINDOW PROC window (INT CONST x, y, xsize, ysize): - -Zweck: Einer Fenstervariablen (WINDOW VAR name) wird die Lage und Größe - zugeordnet (über den Zuweisungsoperator ':='). Gleichzeitig wird das - Fenster initialisiert. - Mit den ersten beiden Parametern wird die Lage der linken oberen Ecke - des Fensters bestimmt (x: Spalte; y: Zeile). Mit 'xsize' wird die Fenster - breite, mit 'ysize' die Fensterhöhe festgelegt. - Das Fenster wird noch nicht(!) angezeigt (sehen Sie dazu 'show' und - 'page'). Ein Rahmen wird nicht zum Fenster gezählt; er kann aber mit - der Prozedur 'show' ausgegeben werden. Ein Fenster darf nicht breiter als - 80 und höher als 24 Zeichen sein. Umrahmte Fenster unterliegen weite - ren Einschränkungen (sehen Sie auch 'show'). Ein Fenster muß min - destens 6 Zeichen breit und 3 Zeichen hoch sein. -Fehler: 'Window' ungültig - - -#ib#write menunotice#ie# -PROC write menunotice (TEXT CONST notiztext, - INT CONST position): - -Zweck: Die Prozedur dient dazu, innerhalb des Menus in einer Box einen "dauer - haften Informationstext" auszugeben. Die Box bleibt nämlich so lange - bestehen, bis sie explizit gelöscht (sehen Sie auch 'erase menunotice') - oder durch einen neuen Notiztext überschrieben wird. Wenn der Bild - schirm durch gs-DIALOG-Prozeduren überschrieben wird, wird die - Menunotiz ebenfalls ständig mitaufgefrischt und auch, wenn der Befehl - 'regenerate menuscreen' oder 'refresh submenu' gegeben wird (Sehen Sie - im Gegensatz dazu auch 'menuinfo' ("kurzzeitiger Informationstext"). - Im Menubildschirm erscheint der 'infotext' in einer Box. Boxbreite und - -höhe werden vom System automatisch anhand des übergebenen 'notiz - text'es festgelegt. 'notiztext' muß den gs-DIALOG-Syntax-Regeln (sehen Sie - Kap. 5.13) entsprechen. Mit 'position' wird die relative Lage der Box - innerhalb des Menubildschirms festgelegt (1, 2, 3, 4, 5: sehen Sie dazu - Kap. 5.12). In einem Menu kann zu einem Zeitpunkt nur eine Menunotiz - abgelegt werden. Durch ein erneutes 'write menunotice' wir eine beste - hende Menunotiz überschrieben. - - -#ib#yes#ie# -BOOL PROC yes (WINDOW VAR w, TEXT CONST frage): - -Zweck: Vergl. 'menuwindowyes'. Hier wird nur zusätzlich das Fenster festgelegt, - das bei 'menuwindowyes' automatisch gesetzt wird. - - diff --git a/doc/menugenerator/menu-generator handbuch.impressum b/doc/menugenerator/menu-generator handbuch.impressum deleted file mode 100644 index 404826d..0000000 --- a/doc/menugenerator/menu-generator handbuch.impressum +++ /dev/null @@ -1,88 +0,0 @@ -____________________________________________________________________________ - - -#on("b")##on ("u")# -#center#Betriebssystem E U M E L -#off ("u")# - - -#center#ls Menü-Generator - - - - -#off("b")# -#center#Lizenzfreie Software der -#on ("b")# - -#center#Gesellschaft für Mathematik und Datenverarbeitung mbH, -#center#5205 Sankt Augustin - - -#off("b")# -#center#Die Nutzung der Software ist nur im Schul- und Hochschulbereich für -#center#nichtkommerzielle Zwecke gestattet. - -#center#Gewährleistung und Haftung werden ausgeschlossen - - -____________________________________________________________________________ -#page# - -#free (4.0)##on("b")# -#center#gs-Menu-Generator - - -#center#Benutzerhandbuch - - -#center#Version 1.0 - - -#off("b")##center#copyright -#center#Eva Latta-Weber -#center#Software- und Hardware-Systeme, 1988 -#center#ERGOS GmbH, 1990 -#page# -#block# -#center#____________________________________________________________________________ - - -Copyright: ERGOS GmbH März 1990 - - Alle Rechte vorbehalten. Insbesondere ist die Überführung in - maschinenlesbare Form sowie das Speichern in Informations - systemen, auch auszugsweise, nur mit schriftlicher Einwilligung - der ERGOS GmbH gestattet. - - -#center#____________________________________________________________________________ - -Es kann keine Gewähr übernommen werden, daß das Programm für eine -bestimmte Anwendung geeignet ist. Die Verantwortung dafür liegt beim -Anwender. - -Das Handbuch wurde mit größter Sorgfalt erstellt. Für die Korrektheit und -Vollständigkeit der Angaben kann keine Gewähr übernommen werden. Das -Handbuch kann jederzeit ohne Ankündigung geändert werden. - -Texterstellung : Dieser Text wurde mit der ERGOS-L3 Textverarbeitung - erstellt und aufbereitet und auf einem Kyocera Laser - drucker gedruckt. - - - - -#center#___________________________________________________________________________ - - - -Ergonomic Office Software GmbH - -Bergstr. 7 Telefon: (02241) 63075 -5200 Siegburg Teletex: 2627-2241413=ERGOS - Telefax: (02241) 63078 - - -#center#____________________________________________________________________________ - diff --git a/doc/menugenerator/menu-generator handbuch.index b/doc/menugenerator/menu-generator handbuch.index deleted file mode 100644 index 0aacd97..0000000 --- a/doc/menugenerator/menu-generator handbuch.index +++ /dev/null @@ -1,258 +0,0 @@ -#block##pageblock# -#pagenr("%",1)##setcount(1)##count per page# -#headeven# -gs-Menu-Generator -#center#____________________________________________________________ - -#end# -#headodd# -#right#gs-Menu-Generator -#center#____________________________________________________________ - -#end# -#bottomeven# -#center#____________________________________________________________ -I - % #right#ERGOS -#end# -#bottomodd# -#center#____________________________________________________________ -ERGOS #right# I - % -#end# -Index - - -activate 5 - 28 -activate 8 - 1 -anwendungstext 4 - 13 -anwendungstext 8 - 2 -areax 8 - 2 -areaxsize 8 - 2 -areay 8 - 2 -areaysize 8 - 2 -balken links 8 - 2 -balken oben 8 - 3 -balken rechts 8 - 3 -balken unten 8 - 3 -boxalternative 8 - 4 -boxalternative 7 - 10 -boxanswer 8 - 4 -boxanswer 7 - 9 -boxanswerone 8 - 4 -boxanswerone 7 - 10 -boxanswersome 8 - 5 -boxanswersome 7 - 10 -boxinfo 8 - 5 -boxinfo 7 - 9 -boxno 8 - 5 -boxno 7 - 10 -boxnotice 8 - 6 -boxnotice 7 - 10 -boxone 8 - 6 -boxone 7 - 10 -boxsome 8 - 6 -boxsome 7 - 10 -boxyes 8 - 7 -boxyes 7 - 10 -center 8 - 7 -center 7 - 8 -clear buffer 8 - 7 -clear buffer and count 8 - 7 -current menuwindow 8 - 8 -cursor 8 - 8 -cursor 7 - 6 -cursor off 8 - 8 -cursor off 5 - 6 -cursor off 5 - 2 -cursor on 8 - 8 -cursor on 5 - 6 -cursor on 5 - 2 -deactivate 8 - 9 -deactivate 5 - 28 -direktstart 8 - 9 -ecke oben links 8 - 10 -ecke oben rechts 8 - 10 -ecke unten links 8 - 10 -ecke unten rechts 8 - 10 -edit 8 - 11 -edit 7 - 6 -editget 8 - 11 -erase 7 - 5 -erase 8 - 11 -erase footnote 8 - 12 -erase footnote 7 - 11 -erase menunotice 8 - 12 -erasemenunotice 5 - 15 -get 8 - 12 -get 7 - 7 -get cursor 8 - 13 -get cursor 7 - 6 -getline 7 - 7 -getline 8 - 13 -get menuwindowcursor 5 - 21 -get menuwindowcursor 8 - 13 -handle menu 3 - 2 -handle menu 8 - 13 -infix namen 8 - 14 -infix namen 5 - 26 -install menu 3 - 2 -install menu 4 - 3 -install menu 8 - 14 -invers 8 - 15 -kreuz 8 - 15 -line 8 - 15 -line 7 - 6 -menualternative 8 - 15 -menualternative 5 - 12 -menuanswer 8 - 17 -menuanswer 5 - 2 -menuanswerone 8 - 17 -menuanswerone 5 - 8 -menuanswersome 5 - 8 -menuanswersome 8 - 18 -menu archiv checken 8 - 18 -menu archiv checken 6 - 4 -menu archiv grundeinstellung 6 - 4 -menu archiv grundeinstellung 8 - 18 -menu archiv holen 8 - 19 -menu archiv holen 6 - 4 -menu archiv initialisieren 8 - 19 -menu archiv initialisieren 6 - 4 -menu archiv loeschen 8 - 19 -menu archiv loeschen 6 - 4 -menu archiv neue diskette 8 - 19 -menu archiv neue diskette 6 - 4 -menu archiv reservieren 6 - 4 -menu archiv reservieren 8 - 19 -menu archiv reservierung aufgeben 6 - 4 -menu archiv reservierung aufgeben 8 - 19 -menu archiv schreibcheck 8 - 20 -menu archiv schreibcheck 6 - 4 -menu archiv schreiben 6 - 4 -menu archiv schreiben 8 - 20 -menu archiv verzeichnis 8 - 20 -menu archiv verzeichnis 6 - 4 -menu archiv verzeichnis drucken 6 - 4 -menu archiv verzeichnis drucken 8 - 20 -menu archiv zieltask einstellen 6 - 4 -menu archiv zieltask einstellen 8 - 20 -menu dateien aufraeumen 8 - 21 -menu dateien aufraeumen 6 - 6 -menu dateien drucken 6 - 6 -menu dateien drucken 8 - 21 -menu dateien kopieren 6 - 6 -menu dateien kopieren 8 - 22 -menu dateien loeschen 8 - 22 -menu dateien loeschen 6 - 6 -menu dateien speicherplatz 6 - 6 -menu dateien speicherplatz 8 - 22 -menu dateien umbenennen 8 - 23 -menu dateien umbenennen 6 - 6 -menu dateien verzeichnis 6 - 6 -menu dateien verzeichnis 8 - 23 -menufootnote 5 - 17 -menufootnote 8 - 23 -menufunktion 4 - 6 -menufunktion 8 - 24 -menuinfo 5 - 4 -menuinfo 8 - 24 -menukartenname 8 - 25 -menuno 8 - 25 -menuno 5 - 10 -menuone 5 - 6 -menuone 8 - 25 -menusome 5 - 7 -menusome 8 - 26 -menuwindowcenter 8 - 26 -menuwindowcenter 5 - 23 -menuwindowcursor 5 - 21 -menuwindowcursor 8 - 27 -menuwindowedit 8 - 27 -menuwindowedit 5 - 19 -menuwindoweditget 8 - 27 -menuwindoweditget 5 - 22 -menuwindowget 8 - 28 -menuwindowget 5 - 22 -menuwindowline 8 - 28 -menuwindowline 5 - 21 -menuwindowno 5 - 22 -menuwindowout 5 - 22 -menuwindowout 8 - 28 -menuwindowpage 8 - 29 -menuwindowpage 5 - 20 -menuwindowshow 5 - 19 -menuwindowshow 8 - 29 -menuwindowstop 5 - 23 -menuwindowstop 8 - 29 -menuwindowyes 5 - 22 -menuyes 5 - 10 -menuyes 8 - 30 -no 8 - 30 -no 7 - 7 -not empty 5 - 27 -not empty 8 - 30 -oberbegriff 8 - 31 -oberbegriff 4 - 5 -oeffne menu 8 - 31 -oeffne menu 4 - 3 -oeffne menukarte 8 - 32 -oeffne menukarte 4 - 3 -ohne praefix 5 - 26 -ohne praefix 8 - 32 -oldmenufootnote 5 - 17 -old menufootnote 8 - 32 -out 7 - 7 -out 8 - 33 -out footnote 7 - 11 -out footnote 8 - 33 -out frame 8 - 33 -out frame 7 - 5 -page 8 - 33 -page 7 - 11 -page 7 - 5 -page up 7 - 11 -put 8 - 33 -put 7 - 7 -putline 8 - 34 -putline 7 - 7 -refresh submenu 5 - 18 -refresh submenu 8 - 34 -regenerate menuscreen 8 - 34 -regenerate menuscreen 5 - 18 -regenerate menuscreen 5 - 4 -remaining lines 8 - 34 -remaining lines 7 - 6 -remaining menuwindowlines 5 - 21 -remaining menuwindowlines 8 - 34 -reset dialog 8 - 35 -schliesse menu 4 - 3 -schliesse menu 8 - 35 -schliesse menukarte 8 - 35 -schliesse menukarte 4 - 3 -senkrecht 8 - 35 -show 8 - 35 -show 7 - 5 -show 8 - 36 -show 7 - 6 -show menuwindow 8 - 36 -show menuwindow 5 - 20 -stdinfoedit 8 - 36 -stop 7 - 8 -stop 8 - 37 -testinstallation 8 - 37 -testinstallation 4 - 3 -textprozedur 4 - 8 -textprozedur 8 - 38 -text zeile 4 - 13 -textzeile 8 - 39 -trennlinie 4 - 6 -trennlinie 8 - 38 -waagerecht 8 - 39 -WINDOW 7 - 2 -window 7 - 4 -window 8 - 40 -write menunotice 8 - 40 -write menunotice 5 - 15 -yes 7 - 7 -yes 8 - 41 - - diff --git a/doc/menugenerator/menu-generator handbuch.inhalt b/doc/menugenerator/menu-generator handbuch.inhalt deleted file mode 100644 index 8b1aef4..0000000 --- a/doc/menugenerator/menu-generator handbuch.inhalt +++ /dev/null @@ -1,72 +0,0 @@ -#type ("elite.lq")##limit (11.5)##pagelength (16.5)##pageblock# -#start (1.8,0.0)# -#type ("prop.breit.lq")# -Inhaltsverzeichnis -#type ("elite.lq")# - - -1 Was kann ls-Menu-Generator 3 - -2 Installation von ls-Menu-Generator 6 -2. 1 Voraussetzungen 6 -2. 2 Lieferumfang 6 -2. 3 Installation 7 - -3 Die Arbeitsweise von ls-DIALOG 8 -3. 1 Ankoppeln einer Menukarte/ 8 - Ausführen eines Menus -3. 2 Aufbau/Inhalt einer Menukarte 11 - -4. Erstellen einer neuen Menukarte 13 -4. 1 Eintragen der Menupunkte 13 -4. 2 Erstellung und Einbinden von 20 - Informationstexten -4. 3 Auslagerung von anwendungsbezogenen 24 - Texten in die Menukarte - -5. Dialoge innerhalb des Menus 27 -5. 1 Eingabe eines Textes/Namens 28 -5. 2 Ausgabe einer Information 31 -5. 3 Auswahl eines Namen durch Ankreuzen 32 -5. 4 Auswahl mehrerer Namen durch Ankreuzen 34 -5. 5 Eingabe eines Textes/Namens - alternativ: 35 - Auswahl durch Ankreuzen -5. 6 Die Ja/Nein - Entscheidung 37 -5. 7 Die Alternativentscheidung 39 -5. 8 Die Menunotiz 43 -5. 9 Fußzeilen im Menu 44 -5.10 Wiederherstellung des Menubildschirms 46 -5.11 Arbeiten im Menufenster 47 -5.11.1 Datei anzeigen/editieren 48 -5.11.2 Menufenster öffnen/anzeigen 48 -5.11.3 Menufenster löschen(putzen) 49 -5.11.4 Positionierungen im Menufenster 49 -5.11.5 Informationen über die aktuelle 50 - Menu-Fensterposition -5.11.6 Aus-/Eingabe innerhalb des Menufensters 51 -5.11.7 Weitere Prozeduren 52 -5.12 Festlegung der Boxpositionen innerhalb 53 - des Menus -5.13 ls-DIALOG-Syntax 54 - (Regeln zur Erstellung von Texten) -5.14 Thesaurushandling 55 -5.15 Aktivieren/Deaktivieren von Menupunkten 57 - -6. Einbinden der Datei- und Archivoperationen 59 -6. 1 Einbinden der Archivoperationen 60 -6. 2 Einbinden der Dateioperationen 65 - -7. Eigene Fenster und Fensteroperationen 66 -7. 1 Definition von Fenstern 67 -7. 2 Anzeigen/Löschen von Fenstern 70 -7. 3 Operationen innerhalb des Fensters 71 -7. 3.1 Datei anzeigen/editieren 71 -7. 3.2 Positionierungen im Fenster 72 -7. 3.3 Ein- und Ausgaben innerhalb des Fensters 73 -7. 3.4 Weitere Prozeduren 74 -7. 4 Boxoperationen 75 - -8. Kurzbeschreibung der Befehle 78 - -9. Register 125 - |