Anleitung für: Demoversion des DB_Editor V1.2 vom: 28.4.94 Seite: SEITE

0. Vorwort

Bevor ich das Programm erläutere, möchte ich mich bei allen bedanken, die mich bei der Verwirklichung dieses Projektes unterstützt haben. Besonders bedanken möchte ich mich bei Falk Rehwagen für seine Hilfe bei der Lösung von Problemen in der Programmierung und bei der Korrektur der Anleitung. Weiterhin gilt mein Dank Denis Döhler, der mir freundlicherweise seine BBGRam zur Verfügung stellte. Im Gegensatz zu einer normalen geoRAM läßt es sich komfortabler arbeiten. Der letzte Dank gilt meinen Eltern, die die durch das Programmieren erhöhte Stromrechnung bezahlen.

Ich wünsche Ihnen viel Spaß mit dem Programm und hoffe die vorliegende Anleitung kann Ihnen den DB_Editor genau erklären.

Ich verbleibe bis auf weiteres.

1. Kurze Vorstellung

Welcher GEOS-Programmierer kennt sie nicht, die kaum zu überblickenden Tabellen einer Dialogbox. Kaum einer kann sich vorstellen, ob die gerade hinzugekommene Fileauswahlbox sich an der richtigen Stelle befindet, oder ob bei der aktuellen Fenstergröße überhaupt ein System-Icon eingesetzt werden kann. Um dieses Manko zu beseitigen, wurde der objektorientierte Dialogbox_Editor geschrieben. Mit dessen Hilfe ist es möglich, durch einfaches Editieren der Objekte (Icons, Texte usw.) eine Dialogbox zu gestalten und diese dann im MegaAssembler-Format als Quelltext abzuspeichern. Somit ist es möglich, die Tabelle in seinen eigenen Quelltext zu übernehmen. Der Editor verwendet den gleichen Aufbau der Tabelle, wie es der MegaAssembler vorsieht.

An dieser Stelle folgt eine kurze Erläuterung der entsprechenden GEOS-Routine (DoDlgBox $C256). Ihr muß in r0 (Register 0) ein Zeiger auf die Daten-Tabelle übergeben werden. Die Datentabelle hat folgenden Aufbau:

Die Kommando-Codes werden zu einer Befehlsfolge zusammengefaßt, die mit $00 abschließt. Vor den eigentlichen Kommandos stehen die Informationen zur Größe und Position, sowie zum Rahmen der Dialogbox. Für diese Informationen gibt es zwei Möglichkeiten:

1. Man verwendet eine vordefinierte Dialogbox, wie beispielsweise im DeskTop-Menü <geos>, Menüpunkt <info>.

Um vom vordefinierten Fenster Gebrauch zu machen, ist Bit 7 im ersten Byte der Befehlsfolge zu setzen. Die Bits 0-4 entscheiden noch über das Schattenmuster. Mit diesen 5 Bits können leider nur die ersten 32 Muster ($00 - $1f) erreicht werden.

Unmittelbar nach dem ersten Byte steht dann das erste Kommandobyte. Im MegaAssembler-Format sieht das dann wie folgt aus:

:Tabelle b $81 ; System-Box mit schwarzem Schatten

; Muster $01

b OK,$11,72 ; 1. Kommandobyte (OK-Icon)

b NULL ; Abschluß ($00)

2. Man verwendet eine eigene Box. Dazu muß Bit 7 im ersten Byte mit 0 belegt werden. Jetzt entscheiden die folgenden 6 Bytes über die Position und die Größe der Box. Die Bytes haben folgende Bedeutung:

Byte #1 obere Grenze

Byte #2 untere Grenze

Byte #3/4 linke Grenze

Byte #5/6 rechte Grenze

Auch hier kann wieder ein Schattenmuster gewählt werden. Dies ist analog zum ersten Fall. Lesen Sie gegebenenfalls bei Punkt 1 nach.

Die entsprechende Tabelle hätte dann z.B. folgenden Aufbau:

:Tabelle b 1 ; schwarzer Schatten, keine System-Box

b 30

b 100

w 20 ; von Position 20, 10 bis 200, 100

w 200

b OK,16,72

.

b NULL

Jetzt folgen auch hier die Kommando-Bytes. Deren genaue Verwendung lesen Sie im Buch zum MegaAssembler nach.

Auf ein Problem muß an dieser Stelle noch hingewiesen werden. Der Editor erstellt nur Dialogboxen für GEOS 64 bzw. GEOS 128 (hier aber nur im 40 Zeichen Modus). Somit läuft das Programm unter GEOS 128 auch nur im 40 Zeichen Modus. Eine Anpassung für den 80 Zeichen Modus ist vorgesehen, das Datum der Verwirklichung steht aber noch in den Sternen.

2. Allgemeine Hinweise zur Bedienung

Das Programm wird unter GEOS wie jede andere Applikation bzw. durch Doppelklick auf ein Dokument gestartet. Wie vorher schon erwähnt, läuft es unter allen GEOS Versionen. Beim C128 ist zu beachten, daß nur der 40 Zeichen Modus unterstützt wird. Nach dem Start erscheint der Eröffnungsbildschirm mit Copyrightmeldung und einer Auswahlbox. Hier kann man wählen, ob man eine neue Dialogbox erstellen will, ob man eine schon bestehende weiter editieren möchte oder zum DeskTop verlassen will. Entsprechend der Wahl erscheinen weitere Dialogboxen. Entweder wird man aufgefordert den Namen für das neue Dokument anzugeben, oder ein bestehendes Dokument aus einer Liste der auf der aktuellen Disk enthaltenen auswählen. Vorausgesetzt es ist kein Diskettenfehler aufgetreten, befindet man sich jetzt im Hauptbildschirm des Dialogbox_Editors. In der oberen linken Ecke ist das Hauptmenü zu erkennen. Daneben befindet sich eine Kommentarbox. In der Bildmitte befindet sich je nach Anfangsauswahl eine leere Box oder die aktuell geöffnete Box. Das Hauptmenü entählt 3 Menüpunkte. Deren nähere Erklärung finden Sie im nächsten Abschnitt der Anleitung.

3. Funktionsübersicht

Dieser Teil der Anleitung soll Sie mit den einzelnen Funktionen des Editors vertraut machen. Jede dieser Funktionen wird ausführlich vorgestellt, eventuelle Bedienungsfehler werden erklärt. Ich hoffe, eine übersichtliche Form der Aufstellung gefunden zu haben. Sollte es dennoch Fragen geben, so wenden Sie sich an die oben genannte Adresse.

3.1 Das geos-Menü

Nach anklicken des Menüpunktes geos baut sich ein Untermenü auf. Der erste Punkt verzweigt zur Info-Box des Programms (Copyrightmeldung). Jetzt folgen bis zu 8 weitere Menüpunkte, wo die auf der aktuellen Diskette enthaltenen Hilfsprogramme aufgelistet sind. Klicken Sie einen Namen an, so wird das entsprechende Programm geladen und gestartet. Nach Beendigung kehrt man zum Editor ohne Datenverlust zurück.

3.2 Das Datei-Menü

Hier baut sich ebenfalls nach Klick ein Untermenü auf. Man findet hier die entsprechenden Dateifunktionen. Angelehnt an andere Applikationen sind das:

1. Datei schließen

2. Datei aktualisieren

3. Datei Übersicht

4. Datei wiederherstellen

5. Datei speichern als geoWrite-Dokument

6. Datei Ende

3.2.1 Datei schließen

Das aktuelle Dokument wird abgespeichert. Tritt dabei ein Diskettenfehler auf, erscheint eine entsprechende Meldung und nach Klick auf OK kehrt das Programm zum DeskTop zurück. Ist das nicht der Fall, erscheint der Eröffnungsbildschirm, wo man erneut eine der drei Optionen wählen kann. Lesen Sie gegebenenfalls den Abschnitt 2 der Anleitung nochmals durch.

3.2.2 Datei aktualisieren

Hier wird das aktuelle Dokument nur gespeichert. Tritt kein Diskettenfehler auf, kann man sofort weiter editieren. Diese Funktion sollte man öfters ausführen, da bekanntlich durch viele Programme ein Absturz des Systems hervorgerufen wird, was zu einem Verlust der Daten führen kann. Mir ist beim Testen des Programms so etwas nicht passiert, doch Vorsicht ist die Mutter der Porzellankiste.

3.2.3 Datei Übersicht

Es erscheint eine Dialogbox, in der die Anzahl der verwendeten Steuerzeichen (Kommando-Bytes) aufgelistet wird. Außerdem ist ein Hinweis auf die maximal erlaubte Anzahl dieser Steuerzeichen gegeben. Nach Klick auf OK kehrt man zum Editor zurück.

3.2.4 Datei wiederherstellen

Hier werden die aktuellen Änderungen seit dem letzten Speichen zurückgesetzt, in dem die letzte Version erneut geladen wird. Bei einem Diskettenfehler kehrt auch hier der Editor nach einer Meldung zum DeskTop zurück.

3.2.5 Datei speichern als MegaAssembler-Quelltext

Diese Funktion ist nur in der Vollversion des DB_Editors enthalten.

3.2.6 Datei Ende

Mit diesem Menüpunkt wird die aktuelle Dialogbox abgespeichert und man kehrt zum DeskTop zurck.

3.2.7 Zusammenfassung

Zusammenfassend kann man sagen, daß die einzelnen Funktionen des Datei-Menüs denen anderer Applikationen (z.B. geoWrite) ähneln. Sollte es dennoch Probleme oder Fragen geben, lesen Sie nochmals in Ihrer Anleitung zum GEOS-System nach. Dort sind die Menüs der einzelnen Anwendungen genau erläutert. Eventuell auftretende Fragen beantworte ich auch. Schreiben Sie dazu an obige Adresse.

3.3 Das Menü Editieren

Das sich hier aufbauende Untermenü stellt die gesamten Editorfunktionen dar. Über die einzelnen Punkte können fast alle Kommando-Bytes in die Datentabelle eingefügt werden. Warum nicht alle, werden sich jetzt einige fragen. Das einzige, nicht implementierte Kommando-Byte, ist das für das Hinzufgen eines selbstdefinierten Icons. Ich hatte die Absicht, eigens für das Entwerfen solcher Icons einen separaten Editor zu programmieren und den DB_Editor um diese Funktion zu erweitern. Ich hoffe, die Zeit reicht nochmal dafür. Wer dennoch ein eigenes Icon verwenden möchte, kann dies trotzdem. Er muß sich nur an die alte Methode halten: Icon mit geoPaint oder einem ähnlichen Zeichenprogramm entwerfen, ausschneiden und mit den entsprechenden Steuerzeichen in den vom Editor erzeugten Quelltext einfügen.

Ich stelle im folgenden die einzelnen Funktionen vor.

3.3.1 Schatten ändern

Nach Abbau des Untermenüs ist eine Dialogbox zu sehen, in der neben dem OK- bzw. Abbruch-Icon, zwei Pfeil-Icons und ein Fenster mit dem aktuellen Schattenmuster zu sehen sind. Über die Pfeile kann das Muster gewählt werden. Nach Klick auf OK verändert sich der Schatten der aktuellen Box entsprechend der Wahl. Abbruch hat keine Wirkung auf den aktuellen Schatten.

3.3.2 Text einfügen

Hier erscheint ebenfalls eine Dialogbox. Im oberen Bereich ist der Text einzugeben (max. 30 Zeichen). Der untere Bereich dient zur Stilwahl. Voreingestellt ist normal (PLAINTEXT). Durch Klick auf eines der Kästchen wird der Stil an- bzw ausgeschaltet. Ein ausgefülltes Kästchen bedeutet, daß dieser Schriftstil gewählt wurde.

Über das Abbruch-Icon verläßt man die Box. Zu beachten ist noch, daß vor dem Drücken von RETURN der Stil gewählt sein muß. Jetzt ist nur noch die Position des Textes notwendig. Dazu erscheint nach Druck auf RETURN im Kommentarfenster eine Aufforderung zur Festlegung der Textposition. Die Größe des Textes wird dabei durch den am Mauszeiger angehefteten Rahmen gekennzeichnet. Das Programm achtet weiterhin darauf, daß der Fensterbereich nicht überschritten wird. Dazu läßt sich der Rahmen nur bis an die Fenstergrenzen bewegen. Die aktuelle Position wird ebenfalls im Kommentarfenster angezeigt. Nach einem Klick auf die Maus- bzw Feuertaste erscheint der intern in der Tabelle abgespeicherte Text an der gewählten Position.

3.3.3 Variablen Text einfügen

Variabler Text heißt in diesem Zusammenhang, es soll ein Text ausgegeben werden, dessen Inhalt z.B. unbekannt, seine Anfangsadresse jedoch bekannt ist. Das soll an einem Beispiel erläutert werden. Angenommen man hat ein Programm geschrieben, in dem an einer bestimmten Stelle ein Text (z.B. Name des Benutzers) eingegeben wurde. Zu einem späteren Zeitpunkt soll dieser Text ausgegeben werden. Da aber nicht bekannt ist, welchen Text der Nutzer des Programms eingibt, wird dieser an einer bestimmten Stelle im Speicher abgelegt. Bezeichnen wir den Anfang dieses Bereichs mit TextSpeicher. Der später folgenden Box übergeben wir diesen Wert als Textanfangsadresse. Da die entsprechende Routine aber nicht jede Speicheradresse verwalten kann, sondern nur Adressen der sogenannten Zeropage (r0L - r15H), muß eines der Register vor Aufruf der Routine DoDlgBox (Erzeuge eine Dialogbox) mit der Textanfangsadresse geladen werden. Die Datentabelle enthält dann das entsprechende Steuerzeichen (DBVARSTR = $0c), die Position des Textes und das Register, das die Anfangsadresse enthält. Der entsprechende Quelltextabschnitt könnte dann etwa so aussehen.

:ZeichneBox LoadW a0,TextSpeicher

LoadW r0,Datentabelle

jsr DoDlgBox

rts

:Datentabelle b $81

b DBVARSTR,10,10,a0 ; Position 10,10 innerhalb der Box

; Anfangsadresse in Register a0

; weitere Steuerzeichen

b NULL

:TextSpeicher s 16 ; 16 Bytes für Text vorbehalten

Für den Editor sind also die Position und die Zeropageadresse wichtig. Die Position wird ähnlich der eines normalen Textes übergeben. Der Balkencursor zeigt dabei den Beginn des Textes an. Nach Klick erscheint eine Box, in der mittels 3 Zeichen die Zeropageadrese anzugeben ist. Ein Klick auf Abbruch verhindert das Hinzufügen des Kommando-Bytes.

3.3.4 Editierbaren Text einfügen

Diese Funktion ähnelt der zuletzt beschriebenen. Nur kann der ausgegebene Text noch editiert werden. Es ist jedoch wichtig, wieviele Zeichen maximal eingegeben werden dürfen. Ich habe diesen Wert auf 20 festgelegt. Sollte jemand einen anderen Wert benötigen, kann er diesen im erstellten Quelltext noch ändern. Wie bei dem vorhergehenden Steuerzeichen benötigt man die Position und die Zeropageadresse. Der Vorgang der Dateneingabe läuft gleich ab. Lesen Sie gegebenenfalls die vorhergehenden Abschnitte nochmals durch.

3.3.5 Box auf Klick verlassen

Diese Funktion ermöglicht es, die Dialogbox durch einen Klick auf den Maus- bzw. Feuerknopf des Eingabegerätes zu schließen. Da dieses Steuerzeichen nur einmal pro Box verwendet werden kann, wird nach dem Benutzen der Menütext kursiv ausgegeben. Die Funktion kann also nicht mehr benutzt werden.

3.3.6 Routine auf Klick anspringen

Hier wird nach einem Klick die Box nicht abgebaut, sondern es wird eine Routine angesprungen. Dem Editor muß also der Name der Routine übergeben werden. Das geschieht in einer entsprechenden Box. Mit Abbruch wird diese Funktion verlassen. Der Menütext wird ebenfalls kursiv dargestellt.

3.3.7 Filebox einfügen

Bei dieser Funktion wird in die Datentabelle das Steuerzeichen für eine Fileauswahlbox eingefügt. Für den Editor ist deren Position wichtig. Dazu wird an den Mauszeiger ein Rechteck angeheftet, das der Größe der Filebox entspricht. Die aktuelle Position können Sie im Kommentarfenster verfolgen. Die Angaben beziehen sich nicht auf die Bildschirmposition, sondern auf die Position innerhalb der Box. Nach Klick wird das Steuerzeichen in der Datentabelle ergänzt, der Menütext kursiv gesetzt. Wie eingeweihte Programmierer wissen, benötigt die GEOS-Routine aber noch weitere Angaben (z.B. Filetyp). Diese müssen später im Programm von Hand gesetzt werden. Eine entsprechende Mitteilung ist nochmals im Quelltext zu lesen.

3.3.8 Graphik-String einfügen

Hier wird während des Aufbaus der Dialogbox ein Graphik-String ausgeführt (eine Folge von Graphiksteuerzeichen). Dem Editor muß dazu der Labelname übergeben werden. In der entsprechenden Box kann mittels Abbruch die Funktion wieder verlassen werden. Da in einer Datentabelle mehrere solcher Befehlsfolgen auftreten können, wir der Menütext nicht kursiv dargestellt, d.h. die Funktion ist auch weiterhin zu verwenden.

3.3.9 Routine einfügen

Schon wieder eine Funktion zum Einfügen einer Routine, werden sich jetzt einige fragen. Doch da gibt es einen Unterschied zu oben beschriebener Funktion. Welcher ist das ? Hier wird während des Aufbaus eine Routine angesprungen (z.B. Ausgabe einer Hex-Zahl nach einem Text).

Für den Editor ist der Name der Routine wichtig. Dieser ist nach einer Aufforderung einzugeben. Sie sollten bei der Vergabe der Namen darauf achten, daß Sie bei einem größeren Programm leicht den Überblick verlieren. Entscheiden Sie sich daher für Routinennamen, die auch nach späterem Betrachten gleich auf den Zweck dieser Routine verweisen.

Ein Klick auf Abbruch bricht diese Funktion ab.

3.3.10 Icon einfügen

Nach Klick auf diesen Menüpunkt baut sich ein weiteres Untermenü mit den von GEOS verwendeten Icons auf. Hat man seine Wahl getroffen, muß die Position des Icons festgelegt werden. Da Icons waagerecht nur in 8-Punkt-Schritten angezeigt werden können, wundern Sie sich nicht, wenn nach Klick das Icon noch etwas nach rechts bzw. links rutscht. Der Editor wechselt zu dem am nahesten gelegenen Vielfachen von 8.

3.3.11 Größe ändern

Hier kann die Größe (im gewissen Sinne auch die Position) der Dialogbox geändert werden. Dazu werden Sie gefragt, ob die Systembox verwendet werden soll. Was die Systembox ist, haben Sie im ersten Abschnitt der Anleitung erfahren. Beantworten Sie die Frage gemäß ihren Vorstellungen mit Ja bzw. Nein. Bei Klick auf Ja wird sofort die Box neugezeichnet. Sonst muß man die linke obere und die rechte untere Ecke setzen. Die Koordinaten sind im Kommentarfenster abzulesen.

Wenn Sie diesen Vorgang aufmerksam beobachtet haben und vielleicht schon eine Fileauswahlbox eingeklebt hatten, werden Sie festgestellt haben, daß die nicht die Bildschrimkoordinaten der Objekte abgespeichert werden, sondern deren Position innerhalb der Box. So ist es z.B. möglich, die Filebox 10 Punkte vom linken Rand einzukleben und die Box dann vergrößern. Die Filebox ist immernoch 10 Punkte vom linken Rand entfernt.

3.3.12 Zurücksetzen

Mit dieser Funktion werden sämtliche Steuerzeichen aus der Datentabelle gelöscht und die Box auf Normal- (System-) größe gebracht. Somit sind alle Daten unwiderruflich verloren. Sie werden vorher jedoch noch gewarnt.

3.3.13 Zusammenfassung

Das waren die einzelnen Funktionen des DB_Editors in der Version 1.2 . Ich hoffe, daß es damit leicht ist, eine Dialogbox nach seinen eigenen Vorstellung zu gestalten. Sollte jedoch jemand einen Vorschlag zur Verbesserung haben, schreiben Sie an obige Adresse. Eine Rückanwort ist Ihnen sicher.

4. Objekte

Hier möchte ich auf den objektorientierten Ansatz des DB_Editors eingehen. Es ist nämlich nicht nur schön eine Fileauswahlbox komfortabel einzukleben, sondern, wenn nötig, auch deren Position wieder ändern zu können. Diese Möglichkeit der Objektbewegung bietet der DB_Editor. Klicken Sie einfach ein Objekt (Text, Icon und Filebox) an und bewegen es zu seinem neuen Platz. Dabei verhält sich der Editor fast wie beim Hinzufügen eines neuen Objektes. Sie können ebenfalls die gesamte Box verschieben. Klicken Sie dazu innerhalb der Box, aber nicht auf bzw. in einem Objekt. Dann kann man die Box verschieben. Dazu wird an den Mauszeiger ein Viereck in der Größe der Box geheftet. Nach erneutem Klicken wird die aktuelle Mausposition als neue Posisiton der Dialogbox verwendet. Die Größe bleibt dabei unberücksichtigt. Möchten Sie die Systembox verwenden, d.h. an der vordefinierten Stellen, wählen Sie einfach Editieren --> Größe ändern. Hier klicken Sie auf Ja.

5. Vorschau

Wie schon mehrmals im Text erwähnt, soll der Editor nochmals überarbeitet und durch neuen Funktionen ergänzt werden. Dabei ist folgendes geplant:

- Anpassung an den 80 Zeichen-Modus des C128

- Wahl der Textversion des Quelltextes und deren Erzeugung

- Möglichkeit des Löschens eines Objektes (Umgestalten des Datenspeicherkonzeptes)

- Schnellere Routinen zur Bildschirmausgabe

- eigenes Programm zum Editieren benutzerdefinierter Icons

- Möglichkeit des Einbindens des Lfw.-Icons und damit Erzeugung der entsprechenden

Routinen (Icon nur bei mind. 2 Laufwerken) im Quelltext.

Die ersten drei Punkte sollen dabei vorrangig bearbeitet werden. Wobei das nicht heißen soll, daß die anderen Punkte vernachlässigt werden dürfen. Ich hoffe, alle diese neuen Funktionen in einer Version zu implementieren. Wer noch mehr Vorschläge hat, kann an mich schreiben.

Mit der Veröffentlichung einer neuen Version kann es aber noch eine Weile dauern. Ich befinde mich gerade im Uni-Streß. Außerdem arbeiten wir, d.h. die GEOS User aus Sachsen, an einem neuen großen Projekt.

6. Die Beispiele

Auf der Diskette The Best Of... Vol.2 befinden sich einige Beispiele, die den Anwendern als Hilfe bzw. auch als Anregung dienen sollen. Auf die Quelltexte wurde verzichtet, weil sonst kein Platz für andere Programme