Dr. Michael Fothe
Landesfachberater für Informatik
Albert-Schweitzer-Gymnasium Erfurt
Vilniuser Straße 17a
99089 Erfurt
fothe@asgspez.ef.th.schule.de
Oberon ermöglicht strukturiertes, modulares und objektorientiertes Programmieren. Das ETH-Oberon unterstützt zusätzlich komponentenbasiertes Programmieren. Bei dieser Technologie werden bereitgestellte Komponenten ("Gadgets") in ein Oberon-Programm eingebunden. Mit Hilfe der Komponenten lassen sich graphische Benutzungsschnittstellen (GUIs) gestalten. In diesem Skript erfolgt eine Beschränkung auf die Visual gadgets Button, Calendar, CheckBox, DigitalClock, Navigator, Scrollbar und TextField. Zu weiteren Möglichkeiten siehe /1/. Nachfolgend wird vorausgesetzt, dass der Leser Grundkenntnisse und -fähigkeiten zum ETH-Oberon oder zum Oberon-System Version 4-2.3 besitzt (siehe z. B. /2/).
Vorbereiten der Arbeit
Visual gadgets
Die Visual gadgets werden in einem Panel platziert. Die Einfügeposition
wird mit der linken Maustaste im Panel markiert. Die Auswahl des Gadgets,
das eingefügt werden soll, erfolgt im Gadgets Toolkit unter View. Das
Panel ist zu speichern. Der Name und die Eigenschaften (z. B. die Farbe)
eines Gadgets können mit Columbus eingestellt werden. Vor dem Aufruf
von Columbus im Gadgets Toolkit ist das betreffende Gadget invers zu markieren
(rechte Maustaste). Nach dem Eingeben von Name und Eigenschaften des Gadgets
ist der Apply-Button zu drücken.
Model Gadgets
Die Visual Gadgets CheckBox, Scrollbar und TextField sind mit einem Model
Gadget zu verbinden (z. B. CheckBox mit Boolean, Scrollbar mit Integer und
TextField mit Integer, Real oder String). Für das Verbinden wird Columbus
verwendet. Vor dem Aufruf von Columbus ist das betreffende Visual Gadget
invers zu markieren. Die Auswahl des Model Gadgets erfolgt im Gadgets Toolkit
unter Model.
In manchen Fällen sollen zwei oder mehrere Visual Gadgets erst untereinander
und dann mit dem gleichen Model Gadget verbunden werden. In diesen Fällen
sind vor der Auswahl des Model Gadgets alle einbezogenen Visual Gadgets invers
zu markieren.
Verbinden von Gadgets und Oberon-Programmen
Hinweis: Mit Watson werden z. B. die Definitionsmodule erzeugt ("Schnittstellen der Module").
Das Panel Eins.Panel wird erstellt. In dem Panel werden eine CheckBox und
ein Button platziert. Die CheckBox erhält den Namen cb. Sie wird mit
dem Model Gadget Boolean verbunden. Der Button erhält den Namen bu.
Unter Caption wird Start eingegeben. Unter Cmd wird das Kommando Eins.Starten
festgelegt. Das folgende Modul liest den Wert der CheckBox ein, gibt ihn
aus, negiert ihn und gibt den neuen Wert an die CheckBox zurück. |
Das Panel Zwei.Panel wird erstellt. In dem Panel werden ein Scrollbar (Rollbalken),
zwei TextFields (Textfelder) und ein Button platziert. Der Rollbalken erhält
den Namen rb. Ein Textfeld erhält den Namen tf1, das andere den Namen
tf2. Der Rollbalken und das Textfeld tf1 werden untereinander und mit dem
Model Gadget Integer verbunden. Das Textfeld tf2 wird mit dem Model Gadget
Integer verbunden. Der Button erhält den Namen bu. Unter Caption wird
Start eingegeben. Unter Cmd wird das Kommando Zwei.Starten festgelegt. Das
folgende Modul liest den Wert von Rollbalken/Textfeld tf1 ein, addiert zu
dem Wert 10 und gibt den neuen Wert im Textfeld tf2 aus. |
Praktikumsaufgaben
Setzen Sie die beiden gegebenen Beispiele auf den PC um!
Erarbeiten Sie ein Oberon-Programm, das beim Kalkulieren der Fahrt- und Übernachtungskosten
einer Studienfahrt nach Köln unterstützt! Einige wichtige Angaben:
- Preis für den Reisebus: 540,00 EUR pro Tag
Übernachtung inklusive Bettwäsche und Frühstücksbüffet
im Jugendgästehaus Köln-Riehl: 21,00 EUR pro Nacht
Mittagessen: 5,00 EUR
Abendessen: 5,00 EUR
Lunchpaket: 5,00 EUR
Grillen: 6,00 EUR
Viel Erfolg!
Literatur
/1/ Fischer, André L.; Marais, Hannes: The Oberon
Companion. A Guide to Using and Programming Oberon System
3. vdf Hochschulverlag AG an der ETH Zürich 1998
/2/ Fothe, Michael: Problemlösen mit OBERON. Konzeption
und Einsatz eines elektronischen Lehrbuchs. LOG IN 21 (2001) Heft 2, S. 33-40