ObjectGEM - GEM objektiv gesehen!

"Auf dem ATARI ST/STE/TT/ Falcon bricht ein neues Zeitalter des Software-Engineerings an!" So beginnt die Einleitung des ObjectGEM-Programmierhandbuchs, und im folgenden soll dieser Satz erläutert werden. ObjectGEM ist eine Library für PurePascal ab Version 1.1, mit der GEM-konforme Programme entwickelt werden können. Entscheidend daran ist, daß ObjectGEM dafür einen (wie der Name schon suggeriert) objektorientierten Ansatz wählt. Dabei muß man ein wenig umdenken, denn wenn man bisher z.B. ein Fenster mit allen Messages und Funktionsaufrufen „von Hand" programmiert hat, wird dazu nun einfach ein TWindow-Objekt verwendet. Dieses Objekt "weiß" genau, wie ein GEM-Fenster in allen Einzelheiten zu funktionieren hat, es kümmert sich selbst darum, unter welcher TOS-Version das Programm gerade läuft, und auch die Tastatursteuerung wird von dem Objekt verwaltet. Man braucht sich also nicht mehr um die Verwaltung des Fensters zu kümmern, sondern kann sich auf das Wesentliche - in diesem Fall das Zeichnen des Fensterinhalts - konzentrieren.

Das geschieht in OOP-Sprachen durch das Überschreiben von Methoden, also die Routinen eines Objektes. Standardmäßig zeichnet das Fensterobjekt nämlich nur einen weißen Hintergrund. Wenn man nun etwas in dem Fenster ausgeben möchte, überschreibt man die TWindow.Paint-Methode (dort werden alle Ausgaben vorgenommen, wobei die Rechteckliste des Fensters automatisch beachtet wird), und schon weiß das abgeleitete Fensterobjekt, was es zeichnen soll. Analog kann man sich durch Überschreiben anderer Methoden bis zur untersten Ebene der GEM-Programmierung einklinken (falls dies überhaupt nötig sein sollte) und so auch grundlegende Eigenschaften eines Fensters ändern. Weitere Objekte behandeln Pop-up-Menüs, (Fenster-)Dialoge, Menüleisten, Toolbars, Slider und das Klemmbrett. Es steht sogar ein eigenes Objekt für Textfenster zur Verfügung. Bemerkenswert sind noch die Kollektionen (polymorphe dynamische Arrays) sowie Eingabefilterobjekte, die weitestgehend kompatibel zu ObjectWindows von Borland sind.

Auch die Dialogkonstruktion unterscheidet sich in ObjectGEM von anderen Lösungen. Nachdem man im RCS den Dialogbaum entworfen hat, wird jedes Dialogelement (d.h. jeder Button, Text usw.) mit einem eigenen Objekt verknüpft, das sich dann um die Darstellung und die Abarbeitung kümmert und mit dem man das Element komfortabel manipulieren kann. Für Eingabefelder z.B. ist das Objekt TEdit zuständig, für Pop-up-Menüs innerhalb von Dialogen das Objekt TComboBox. Außerdem können Fensterdialoge auch im Hintergrund bedient werden (dieses Verhalten ist abstellbar).

ObjectGEM beherrscht ferner das XAcc- und AV-Protokoll, MultiTOS-Drag&Drop, Iconification (auch ohne MultiTOS), verwaltet Toolbars und (Fenster-)Menüs unter allen TOS-Versionen und bietet eine einfach anzuwendende kontextsensitive Hilfe, die sog. BubbleHelp. Als Programmierer hat man in der Pure Pascal-Shell außerdem eine sehr ausführliche Online-Hilfe zur Verfügung, und sollte sich eine Frage damit einmal doch nicht klären lassen, kann man immer noch im beiliegenden (auf neun Units verteilten) Quelltext nachsehen. ObjectGEM wird seit der Veröffentlichung vor eineinhalb Jahren kontinuierlich weiterentwickelt, es erscheint pro Monat ca. eine neue Version. Zum Test lag die Version 1.20 vor.

Ein Nachteil soll nicht verschwiegen werden: Compilierte ObjectGEM-Programme sind aufgrund des objektorientierten Ansatzes sehr groß. Das liegt aber in der Natur der Sache, mit diesem „Problem" haben auch andere OOP-Sprachen zu kämpfen.

Bleibt die eingangs gestellte Frage. ObjectGEM setzt konsequent auf OOP und steht damit im ST-Bereich immer noch ziemlich einsam da. Wer bisher nur prozedural programmiert hat, wird sich mit dem objektorientierten Ansatz vermutlich schwer tun. Wer aber die (kleine) Mühe auf sich nimmt, sich in die neue Denkweise des objektorientierten Programmierens einzuarbeiten, wird in ObjectGEM eine große Hilfe finden, wenn es darum geht, auf die Schnelle kleinere Programme oder aber auch große, gut wartbare Projekte zu entwerfen. In Vorbereitung ist außerdem das 4GL-Tool GEMWizard, mit dem ObjectGEM-Programme mit ein paar Mausklicks erzeugt werden können. In Anbetracht der Tatsache, daß alle Quelltexte beiliegen, erscheint auch die Shareware-Gebühr von 50 DM (60,- DM mit gedrucktem Handbuch) mehr als angemessen.

Autor: Thomas Much
ST-PD: 652



Aus: ST-Computer 12 / 1994, Seite 115

Links

Copyright-Bestimmungen: siehe Über diese Seite