Home Up Intro Contents Chapter 1 2 3 4 5 6 7 8 9 10 Design Assert Timing EBNF Report Pas Last Changed: Nov. 19, 1997
This is a conversion from Oberon text to HTML. The converter software is still under development, and some features or information may be missing in this converted version. HTML hypertext facilities are not yet active in this document. To exploit the interactive facilities, use Oberon System 3 and the source of this text, available as ASCII-coded Oberon System 3 documents. A previous version is also available for Oberon V4. To access this and other additional material use ftp.
For the convenience of our students, most of this information and the related material is in German. Sorry if this is not one of your languages.

Einführung in die Programmiersprache Oberon.

G. Sawitzki <gs@statlab.uni-heidelberg.de>



02: Rahmen und Spuren

In diesem Kapitel werden Elemente der Oberon-Benutzungsoberfläche eingeführt. Neben dem schon bekannten Aktivieren brauchen wir dazu zwei weitere Grundaktionen, Positionieren und Selektieren. Wie das geschieht hängt wieder von dem Gerät ab, an dem Sie arbeiten. Diese Tasten müssen Sie sich merken.
(Macintosh) Merke:
    Positionieren   => Maustaste
    Aktivieren   => ctrl-Taste
    Selektieren   => option/alt-Taste
(X-Windows etc.) Merke:
    Positionieren   => linke Maustaste
    Aktivieren   => mittlere Maustaste
    Selektieren   => rechte Maustaste
Für andere Systeme und verschiedenen Maus-Konfigurationen finden sie entsprechende Konventionen in der jeweiligen Einführung, die zu Ihrem Oberon System gehört.

Positionieren Sie im Text-Inhalt, so erscheint an der gewählten Stelle eine Einfügungsmarke. Wenn Sie nun zum Beispiel über die Tastatur Text eingeben, so wird der Text an dieser Stelle eingefügt.

"Selektieren" wird bei Text benutzt, um eine Textstelle für die weitere Bearbeitung zu kennzeichnen. Das Selektieren gibt es in zwei Varianten: Der Zeiger kann an eine bestimmte Stelle geführt werden, bevor "Selektieren" gedrückt wird (diese Variante werden wir später insbesondere benutzen, um graphische Elemente zu selektieren). Oder man schiebt den Zeiger von einer Stelle an eine andere: man bewegt den Mauszeiger an eine Stelle, drückt dann "Selektieren" und bewegt den Zeiger bei gedrücktem "Selektieren" an eine andere Stelle.

Oberon hat ein eigenes Fenstersystem. Jedes Fenster (window, viewer) kann mehrere Rahmen (frames) haben. Einen Rahmen, den Rollbalken, haben wir bereits kennengelernt. In einem weiteren Rahmen kann der eigentliche Inhalt des Fensters dargestellt werden, etwa ein Text. Üblicherweise haben die Fenster einen weiteren Rahmen, den Menürahmen (zum Beispiel als schmaler Rahmen am oberen Rande des Fensters, farb-invertiert oder grau/farbig unterlegt).

Oberon teilt den Bildschirm in Spuren (tracks) auf. Auf der rechten Seite sehen Sie die Systemspur. Hier erscheinen Systemnachrichten, Warnungen etc. Diese Spur enthält jetzt zwei oder mehr Textfenster. Auf der linken Seite sehen Sie die Benutzer-Spur, die ein Fenster mit diesem Text enthalten sollte.

Sie können die Aufteilung verändern, indem Sie ein Menu-Fenster am Menurahmen auf eine neue Position schieben: Den Mauszeiger in den Menürahmen positionieren und die Maus bewegen (während "Positionieren" gedrückt bleibt). Wenn Sie "Positionieren" loslassen, bekommt der Rahmen eine neue Position und Grösse. Probieren Sie's. Die Aufteilung in Spuren ist dabei geschützt. Sie können ein Fenster nur von einer Spur in eine andere bewegen, wenn sie an der neuen Position zusätzlich "Aktivieren" drücken, bevor sie "Positionieren" loslassen.

Anstelle ein Fenster manuell zu positionieren und damit die Grösse zu verändern, können Sie auch die Kommandos im Menurahmen aktivieren. Wenn Sie System.Grow aktivieren, wird der jeweilige Rahmen vergrössert. Wenn Sie System.Close aktivieren, wird der Rahmen geschlossen oder, wenn er vergrössert war, um eine Stufe verkleinert. Schliessen Sie den Rahmen mit dem ersten Kapitel, und vergrössern Sie diesen Rahmen von Kapitel 02. Sie werden nicht gewarnt, wenn der Rahmen geschlossen wird (vielleicht wollten Sie ihn ja nur verkleinern). Aber wenn Sie es sofort bereuen, so sind sie gesichert. Das Kommando
  System.Recall
sorgt dafür, dass der zuletzt geschlossene Rahmen wieder geöffnet wird.

Alle Fenster und Rahmen sind - wie das gesamte Oberon-System - erweiterbar. Der Benutzer kann die vorhandene Funktionalität modifizieren oder ergänzen. So werden Sie, je nach Konfiguration, im Menurahmen etwa anstelle des Textes System.Grow nur Grow finden. Oft wird dieser Eintrag wieder auf System.Grow führen. Dies liegt jedoch an demjenigen, der das System konfiguriert hat: Oberon erzwingt diese Konsistenz nicht - sie ist in der Verantwortung des Benutzers und/oder Programmierers.

Alle Komponenten von Oberon sind erlaubte Quellen für Kommandos. Es spielt keine Rolle, wo das Kommando eingegeben wird. Sie können es, wenn Sie es irgendwo noch auf dem Bildschirm sehen, dort aktivieren. Oder Sie können die Worte irgendwo eintippen (zum Beispiel in einem der System-Rahmen) und dann aktivieren. Wenn Sie zum Beispiel in diesem laufenden Text Desktops.OpenDoc Kurs/Kap01.Start aktivieren, erhalten Sie wieder ein Fenster mit dem Anfang des Kurses (das Sie sofort wieder schliessen können, wir brauchen es nicht mehr). Das Kommando Desktops.OpenDoc Kurs/Kap01.Start hat aber neben dem eigentlichen Kommando Desktops.OpenDoc noch eine Zusatzinformation, nämlich was geöffnet werden soll: das Kapitel Oberon.Kurs.Start. Diese Zusatzinformation ist ein Parameter für das Kommando Desktops.OpenDoc.

Kommando mit Parametern:
  xxxx.yyyy
par
Kommandos und Parameter müssen nicht unmittelbar gemeinsam auf dem Bildschirm erscheinen. Einige Kommandos erlauben es, eine Liste von mehreren Parametern einzugeben. Bei Kommandos mit einer variable langen Liste braucht Oberon dann einen Hinweis, um das Ende dieser Liste zu erkennen. Als Konvention wird das Zeichen ~ benutzt, um das Ende der Liste zu markieren. (Macintosh-Tastenkombination: Option n, dann Leertaste)
Ende der Parameter-Liste:
  xxxx.yyyy par1 par2 par3 ~


Kommando-Konventionen:
Ein ^ in der Parameterliste bedeutet, dass die Parameterliste mit der aktuellen Selektion (der zuletzt markierten Textstelle) fortgesetzt wird.
Aktuelle Selektion als Parameter-Fortsetzung:
  xxxx.yyyy ^
Eine Textstelle wird selektiert, indem Sie auf den Anfang des Texts gehen, dort "Selektieren" wählen, und dann den Zeiger zum Ende der Textstelle bewegen, während "Selektieren" gedrückt bleibt.
Kommandos können die Selektion als Eingabebereich betrachten und nur auf den selektierten Bereich zugreifen, oder die Eingabe auf den Anfang der Selektion umleiten und dann weiterlesen. Hierfür gibt es keine einheitliche Konvention. Insbesondere für kritische Kommandos (z.B. zum Löschen einer Datei) sollte auch bei Selektionen das Ende der Parameterliste immer wie oben angegeben markiert werden.

Ein @ in der Parameterliste bedeutet, dass die aktuelle Selektion (die zuletzt markierte Textstelle) als Parameter in die Parameterliste eingefügt wird.
Aktuelle Selektion als Parameter-Einfügung
  xxx.yyy @ par2 par3

(Diese Konvention wird nur von wenigen Kommandos unterstützt.)

Ein * in der Parameterliste steht für das gegenwärtig markierte Fenster. Er kann etwa anstelle des Namens dieses Fensters benutzt werden. Das Kommando bezieht sich dann auf den Inhalt des Fensters.
Aktuelle Markierung als Parameter:
  xxx.yyy * par2

Ein Fenster wird explizit markiert, wenn der Maus-Zeiger im Fenster ist und Markieren gedrückt wird. Im markierten Fenster erscheint dann vorübergehend eine Stern-Markierung.
(Macintosh) Merke:
    Markieren   => "Enter"-Taste (im Ziffernblock)
          oder "F1"-Taste
(X-Windows etc.) Merke:
    Markiere   => "Setup"-Taste

(Oberon für Windows) Merke:
    Markiere   => "F1"-Taste


Im Fenster Desktops.Tool finden Sie den Eintrag Desktops.OpenDoc ^. Bitte benutzen Sie diesen Eintrag, um weiter mit dem Kurs zu arbeiten. Aktivieren Sie
  System.Open Kurs/Kurs.Inhalt
um ein Inhaltsverzeichnis in der System-Spur zu bekommen. Selektieren Sie dort das Kapitel, das Sie interessiert. Aktivieren Sie Desktops.OpenDoc ^ im Fenster Desktops.Tool, um dieses Kapitel zu sehen.



Einführung in die Programmiersprache Oberon. Kurs/Kap02.Text
gs (c) G. Sawitzki, StatLab Heidelberg
<http://statlab.uni-heidelberg.de/projects/oberon/kurs/>

Home Up Intro Contents Chapter 1 2 3 4 5 6 7 8 9 10 Design Assert Timing EBNF Report Pas