%W
|
Anmerkung
Es empfiehlt sich sehr, statt des
%W-Kommandos das DEFINE WINDOW-Statement zu
verwenden.
Ein Natural-"Window" oder -Fenster ist der Ausschnitt einer von einem Natural-Programm erzeugten logischen Seite, der auf dem Bildschirm zu sehen ist.
Dieses Fenster kann mit dem Terminalkommando
%W beeinflusst werden.
Das Kommando muss immer mit Parametern eingegeben werden, um die
einzelnen im folgenden beschriebenen Funktionen auszuführen. Sie können mehrere
Funktionen gleichzeitig ausführen, indem Sie mehrere Parameter mit einem
%W-Kommando angeben. Zwischen Kommando und
Parametern dürfen keine Trennzeichen oder Leerzeichen stehen.
Das Fenster ist ständig vorhanden, auch wenn Sie sich dessen nicht
bewusst sind, da die Größe des Fensters — solange Sie sie nicht mit einem
DEFINE
WINDOW-Statement oder %W-Kommando
ändern — mit der Größe Ihres Bildschirms identisch ist.
Weitere Informationen über Fensterverarbeitung siehe auch
DEFINE
WINDOW-Statement in der
Statements-Dokumentation.
Es gibt zwei Arten von Window-Kommandos:
Kommandos, mit denen Sie die Größe und Position des Fensters auf dem physischen Bildschirm Ihres Terminals verändern können.
Kommandos, mit denen Sie die Position des Fensters auf der vom Programm erzeugten logischen Seite verändern können.
Folgende Themen werden behandelt:
Mit den folgenden Window-Kommandos bestimmen Sie die Größe und Position des Fensters auf dem physischen Bildschirm.
Wenn Sie die Position des Fensters auf dem physischen Bildschirm ändern, wird die Position des Fensters auf der logischen Seite dadurch nicht verändert:

Zu Informationen über mögliche Fenstergrößen siehe DEFINE WINDOW-Statement.
| Kommando | Funktion |
|---|---|
| %WB | Die Fenstergröße (ausschließlich Rahmen) wird auf Bildschirmgröße gesetzt. Falls ein Rahmen definiert ist, ist dieser nicht sichtbar. |
| %WBlll/ccc | Die obere linke Ecke des Fensters wird in Zeile lll / Spalte ccc platziert (Zeilen und Spalten werden auf dem physischen Bildschirm gezählt). Die Größe des Fensters bleibt dabei gleich. Falls das Fenster zu groß ist, um an die angegebene Stelle platziert zu werden, wird es so nahe wie möglich an diese Stelle platziert. |
| %WB0 | Das Fenster wird an die obere linke Bildschirmecke verschoben. Die Fenstergröße bleibt dabei unverändert. |
| %W# | Die obere linke Ecke des Fensters wird an die Cursor-Position platziert. Die Größe des Fensters bleibt dabei gleich. Falls das Fenster zu groß ist, um an die angegebene Stelle platziert zu werden, wird es so nahe wie möglich an diese Stelle platziert. |
| %W? | Die untere rechte Ecke des Fensters wird an die Cursor-Position platziert. Die obere linke Ecke des Fensters verschiebt sich dabei nicht, und die Größe des Fensters wird entsprechend angepasst. |
| %WLnn | Die Zeilenlänge (horizontale Ausdehnung) des Fensters (einschließlich Rahmen,
falls angegeben) wird auf nn Stellen gesetzt.
Wenn Sie nn nicht oder größer als auf den Bildschirm passend, angeben, wird die horizontale Ausdehnung auf größtmögliche Zeilenlänge gesetzt, d.h. bis zum rechten Bildschirmrand. |
| %WCnn | Die Spaltenlänge (vertikale Ausdehnung) des Fensters (einschließlich Rahmen,
falls angegeben) wird auf nn Zeilen gesetzt.
Wenn Sie nn nicht oder größer als auf den Bildschirm passend, angeben, wird die vertikale Ausdehnung auf größtmögliche Spaltenlänge gesetzt, d.h. bis zum unteren Bildschirmrand. |
Zeilen- und Spaltenangaben beziehen sich auf die physische Gesamtgröße des Fensters (einschließlich Rahmen, falls angegeben), nicht auf die Größe dessen, was innerhalb des Fensters logisch sichtbar ist.
Wird ein Fenster nicht korrekt definiert, so wird ein solches Kommando entweder ignoriert oder die Fenstergröße und -position im Rahmen der physischen Möglichkeiten angepasst.
| Kommando | Funktion |
|---|---|
| %WF | Schaltet die Rahmung (Frame) ein. Die Größe
des Fensters wird durch einen Rahmen angezeigt.
Falls das Fenster kleiner als 4 Zeilen mal 13 Spalten ist, ist der Rahmen nicht sichtbar. |
| %WM | Schaltet die Rahmung aus. Die Größe des Fensters wird nicht durch einen
Rahmen angezeigt.
Durch Ausschalten des Rahmens ändert sich die Größe des Fensters nicht (lediglich die Größe des im Fenster sichtbaren Seitenausschnitts). |
| %WO | Die Anzeige von Funktionstastenleiste, Meldungszeile und Statistikzeile wird
unterdrückt. Dieses Kommando wirkt nur, falls das betreffende Fenster ein
"echtes" Fenster ist (d.h. kleiner als der physische Bildschirm
ist).
Um die Wirkung von |
| %WP | Standardmäßig werden die Funktionstastenleiste, die Meldungszeile und die
Statistikzeile innerhalb eines Fensters angezeigt. Um sie auf dem Schirm außerhalb
des Fensters anzuzeigen, verwenden Sie %WP.
Um die
Wirkung von |
| %WD | Schaltet die Wirkung von %WF,
%WO und %WP sowie der
TITLE-Option des DEFINE WINDOW-Statements
aus.
|
| %WX | Befindet sich außerhalb des Fensters ein *COM-Feld, so ist dieses Feld
normalerweise nicht schreibgeschützt. Mit %WX können
Sie es schreibgeschützt machen.
|
| %WY | Schaltet die Wirkung von %WX wieder aus.
|
Mit den folgenden Window-Kommandos können Sie die Position des Fensters auf der aktuellen logischen Seite ändern, d.h. der vom Natural-Programm angezeigten Ausgabe oder Map. Die Größe dieser logischen Seite kann über die Größe Ihres Bildschirms hinausgehen.
Wenn Sie die Position des Fensters auf der logischen Seite ändern, bleibt die Position des Fensters auf dem physischen Bildschirm unverändert. Die logische Seite verschiebt sich also quasi "unter" dem Fenster:

Normalerweise — wenn Sie die Position nicht durch eines der folgenden Kommandos ändern — befindet sich das Fenster an der oberen linken Ecke der logischen Seite, d.h. Sie sehen durch das Fenster den oberen linken Ausschnitt der logischen Seite.
| Kommando | Funktion |
|---|---|
| %W* | Der durch den Cursor auf der Seite markierte Punkt wird an die obere linke Fensterecke geschoben. |
| %Wlll,ccc | Die Seite wird so verschoben, dass der durch Zeile lll /Spalte ccc definierte Punkt an der oberen linken Fensterecke ist. Zeilen und Spalten werden auf der logischen Seite gezählt. |
| %W< | Die Seite verschiebt sich um eine Fensterbreite nach links. Die Verschiebung entspricht der Zeilenbreite (horizontale Ausdehnung) des Fensters. |
| %W<< | Das Fenster wird bis zum linken Rand der Seite verschoben. |
| %W<n | Das Fenster wird um n Stellen nach links verschoben (0 =< n =< Zeilenlänge der Seite). |
| %W> | Die Seite verschiebt sich um eine Fensterbreite nach rechts. Die Verschiebung entspricht der Zeilenbreite (horizontale Ausdehnung) des Fensters. |
| %W>> | Das Fenster wird bis zum rechten Rand der Seite verschoben. |
| %W>n | Das Fenster wird um n Stellen nach rechts verschoben (0 =< n =< Zeilenlänge der Seite). |
| %W+ | Die Seite verschiebt sich um eine Fensterhöhe nach unten. Die Anzahl der verschobenen Zeilen entspricht der Anzahl der Zeilen im Fenster. (*) |
| %W++ | Das Fenster wird ans untere Ende der Seite verschoben. (*) |
| %W+n | Das Fenster wird um n Zeilen nach unten verschoben (0 =< n =< Spaltenlänge der Seite). (*) |
| %W- | Die Seite verschiebt sich um eine Fensterhöhe nach oben. Die Anzahl der verschobenen Zeilen entspricht der Anzahl der Zeilen im Fenster. |
| %W-- | Das Fenster wird ans obere Ende der Seite verschoben. |
| %W-n | Das Fenster wird um n Zeilen nach oben verschoben (0 =< n =< Spaltenlänge der Seite). |
| %WH | Standardmäßig wird die Fenster-Position auf der logischen Seite bei einer
Bildschirm-Eingabe/Ausgabe wieder auf die obere linke Ecke zurückgesetzt.
%WH bewirkt, dass die gesetzte Fenster-Position beim
nächsten Eingabe/Ausgabe nicht zurückgesetzt wird, sondern erhalten bleibt.
%WH gilt jeweils nur für den nächsten
Eingabe/Ausgabe.
|
| %WS | Die STAY-Option ist eingeschaltet; d.h. die Kontrolle bleibt auf
der aktuellen Seite, bis das Ende der Seite erreicht ist.
Wenn eine Seite in
vertikaler Richtung noch nicht vollständig angezeigt worden ist, wird Ihnen dies
durch die Zeichenkette |
| %WN | Die STAY-Option ist ausgeschaltet. Wenn Sie ENTER
drücken, wird die Kontrolle an das Programm übergeben.
|
* Das Fenster kann höchstens bis zur letzten nicht leeren Zeile der Seite verschoben werden.
Anmerkungen:
SET KEY-Statement).
SET
CONTROL-Statement angeben wollen, muss diesem ein REINPUT-Statement folgen (d.h. es muss
zwischen dem REINPUT-Statement und dem entsprechenden INPUT-Statement stehen); sonst kann
Natural das Kommando nicht eindeutig einem bestimmten Fenster zuordnen (und ignoriert
es).
INPUT-Statement mit Option
WINDOW='window-name' und dem dazugehörigen
REINPUT-Statement grundsätzlich kein SET CONTROL
’W’-Statement stehen.
Sie können die verschiedenen Parameter des %W-Kommandos auch
miteinander kombinieren. Zum Beispiel:
| %W<<-- | Das Fenster wird an die obere linke Ecke der Seite geschoben. |
|---|---|
| %W>>++ | Das Fenster wird an die untere rechte Ecke der Seite geschoben. |
| %W++- | Der (in vertikaler Richtung) vorletzte Fensterausschnitt der Seite wird gezeigt. |
| %W+3>6 | Das Fenster verschiebt sich auf der Seite um 3 Zeilen nach unten und 6 Spalten nach rechts. |
| %W10+> | Das Fenster wird an Zeile 10 der Seite geschoben, dann um ein Fenster nach unten und um ein Fenster nach rechts. |
| %WL40C10++-3 | Das Fenster wird mit einer Zeilenlänge von 40 Stellen und einer Spaltenlänge von 10 Zeilen definiert, es wird ans untere Ende der logischen Seite und dann wieder 3 Zeilen nach oben geschoben. |
| %WL30C10B3/15--<< | Das Fenster wird mit einer Zeilenlänge von 30 Stellen und einer Spaltenlänge von 10 Zeilen definiert, es wird in Zeile 3 und Spalte 15 des physischen Bildschirms platziert und an die obere linke Ecke der logischen Seite geschoben. |
| %WFS | Um das Fenster wird ein Rahmen generiert, und die STAY-Option
wird eingeschaltet.
|
Wenn Sie mehrere Parameter mit dem %W-Kommando angeben,
beachten Sie bitte, dass Sie auf Großrechnern nach dem Prozentzeichen (%) höchstens 24
Zeichen angeben können; alle weiteren Zeichen werden ignoriert.
Die Parameter werden der Reihe nach ausgewertet, so dass unterschiedliche Reihenfolgen derselben Parameter zu unterschiedlichen Ergebnissen führen können.
| Kommando | Funktion |
|---|---|
| %WA |
Mit Wenn das aktuelle Diese Funktion ermöglicht beispielsweise die Verwendung von Fenstern in PC-ähnlicher Form. Für ein bestimmtes Fenster können beliebig viele aufgerufene, "abhängige" Fenster gespeichert werden. All diese Fenster verschwinden vom Schirm, wenn das Haupteingabefenster wiederausgeführt wird. Der Inhalt des Puffers (d.h. die gespeicherten Schirme) wird gelöscht, wenn
Natural wieder einen ganzen Bildschirm ausgibt, wenn Natural in den
Kommandomodus ( |
| %WZ | Mit %WZ deaktivieren Sie ein vorhergegangenes
%WA-Kommando.
|