Ataquarium - OLGA & faceVALUE

Ein Monat ist vergangen, um über das Mystery-Bild nachzudenken. Um die Bombe platzen zu lassen, verrate ich, worum es sich handelt: Es ist ein GFA-Editor und zwar nicht das verstaubte Vorserien-PD-Modell, das 1993 auf diversen PD-Serien auftauchte, sondern ein vollwertiger Ersatz des Original-Editors. Meine Informanten haben mir mitgeteilt, dass das Programm in der Lage ist, .GFA-Dateien ohne externe Programme oder Teile des Original-Interpreters zu laden und auch wieder abzuspeichern - mit Syntax-Coloring und automatischem Einrücken. Mehr darf ich aber auch schon nicht verraten, denn der freundliche Herr, der mich beim schreiben des Artikels beobachtet, hat nicht nur ein erstklassiges Zahnpastagrinsen, sondern auch eine blitzblank polierte Pistole mit Schalldämpfer: "Sie dürfen zwar alles wissen, aber nicht alles schreiben" - ah ja, dafür gibt man doch gerne die Pressefreiheit auf...

OLGA

Bevor dieses Ataquarium völlig in Agentenklischees versinkt, kommen wir lieber gleich zum ersten Thema: OLGA. Diese Erweiterung gehört in jeden Auto-Ordner und verlinkt Objekte. Wer z.B. im HP-Penguin eine HTML-Datei speichert und diese auch in CAB geöffnet hat, der wird merken, das CAB die Datei neu lädt. Beide Programme kennen sich eigentlich gar nicht, daher braucht es einen Unterhändler, der vermittelt (womit wir wieder beim Agentenfilm wären). Bei diesem melden sich beide Anwendungen beim Start an. Öffnet CAB ein HTML-Dokument, bekommt der Unterhändler eine Notiz. Der Penguin hingegen spricht mit dem Händler immer dann, wenn ein Dokument abgespeichert wird. Der Unterhändler ist - wie sollte es anders sein - OLGA. Obwohl die Unterstützung der OLGA-Grundfunktionen sehr einfach ist, gibt es immer noch Programme, die das Programm nicht unterstützen.

Um die OLGA-Unterstützung wirklich kinderleicht zu machen, habe ich eine OLGA-Library in Form eines faceVALUE-Wrinkles zusammengestellt. Wrinkles haben den Vorteil, das sie eine Routine viel besser in ein Programm einbinden können, als eine nachladbare LST-Datei. Die ganze Anmeldung bei OLGA wird automatisch vorgenommen.

Noch ein paar Sätze zur Leistungsfähigkeit der OLGA-Lib: Sie ermöglicht das Anlegen von OLGA-Servern und -Clients. OLGA-Server sind Programme, die vorzugsweise zum Abspeichern von Dokumenten verwendet werden. So wird man vermutlich nicht den Text aus qed kurz in Luna einladen, um dort ein paar Änderungen vorzunehmen. Viele Editoren sind nur OLGA-Server und diese sind auch etwas einfacher zu programmieren. OLGA-Clients sind häufig Anzeigeprogramme ohne große Bearbeitungsfunktionen - wie eben CAB.
Natürlich sind diese beiden Definitionen kein Dogma und fast jedes Programm kann Dateien öffnen und abspeichern. Programme können sowohl Client als auch Server sein. Bisher werden von der OLGA-Lib aber nur OLGA-Server richtig unterstützt.
Die Erweiterung, die das Einbetten von Dokumenten in andere Dokumente erlaubt (OLGA ID4), soll hier nicht beschrieben werden, da ihre Umsetzung in GFA-Basic alles andere als trivial ist.

Olgalib.lst gehört in das Wrinkles-Verzeichnis von faceVALUE. Beim nächsten Start des Programms erscheint die Library mit "OLGA-Library 1.2" in der Listbox. Neben den OLGA-Routinen wird auch eine Funktion zur Abfrage von Environment-Strings eingebunden. Diese wird gegebenenfalls von der OLGA-Lib benötigt. In der Prozedur user_on_open wird ole_init eingebunden, in user_gem_messages sind es ole_new und olga_exit.

Angenommen, unser Programm hat eine Funktion "Speichern", dann muß in die Speichern-Funktion nur folgender Funktionsaufruf eingefügt werden:

@olga_update(dateiname$)

dateiname$ ist der volle Pfad- und Dateiname der Datei. Ist diese Datei in einem OLGA-Client gerade geöffnet, so wird die Datei dort neu geladen.



Aus: ST-Computer 10 / 2001, Seite 18

Links

Copyright-Bestimmungen: siehe Über diese Seite