summaryrefslogtreecommitdiff
path: root/doc/menugenerator/menu-generator handbuch.4
blob: 97e7491848524e38c6dfccb6d7bc771954708c66 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
#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.