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
|
#limit (11.0)##pagelength (16.5)##block#
#start (2.0,0.0)#
#page (93)#
#headodd#
#center#EUDAS#right#%
#end#
#headeven#
%#center#EUDAS
#end#
#center#1
9 Anzeige
9.1 Fensterverwalter
Funktionen, die einen Teil des Bildschirms in einem rechteckigen
Fenster beschreiben, werden über den Fensterverwalter untereinan
der koordiniert. Jede Funktion fordert für ihren Fensterbereich eine
Variable vom Typ FENSTER an. Vor jedem Bildschirmzugriff kann die
Funktion erfahren, ob andere Programme den Bildschirm im Fenster
bereich überschrieben haben. Gleichzeitig meldet sie damit Verän
derungen an anderen Fenstern an, die sich mit dem eigenen über
schneiden.
PROC fenster initialisieren (FENSTER VAR neu)
Jede Fenstervariable muß vor Benutzung initialisiert werden.
PROC fenstergroesse setzen (FENSTER VAR fenster,
INT CONST x anf, y anf,
x laenge, y laenge)
Die Fenstergröße des Fensters wird gesetzt. 'x anf' und 'y anf'
werden von 1..n gezählt. Die Größe eines 24x80-Bildschirms
entspricht den Angaben (1, 1, 79, 24). Da das letzte Zeichen
einer Zeile wegen Rollgefahr nicht benutzt werden kann, werden
nur 79 Spalten angegeben.
FEHLER:
#on("i")#zu viele Fenster#off("i")#
Es sind nur 16 verschiedene Fenstergrößen möglich.
PROC fenstergroesse (FENSTER CONST fenster,
INT VAR x anf, y anf,
x laenge, y laenge)
Meldet die eingestellte Größe des Fensters.
PROC fensterzugriff (FENSTER CONST mein fenster,
BOOL VAR veraendert)
Ein Zugriff auf 'mein fenster' wird angemeldet. 'veraendert' gibt
an, ob das Fenster seit dem letzten Zugriff durch einen über
schneidenden Zugriff verändert wurde. Beim ersten Zugriff ist
'veraendert' immer TRUE.
PROC fenster veraendert (FENSTER CONST fenster)
Falls ein Unterprogramm eine FENSTER-Variable des Hauptpro
grammes benutzt, kennzeichnet das Unterprogramm das Fenster
mit dieser Prozedur als benutzt, damit das Hauptprogramm das
Bild neu ausgibt.
PROC bildschirm neu
Gibt an, daß der Bildschirm von einer Funktion benutzt wurde,
die ihre Zugriffe nicht über den Fensterverwalter anmeldet.
Alle Fenster werden als verändert gekennzeichnet.
9.2 Anzeigegrundfunktionen
Sämtliche Anzeigefunktionen werden in einem Fenster abgewickelt,
dessen Größe durch 'anzeigefenster' bestimmt wird.
Die Funktion 'bildausgeben' übernimmt die eigentliche Ausgabe.
Dabei kann durch Parameter mitgeteilt werden, ob sich an der Datei
außer der Markierung etwas geändert hat. Hat sich nichts geändert,
wird zur Optimierung unter Umständen nur die Markierung neu
ausgegeben. Das Bild wird jedoch auf jeden Fall ganz ausgegeben,
wenn das Fenster von anderer Seite verändert wurde. Auch das
Öffnen einer neuen Datei wird automatisch erkannt und richtig
behandelt.
Welche Felder dargestellt werden sollen, kann durch 'feldaus
wahl' angegeben werden. Dabei ist für jeden Anzeigemodus eine
eigene Feldauswahl möglich. Die Darstellung kann durch 'rollen' in
vertikaler Richtung verschoben werden.
Mit 'uebersicht' kann die Übersicht ausgegeben werden. Ihre
Größe wird durch 'uebersichtsfenster' angegeben.
PROC anzeigefenster (INT CONST x anf, y anf,
x laenge, y laenge)
Das Anzeigefenster wird in der entsprechenden Größe reser
viert.
FEHLER:
#on("i")#Anzeigefenster zu klein#off("i")#
Das Fenster ist zu schmal (< 40 Zeichen), um eine sinnvolle
Anzeige zuzulassen.
PROC bild ausgeben (BOOL CONST datei veraendert)
Im Anzeigefenster wird das Bild je nach eingestelltem Modus
ausgegeben, wenn das Fenster verändert wurde oder 'satz ver
aendert' TRUE ist. 'satz veraendert' muß immer dann angegeben
werden, wenn am Inhalt der virtuellen Datei etwas verändert
wurde.
PROC feldauswahl (TEXT CONST feldcode)
Die im aktuellen Modus anzuzeigenden Felder und ihre Reihen
folge werden ausgewählt. Dabei enthält 'feldcodes' an der i-ten
Stelle den Code der Feldnummer des Feldes, das an i-ter Posi
tion erscheinen soll.
PROC rollen (INT CONST anzahl)
Die Darstellung wird um die angegebene Anzahl von Zeilen
gerollt. Bei einer positiven Angabe wird zu höheren Feld- bzw.
Satznummern gerollt (Bild bewegt sich umgekehrt). Beim ersten
bzw. letzten Feld bzw. Satz hört das Rollen automatisch auf.
PROC uebersichtsfenster (INT CONST x anf, y anf,
x laenge, y laenge)
Legt die Größe des Übersichtsfensters fest.
PROC uebersicht (TEXT CONST feldauswahl)
Ruft eine Übersicht der aktuellen Datei auf, in der geblättert
und markiert werden kann. In 'feldauswahl' steht an der Stelle
i der Code der Feldnummer, die als i-tes in der Aufzählung
erscheinen soll.
9.3 Editorfunktionen
Es stehen drei Funktionen zur Verfügung, die den Editor im Anzei
gemodus benutzen. Sie dienen zum Einfügen und Ändern sowie zum
Eingeben eines Suchmusters.
Der Editor wird durch ESC 'q' verlassen. Weitere ESC-Funk
tionen, die zum Verlassen führen sollen, können durch 'exit zeichen'
angegegeben und nach Funktionsausführung mit 'exit durch' abge
fragt werden.
PROC aendern (PROC hilfe)
Bietet den aktuellen Satz zum Ändern an. Steht die virtuelle
Datei am Ende, wird automatisch 'einfuegen' durchgeführt. Bei
ESC '?' wird 'hilfe' aufgerufen.
PROC einfuegen (PROC hilfe)
Fügt vor dem aktuellen Satz einen Satz ein, dessen Inhalt im
Editor angegeben wird. Bei ESC '?' wird 'hilfe' aufgerufen.
PROC suchen (PROC hilfe)
Im Editor wird eine neue Suchbedingung eingegeben. Bei ESC '?'
wird 'hilfe' aufgerufen.
PROC exit durch (TEXT CONST zeichenkette)
Gibt die Zeichen an, die beim Drücken nach ESC zum Verlassen
des Editors führen sollen. Die eingegebenen Daten werden je
doch vorher auf jeden Fall noch verarbeitet.
TEXT PROC exit durch
Gibt an, durch welches Zeichen der Editor verlassen wurde.
|