#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") ). 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.