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