2. Der Editor Inhalt | 4. Grundlagen

Kapitel 3
Die Menüs des Editors

Omikron Basic 6 stellt sieben Menüs zur Verfügung, die nachfolgend im einzelnen besprochen werden. 

Das Apple Menü
Datei-Menü
Bearbeiten-Menü
Suchen-Menü
Cursor-Menü
Modus-Menü
Editoreinstellungen
Programm-Menü



APPLE-Menü 

Copyright
Wie bei allen Programmen auf dem Mac üblich, ist von hier aus die Copyright-Box des Editors erreichbar. Außerdem können von hier aus alle Accessories aufgerufen werden..

Der Copyright-Dialog enthält neben der Information über das Copyright die Daten Ihrer Registrierung für das Programm, sowie die aktuelle Versionsnummer und das Versionsdatum des Omikron Basics.

 

 
 

 
Datei-Menü

Dieses Menü enthält alles, was mit dem Laden und Speichern von Dateien zu tun hat. Außerdem befindet sich hier die Möglichkeit, Programmtexte auszudrucken und die Arbeit mit dem Editor zu beenden.

Die Menüpunkte im einzelnen:

Neu ...
Öffnen ...
ASCII öffnen ...
Neue Ansicht
Verdoppeln
Schließen
Alles schließen
Fenster tauschen
Speichern
Speichern als ...
ASCII speichern ...
Drucker einstellen ...
Drucken ...
Beenden


Neu ...

Dialogbox: Neues Programm
Um mit der Programmierung eines Programms völlig neu zu beginnen, muß dieser Dialog aufgerufen werden. Es öffnet sich ein Dialogfenster, in welchem dem neuen Programm zunächst ein Name gegeben werden sollte.

Programmname:
An dieser Stelle können Sie Ihrem Programm gleich einen neuen Namen geben. Wird der vorgegebene Name 'NO_NAME.BAS' übernommen, so fragt der Editor beim ersten Speichern des Programms nach, unter welchem Namen das Programm gespeichert werden soll. Als Pfad wird zunächst automatisch der eingestellte Arbeitspfad gewählt.

Reservierter Speicher:
Der voreingestellte Wert von 65536 Byte braucht im allgemeinen nicht verändert zu werden. Die Einstellung dient dazu, festzulegen, wieviel Speicher zunächst für das Programm reserviert werden soll. Bei insgesamt knappem RAM sollte sie eventuell verringert werden. Daß sie vergrößert werden muß ist eher unwahrscheinlich, da wohl kaum jemand mehr als 65536 Byte in einem Stück programmieren wird.

Ausnahme: Wenn eine Library oder ein größerer Block hinzugeladen werden sollen, so muß natürlich dafür gesorgt werden, daß auch entsprechend viel Speicher vorher reserviert wird.

Falls sich beim Programmieren abzeichnet, daß der eingestellte Wert doch überschritten wird, so ist dies auch kein Problem: Einfach das Programm speichern, das Fenster schließen und anschließend das Programm neu laden. Dadurch werden erneut 65536 Bytes reserviert.

Zeilennummern:
Hier wird eingestellt, ob der Editor vor der Eingabe jeder Zeile eine Zeilennummer erwartet. Es wird empfohlen, diese Option ausgeschaltet zu lassen, weil es sich im allgemeinen ohne Zeilennummern besser arbeiten läßt. Diese Einstellung kann aber auch später noch im Modus-Menü mit 'Zeilennummern anzeigen' geändert werden.

Standardvariablentyp:
Der untere Teil des Dialogs enthält fünf Textfelder, die mit DEFSTR, DEFDBL, DEFSNG, DEFINTL und DEFINT beschriftet sind.
Mit Hilfe dieser Eingabezeilen kann bestimmt werden, welche Variablen der Editor ohne Postfix darstellt. Im Interesse einer übersichtlichen Programmdarstellung sollte in der Regel nur in eines dieser Felder "A-Z,_,*-ÿ" (damit werden alle Buchstaben, der Unterstrich und alle Zeichen von 128 bis 255 dem Variablentyp zugeordnet) eingetragen werden. Standardmässig stellt der Editor Long-Integer-Variablen ohne Postfix dar. Man kann natürlich auch festlegen, daß z.B. alle Variablen, die mit "S" anfangen, als Strings interpretiert werden, alle mit "D" als doppelt genaue Fließkommazahlen, alle mit "L" als Long-Integer und so weiter.

 

Öffnen ...
Wie nicht anders zu erwarten, kann mit Hilfe dieser Dateiauswahlbox ein BASIC-Programm geladen werden. Da der Editor mehrere Programme parallel bearbeiten kann, wird für den neuen Programmtext ein neues Fenster geöffnet.
Voreingestellt ist in der Dateiauswahlbox beim ersten Aufruf der eingestellte Arbeitspfad. Ab dem zweiten Aufruf wird der zuletzt ausgewählte Pfad voreingestellt.

Eine Datei kann auch geöffnet werden, indem das Datei-Icon auf das Omikron Basic Programm-Icon gezogen wird oder mit einem Doppelklick auf das Datei-Icon..

Hinweis: Programme, die mit einer Version älter als 3.0 erstellt wurden, können vom Editor nicht geladen werden.

 

ASCII öffnen ...
Ein als ASCII-Text gespeichertes Programm kann hier in den Editor geladen werden. Es erscheint zunächst eine Dateiauswahlbox, in welcher der zu ladende Programmtext ausgewählt werden kann. Wenn diese verlassen wird, dann erscheint anschließend der Dialog 'Neues Programm'. Nach der Bearbeitung dieses Dialoges wird der ASCII-Text geladen und in BASIC-Code umgesetzt. Bei langen Programmen kann dies etwas dauern, da der ganze Quelltext tokenisiert werden muß. Der geladene Text erscheint in einem neuen Fenster.

Hinweis: Es ist zu empfehlen, vor dem Laden von ASCII-Texten die Deklarationsüberwachung im Dialog Editoreinstellungen im Modus-Menü abzuschalten, da man sonst ständig auf nicht deklarierte Symbole hingewiesen wird.


Neue Ansicht (s.a. Verdoppeln)
Zu dem im obersten Fenster befindlichen Programm wird ein weiteres Fenster geöffnet. Dementsprechend ist dieser Menüpunkt nur anwählbar, wenn das oberste Fenster ein Programmfenster ist. Im Gegensatz zu 'Verdoppeln' wird aber keine Kopie des Programms im RAM erstellt, sondern beide Fenster enthalten weiterhin dasselbe Programm. Veränderungen in einem Fenster werden im anderen auch sofort dargestellt. Mit Hilfe dieses Menüpunktes kann also an mehreren Stellen zugleich in einem Programm gearbeitet werden, denn es lassen sich auch mehr als zwei Fenster für ein Programm öffnen.


Verdoppeln (s.a. Neue Ansicht)
Dieser Menüpunkt ist nur anwählbar, wenn das oberste Fenster ein Programm-Fenster ist. Von dem Programm wird im RAM eine Kopie angelegt und diese Kopie in einem neu geöffneten Fenster angezeigt. Die beiden Fenster (und damit die darin enthaltenen Programmtexte) sind danach unabhängig voneinander. Änderungen in dem einen Fenster haben also keine Auswirkung in dem anderen. Sie können nur daran unterschieden werden, daß in der Titelzeile ein ".Kopie" an den Dateinamen angehängt wird. Da beide Fenster aber noch denselben Dateinamen benutzen, sollte im allgemeinen die Kopie zunächst mit 'Speichern als ...' mit einem neuen Namen versehen werden. So lassen sich eventuelle Datenverluste verhindern.


Schließen
Das oberste Fenster kann mit diesem Menüpunkt geschlossen werden, wenn es sich dabei nicht um ein Dialog-Fenster handelt. Ist das oberste Fenster ein Programm-Fenster, in dem seit dem letzten Speichern noch etwas verändert wurde, so erfolgt zunächst noch eine Sicherheits-Rückfrage.


Alles schließen (s.a. Schließen)
Hier werden alle Fenster geschlossen (siehe Schließen). Anwählbar ist der Menüpunkt allerdings nur, wenn das oberste Fenster kein Dialog-Fenster ist.


Fenster tauschen
Anklicken dieses Menüpunktes befördert das unterste zum Editor gehörende Fenster nach oben.


Speichern (s.a. Speichern als ...)
Wenn das oberste Fenster ein Programm-Fenster ist, kann dieser Menüpunkt ausgewählt werden. Das Programm wird unter dem Namen und in dem Pfad gespeichert, die im Fenstertitel angegeben sind. Wenn der Programm-Name 'NO_NAME.BAS' ist, dann wird das Anklicken des Menüpunktes automatisch in 'Speichern als ...' umgewandelt.


Speichern als ... (s.a Speichern)
Wenn das oberste Fenster ein Programm-Fenster ist, dann kann das Programm mit Hilfe der erscheinenden Dateiauswahlbox unter einem neuen Namen oder Pfad gespeichert werden.

Dateiauswahl: Such-Datei speichern:
Wenn das oberste Fenster ein Such-Fenster ist, dann kann der Inhalt als Datei gespeichert werden. Sie kann mit 'Öffnen...' jederzeit wieder in den Editor geladen werden.

Dateiauswahl: Compiler-Meldungen speichern:
Wenn das oberste Fenster ein Fenster mit Compiler-Meldungen ist, so kann der Inhalt als Datei gespeichert werden. Sie kann vom Editor später mit 'Öffnen ...' auch wieder geladen werden.

Dateiauswahl: Shortcuts speichern
Wenn das oberste Fenster das Fenster mit den Shortcuts des Editors ist, so kann die NEWOMBAS.INF (in der die Shortcuts gesichert werden) gespeichert werden.


ASCII speichern ...
Der Inhalt eines Programm-Fensters kann auch als ASCII-Text gespeichert werden. Dies geschieht hier. Dabei wird die Einstellung 'Neues ASCII-Format' (im Modus-Menü/Editoreinstellungen ...) berücksichtigt.

Achtung: Vor dem Speichern als ASCII-Text müssen unbedingt alle eingeklappten Bereiche ausgeklappt werden, da sonst nur die sichtbaren Titelzeilen gespeichert werden.


Drucker einstellen ...
Es öffnet sich die PrStlDialog-Box des Druckertreibers. Darin können Sie je nach Treiber diverse Einstellungen vornehmen.
Beim Verlassen der Box wird aber noch nichts gedruckt.

Hinweis: Der Omikron Basic Editor benutzt zum Drucken den gleichen Font und die gleichen Fontattribute, die für die Ausgabe auf den Bildschirm eingestellt wurden. Das kann dazu führen, daß die ausgedruckte Schrift zu groß erscheint. Wenn Sie z.B. die Standardeinstellung von 14 Punkten Monaco bold verwenden, empfiehlt es sich, in dieser Dialogbox eine Verkleinerung von 70% einzustellen, um ein gut lesbares Druckergebnis zu erhalten. Alternativ kann man auch in der Dialogbox Modus/Editoreinstellungen eine kleinere Schrift (z.B. 10 oder 12 Punkte) wählen.


Drucken ... (s.a. Menü Bearbeiten/Block drucken ...)
Der Inhalt des obersten Fensters (bzw. ein darin definierter Block) kann auf den Drucker ausgegeben werden. Bei Aufruf eines der beiden Menüpunkte erscheint zunächst die PrJobDialog-Box des Druckertreibers. Darin können Sie je nach Treiber diverse Einstellungen vornehmen. Nach dem Verlassen wird noch ein Dialog des Editors angezeigt, in dem folgendes eingestellt werden kann:

Dialogbox: Drucken

X-Offset:
Hier wird der linke Rand eingestellt, den Omikron Basic auf dem Papier läßt.

Y-Offset:
So viele Zeilen läßt Omikron Basic auf jedem Blatt oben frei.

Druckbreite:
Hier wird die Anzahl der Zeichen eingestellt, die Omikron Basic maximal in eine Zeile druckt. Wenn die angegebene Zahl nicht auf die eingestellte Papiergröße paßt, wird die Zahl auf den maximal möglichen Wert reduziert, so daß keine Zeichen verloren gehen.

Drucklänge:
So viele Zeilen druckt Omikron Basic auf eine Seite. Wenn mehr Zeilen angegeben sind, als auf die eingestellte Papiergröße passen, wird die Zahl auf den maximal möglichen Wert reduziert, so daß keine Zeilen verloren gehen.

ASCII 0-31 -> 32:
Die ASCII-Zeichen 0-31 enthalten zum Teil Steuerzeichen für den Drucker. Zum Teil sind sie auch gar nicht vernünftig druckbar. Um unerwünschte Druckeffekte zu verhindern, kann der Editor hier angewiesen werden, alle ASCII-Zeichen unter 32 durch Leerzeichen zu ersetzen.

Seitenzahlen:
Wenn diese Option eingeschaltet ist, werden Programmlistings und andere Ausdrucke mit Seitenzahlen versehen. Die Nummer steht immer in der Mitte am unteren Ende des Blattes. Wenn Sie z.B. längere Listings ausdrucken, hilft diese Funktion, die einzelnen Blätter in der richtigen Reihenfolge abzuheften.

Wenn Sie einen Farbdrucker verwenden, werden die Programmlistings auch in Farbe ausgedruckt, sofern Die 'Farbige Darstellung' eingeschaltet ist. Um einen monochromen Ausdruck zu erhalten, schalten Sie am besten Ihren Drucker auf Schwarzweiß. Farbige Blockmarkierungen werden übrigens nicht gedruckt, um einen zu hohen Tinten- bzw. Tonerverbrauch zu vermeiden.
Da Omikron Basic bis zu 255 Zeichen pro Zeile erlaubt, auf ein DIN A4 Blatt aber im allgemeinen kaum mehr als 80 Zeichen nebeneinander passen, werden längere Zeilen beim Ausdrucken umgebrochen. Dabei erfolgt die Auftrennung der Zeilen nach Möglichkeit zwischen Wörtern oder Tokens, so daß der Text gut lesbar bleibt. Die neue Zeile wird auf die gleiche Höhe eingerückt wie die alte, wodurch Ihre Programmstrukturen deutlich sichtbar bleiben.


Beenden
Wenn ein Programmtext verändert, aber noch nicht gespeichert wurde, erscheint zunächst eine Sicherheits-Rückfrage. Das betreffende Fenster wird zuvor nach vorne geholt, so daß deutlich wird, welches Programm gemeint ist.
Falls dies auf mehrere Programmtexte zutrifft, so erscheint die Rückfrage mehrfach. Wenn Zweifel bestehen, sollte man zunächst 'Abbruch' wählen und dann alle wichtigen Daten "zu Fuß" sichern.

 

Bearbeiten-Menü

In diesem Menü befindet sich alles, was mit der Bearbeitung des Programmtextes zu tun hat.
Zur Erläuterung hier eine kurze allgemeine Erklärung:

1. Grundsätzlich beziehen sich alle Funktionen dieses Menüs nur auf Programm-Fenster. Für Such- und Compiler-Fenster sind sie nicht verfügbar.
2. Bei allen Menüpunkten dieses Menüs ist immer der Block in dem obersten Fenster gemeint.

Ausnahmen: Bei 'Block kopieren' wird der Block aus dem zweitobersten Programm-Fenster in das oberste Programm-Fenster kopiert. Und bei 'Block zuladen' wird der Block von Diskette/Festplatte in das oberste Programm-Fenster an der aktuellen Cursor-Position eingefügt.

Falls Unklarheiten über die genaue Funktionsweise eines Block-Befehls bestehen, sollte vor dem Ausführen der Aktion mit 'Verdoppeln' ein neues Fenster geöffnet werden, mit dem die Operation ausgeführt wird. So lassen sich ärgerliche Datenverluste vermeiden.

Das Bearbeiten-Menü enthält folgende Menü-Punkte:

Undo Zeile
Ausschneiden
Kopieren
Einsetzen
Löschen
Alles Selektieren
Tokencode einsetzen
Tokencode verschieben
Block kopieren
Blockanfang setzen
Blockende setzen
Block verstecken
Block zuladen ...
Block speichern ...
MEMORY BLOCK laden ...
LIBRARY zuladen ...
Block drucken ...
Neu numerieren ...


Undo Zeile
Alle Änderungen in der Zeile, in der sich der Cursor befindet, werden rückgängig gemacht.


Ausschneiden
Der markierte Bereich wird aus dem Programm entfernt und als ASCII-Text in das Clipboard geschrieben. Dabei wird die Einstellung 'Neues ASCII-Format' im Dialog 'Editoreinstellungen' berücksichtigt.

Achtung: Der zu kopierende Block darf keine eingeklappten Bereiche enthalten , da sonst nur die Titelzeilen in das Clipboard geschrieben würden. Diese müssen also vorher ausgeklappt werden.


Kopieren
Der markierte Bereich wird kopiert und als ASCII-Text in das Clipboard geschrieben. Dabei wird die Einstellung 'Neues ASCII-Format' im Dialog 'Editoreinstellungen' berücksichtigt.

Achtung: Der zu kopierende Block darf keine eingeklappten Bereiche enthalten , da sonst nur die Titelzeilen kopiert würden. Diese müssen also vorher ausgeklappt werden.


Einsetzen
Der ASCII-Text, der sich gerade im Clipboard befindet, wird an der Cursor-Position eingefügt.

Hinweis: Wenn man nur Blöcke innerhalb desselben Programm-Fensters bewegen will, sollte man statt der 3 Funktionen 'Ausschneiden', 'Kopieren' und 'Einsetzen' besser die Menüpunkte 'Tokencode einsetzen' und 'Tokencode verschieben' benutzen. Diese arbeiten nämlich auf Tokencode-Ebene und sind dadurch besonders bei größeren Programmen um ein vielfaches schneller.
In ungünstigen Fällen kann durch die Benutzung von 'Ausschneiden', 'Kopieren' und 'Einsetzen' sogar Information verloren gehen, da der Tokencode mehr Informationen enthält, als der gelistete ASCII-Text (z.B. wenn Bereiche eingeklappt sind oder wenn im Programmtext die ASCII-Steuerzeichen CHR$(10),CHR$(13) bzw. CHR$(26) vorkommen).


Löschen
Der im obersten Fenster markierte Block wird gelöscht. Er kann weder mit 'Undo Zeile' noch mit 'Einsetzen' wieder zurückgeholt werden. Eventuell sollte vor dem Löschen eines Blocks vorher 'Verdoppeln' aufgerufen werden, um den Programmtext so notfalls noch einmal zur Verfügung zu haben.


Alles Selektieren
Das gesamte Programm wird als Block markiert


Tokencode einsetzen
Der im obersten Fenster markierte Block wird ebenfalls im obersten Fenster an der Cursor-Position eingefügt. Der Block bleibt weiterhin an der alten Position markiert. Diese Funktion kann auch durch Drücken der Maustaste in Verbindung mit der Befehlstaste aufgerufen werden.


Tokencode verschieben
Der im obersten Fenster markierte Block wird ebenfalls im obersten Fenster an die aktuelle Cursor-Position verschoben. Der Block bleibt an der neuen Position markiert.


Block kopieren
Der im zweitobersten Programm-Fenster markierte Block wird im obersten Fenster an der Cursor-Position eingefügt. Der Block bleibt weiterhin in beiden Fenstern markiert.

Achtung: Der zu kopierende Block darf keine eingeklappten Bereiche enthalten , da sonst nur die Titelzeilen kopiert würden. Diese müssen also vorher ausgeklappt werden.


Blockanfang setzen
An der Cursor-Position im obersten Fenster wird der Blockanfang festgesetzt. Wenn bereits ein Blockende definiert wurde, so wird der resultierende Block anschließend angezeigt. Mit diesem Menüpunkt kann auch ein bereits bestehender Block verändert werden. Auch ein Zeilenblock kann mit dieser Funktion definiert werden, wenn Blockanfang und Blockende in dieselbe Zeile gesetzt werden.
Den Blockanfang kann man auch durch gleichzeitiges Drücken der [Shift] Taste und der Maustaste verändern, wenn sich der Cursor vor dem Blockanfang befindet, sonst wir dadurch immer das Blockende verändert.


Blockende setzen
An der Cursor-Position im obersten Fenster wird das Blockende festgesetzt. Wenn bereits ein Blockanfang definiert wurde, so wird der resultierende Block anschließend angezeigt. Mit diesem Menüpunkt kann auch ein bereits bestehender Block verändert werden. Auch ein Zeilenblock kann mit dieser Funktion definiert werden, wenn Blockanfang und Blockende in dieselbe Zeile gesetzt werden.
Das Blockende kann man auch durch gleichzeitiges Drücken der [Shift] Taste und der Maustaste verändern, wenn sich der Cursor hinter dem Blockanfang befindet, sonst wir dadurch immer der Blockanfang verändert.

Block verstecken
Der im obersten Fenster definierte Block wird nicht mehr im Fenster angezeigt. Mit versteckten Blöcken sind keinerlei Block-Operationen mehr möglich. Der Block bleibt aber weiterhin definiert.
Wenn der Block versteckt ist, dann wird er durch Anklicken dieses Menüpunktes wieder sichtbar gemacht, die letzte Block-Definition also wieder aktiviert.


Block zuladen ...
An der Cursor-Position kann ein als ASCII-Datei gespeicherter Programm-Text in das Fenster eingefügt werden.

Hinweis: Am besten vorher im Dialog Editoreinstellungen die Deklarationsüberwachung abschalten, um die ständigen Nachfragen nach nicht deklarierten Symbolen zu vermeiden.


Block speichern ...
Der im obersten Fenster definierte Block wird als ASCII-Datei gespeichert. Die Einstellung 'Neues ASCII-Format' (im Modus-Menü/ Editoreinstellungen ...) wird berücksichtigt.

Achtung: Eingeklappte Bereiche müssen vorher ausgeklappt werden, da sonst nur die Titelzeilen gespeichert würden.


MEMORY_BLOCK laden ...
Bei Aufruf dieses Menüpunktes erscheint zunächst ein Dialog, in dem die Nummer eingegeben werden muß, unter der der Block in Zukunft angesprochen werden soll. Dies muß eine genau zweistellige Zahl sein. Wenn diese eingegeben und die Position für den Block im Programmtext gefunden wurde, dann erscheint ein Fileselektor, in dem die Datei mit den Daten für den Block ausgewählt werden kann.

Hinweis: Um einen MEMORY_BLOCK wieder aus einem Programm zu entfernen, muß man wie folgt vorgehen:
1. Den Befehl MEMORY_BLOCK aus dem Programm entfernen.
2. Den Menüpunkt 'Aufräumen' anklicken.


LIBRARY zuladen ...
Es erscheint eine Dateiauswahlbox, in der die LIBRARY ausgewählt werden muß, die hinzugeladen werden soll. Dies muß für jede zuzuladende LIBRARY einzeln geschehen.


Block drucken ... (s.a. Drucken)
Diese Funktion entspricht exakt der Funktion Drucken, mit dem Unterschied, daß nur der selektierte Bereich gedruckt wird.


Neu numerieren ...
Es erscheint die folgende Dialogbox:

Dialogbox: Zeilen neu numerieren
Der Bereich, für den diese Funktion wirkt, kann in den ersten beiden Zeilen des Dialogs eingestellt werden. Außerdem kann man in dem Dialog noch festlegen, mit welcher Zeilennummer die Neunumerierung beginnen soll und in welcher Schrittweite die Numerierung erfolgen soll. In den meisten Fällen dürfte es jedoch sinnvoller sein, ganz ohne Zeilennummern zu arbeiten.

Hinweis: Wenn Sie ein Programm, das mit Zeilenzummern geschrieben wurde, künftig ohne Zeilennummern weiterverwenden wollen, so sollten Sie es in Einerschritten neu durchnumerieren. Der Umstieg ist natürlich nur möglich, wenn das Programm keine Befehle enthält, die sich direkt auf bestimmte Zeilennummern beziehen (z.B. GOTO 100).

 

Suchen-Menü

Omikron Basic erlaubt die Suche nach Text, Tokens, Definitionen oder Fehlern. Im Falle der Suche nach Text und Token läßt sich auch in einem eigenem Fenster (sogenanntes Such-Fenster) eine Trefferliste ausgeben. In allen diesen Fällen wird durch die entsprechenden Menüpunkte im Suchen-Menü derselbe Dialog aufgerufen, aber jeweils mit einer unterschiedlichen Voreinstellung.
Wenn das gesuchte Token im Programmfenster gerade irgendwo dargestellt wird, so läßt sich die Tokenliste auch ganz ohne Dialog erstellen. Einfach das gesuchte Token mit einem Doppelklick anklicken. Wird dabei die [Alt] Taste gedrückt gehalten, so wird keine Tokenliste erstellt, sondern an die Stelle gesprungen, an der dieses Token definiert ist. Das funktioniert logischerweise nur bei Prozeduren, Funktionen und Labels.

Für 'Text ersetzen' und 'Token umbenennen' erscheint ebenfalls ein ähnlicher Dialog, der, abhängig vom gewählten Menüpunkt, ebenfalls unterschiedlich voreingestellt ist. In beiden Fällen läßt sich die Voreinstellung in dem Dialog aber noch verändern, so daß z.B. die Textsuche aufgerufen werden kann und im Dialog dann auf Fehlersuche umgeschaltet wird.

Folgende Menüpunkte des Suchen-Menüs stehen zur Verfügung:

Text suchen ...
Token suchen ...
Definition suchen ...
Fehler suchen ...
Nächsten Eintrag suchen
Vorherigen Eintrag suchen
Text listen ...
Token listen ...
Text ersetzen...
Token umbenennen...
Text vergleichen ...


Text suchen ...
Token suchen ...

Definition suchen ...
Fehler suchen ...

Diese vier Menüeinträge rufen alle die gleiche Dialogbox auf, lediglich mit unterschiedlichen Voreinstellungen.

Dialogbox Sucheinstellungen
(s.a. Dialogbox: Suchen und Ersetzen)
Am oberen Rand dieses Dialoges kann eingestellt werden, wonach überhaupt gesucht werden soll. Zur Wahl stehen:

Text, List Text:
Der Programmtext wird wie ein ASCII-Text nach einer Zeichenkombination durchsucht.

Token, List Token:
Es wird nach Omikron Basic Befehlen oder Funktionen oder nach selbst definierten Variablen-, Prozeduren oder Funktionsnamen gesucht.

Definition:
Es wird nach der Definition einer selbstdefinitierten Prozedur oder Funktion oder einem Label gesucht.

Error:
Es wird nach einer Zeile mit einem Syntax-Fehler gesucht.

In der Eingabezeile des Suchen-Dialogs kann man angeben, wonach gesucht werden soll. Bei der Suche nach Fehlern kann hier logischerweise nichts eingegeben werden.
Es kann der gesamte Programmtext oder nur ein Teil davon durchsucht werden. Dies wird mit der Button-Leiste unter der Eingabezeile bestimmt. Hinter der Frage 'Wonach soll gesucht werden' kann ein einzeiliger Block in die Eingabezeile für die Suche übertragen werden, indem der Block-Button aktiviert wird.
Die unterste Einstellung des Dialoges 'Groß- und Kleinschreibung unterscheiden' ist nur für die Textsuche relevant.

Hinweis: Die Suche nach Text liefert nur Fundstellen im Bereich des auch im Fenster sichtbaren Programmtextes. D.h. ein String wird in eingeklappten Programmteilen nicht gefunden. Die Suche nach Tokens findet hingegen auch das Vorkommen dieses Tokens in eingeklappten Bereichen. Als Fundstelle erscheint dann die Falte, an der der Programmtext aufgeklappt werden kann.

Wenn die Dimension des gesuchten Tokens nicht angegeben wird, so sucht der Editor nach dem Namen mit der niedrigsten Dimension. Wenn vor dem Namen kein PROC, -, bzw. FN angegeben wird, so wird zuerst nach einer Variablen, danach nach einer Prozedur, dann nach einem Label und schließlich nach einer Funktion mit dem angegebenen Namen gesucht.


Nächsten Eintrag suchen
Vorherigen Eintrag suchen

Diese beiden Menüpunkte rufen nicht den Suchen Dialog auf, sondern springen gleich an die entsprechende Programmstelle. Dabei wird nach den Eingaben im Dialog Suchen vorgegangen.


Text listen ...
Token listen ...

Die Dialogbox 'Sucheinstellungen' wird dargestellt.
Im Unterschied zu den vorherigen Funktionen wird nicht der Cursor auf die nächste Fundstelle des Suchwortes gestellt. Stattdessen werden in einem weiteren Fenster sämtliche Vorkommen des Suchwortes aufgelistet. Ein Klick auf eine Zeile in diesem Fenster positioniert den Cursor an die entsprechende Stelle im Programm-Fenster. Wird dabei die Befehlstaste gedrückt, so wird gleichzeitig das Suchfenster geschlossen.


Text ersetzen ...
Token umbenennen ...
Ein Dialog wird angezeigt.

Dialogbox: Suchen und Ersetzen (s.a. Dialogbox: Sucheinstellungen)
Dieser Dialog entspricht im wesentlichen dem Dialog 'Sucheinstellungen' mit zwei Unterschieden:

1. Es kann ein Ersatztext eingegeben werden.
2. Im Fall von 'Text ersetzen ...' kann bei jeder einzelnen Fundstelle nachgefragt werden, ob ersetzt werden soll. Dies ist beim 'Token umbenennen ...' prinzipbedingt nicht möglich.

Es ist nicht notwendig, beim Umbenennen einer Variablen immer den Variablentyp mit anzugeben. Wenn das Variablen-Typ-Postfix nicht angegeben wird, dann benennt der Editor die Variable des Default-Typs um. In der Zeile mit dem neuen Namen ist es unbedeutend, ob ein Postfix angegeben wird. Der Editor ändert immer nur den Namen einer Variablen oder Funktion, aber nie den Typ.

Hinweis: Wenn Sie den Typ einer Variablen im gesamten Programmtext ändern wollen, z.B. weil Ihnen aufgefallen ist, daß die von Ihnen definierte Long-Integer-Variable nie Werte außerhalb des Bereichs von Short-Integer annehmen kann, dann bleibt Ihnen nur folgender Weg: Klappen Sie das gesamte Programm aus (Modus-Menü/Alles ausklappen) und ersetzen Sie dann den betreffenden Variablennamen mit der Funktion 'Text ersetzen ...'.


Text vergleichen ...
Ein Dialog wird angezeigt.

Dialogbox: Text vergleichen
Diese Funktion dient zum Vergleichen von Programmtexten.
Wenn man an einem längeren Programm Änderungen an verschiedenen Stellen vorgenommen hat, kann es passieren, dass dieses Programm dadurch nicht mehr läuft oder sich nicht mehr compilieren lässt. Durch Vergleich mit einem älteren, noch funktionsfähigem Programm lassen sich mit dieser Funktion nun leicht alle Stellen aufspüren, die verändert wurden.

Vor dem Anwählen dieses Menüpunktes müssen zunächst nacheinander die beiden Fenster getopt werden, deren Inhalt verglichen werden soll. Die Dialogbox enthält dann in den oberen beiden Zeilen die Namen der zu vergleichenden Programmfenster.
Darunter kann man wie beim 'Suchen'-Dialog einen Bereich angeben, der verglichen werden soll. Ausserdem kann noch eingestellt werden, ob die Zeilen von vorne nach hinten 'Vorwärts' oder von hinten nach vorne 'Rückwärts' verglichen werden sollen.
In der unteren Zeile der Dialogbox befinden sich vier Ausführungsknöpfe: Klicken Sie zunächst auf 'Starten', um mit dem Vergleich anzufangen. Sobald der Editor eine Stelle gefunden hat, die in beiden Fenstern unterschiedlich ist, wird der Prozess angehalten und der Cursor in beiden Fenstern auf die unterschiedliche Stelle gesetzt. Wenn Sie an dieser Stelle nichts ändern möchten, können Sie auf 'Fortfahren nach Doppelpunkt' oder 'Fortfahren nächste Zeile' klicken. Der Editor setzt seine Arbeit dann nach/vor dem nächsten Doppelpunkt bzw. in der nächsten/vorhergehenden Zeile fort (je nach Richtung).
Für diese beiden Funktionen stehen auch Shortcuts zur Verfügung (F11=Fortfahren nach Doppelpunkt und F12=Fortfahren nächste Zeile). Diese Shortcuts funktionieren nur, wenn ein Programmfenster das oberste Fenster ist. Sie brauchen damit also nicht ständig wieder den Dialog 'Text vergleichen ...' aufzurufen.


Hinweis: Beim Vergleich werden führende Leerzeichen ignoriert. Zeilen werden also als gleich erkannt, wenn sie zwar unterschiedlich eingerückt, ansonten aber identisch sind. Zeilennummern werden in den Vergleich mit einbezogen, wenn Sie angezeigt werden. Wenn der Vergleich ohne Berücksichtigung unterschiedlicher Zeilennummern erfolgen soll, müssen Sie die Anzeige vorher in beiden Fenstern abschalten.


 

Cursor-Menü

Mit Hilfe der Einträge in diesem Menü kann der Cursor innerhalb eines Programm-Fensters bewegt werden. Im einzelnen sind folgende Möglichkeiten vorhanden:

Zur letzten Position
Gehe zu ...
Gehe zum Blockanfang
Gehe zum Blockende
Cursorzeile nach oben
Cursorzeile nach unten
Setze Markierung
Entferne Markierung
Marke anspringen


Zur letzten Position
Der Cursor wird an die Stelle gebracht, wo sich der Editor zuletzt die Cursor-Position gemerkt hat. Der Editor merkt sich die alte Cursor-Position bei einem Doppelklick in das Fenster ('Token listen ...), bei einem 'Gehe zu ...', und wenn der Editor die Cursor-Position verändert (z.B. beim Laden einer Library). Da der Editor sich bis zu 10 alte Positionen merkt, kann auch nacheinander mit diesem Menüpunkt zurückgesprungen werden.


Gehe zu ...
In diesem Dialog kann eine Zeilennummer, ein Label oder eine Definition angegeben werden. Dorthin springt dann der Cursor. Diesen Dialog kann man auch erreichen, indem man auf die Y-Anzeige in der Infozeile eines Programmfensters klickt.

Hinweis: Wenn hier eine Zeilennummer angegeben wird, so ist damit die Nummer der BASIC-Zeile gemeint und nicht die fortlaufende Numerierung des Editors, die in der Infozeile angezeigt wird.


Gehe zum Blockanfang
Der Cursor springt zum Anfang des markierten Blocks. Das funktioniert auch bei versteckten Blöcken.


Gehe zum Blockende
Der Cursor springt zum Ende des markierten Blocks. Das funktioniert auch bei versteckten Blöcken.


Cursorzeile nach oben
Der Cursor bleibt in derselben Zeile, die Zeile wird aber als oberste in dem Fenster dargestellt.


Cursorzeile nach unten
Der Cursor bleibt in derselben Zeile, die Zeile wird aber als unterste in dem Fenster dargestellt.


Setze Markierung
Im unteren Teil des Menüs sind zehn freie Menüeinträge. Mit diesem Menüpunkt werden in den ersten freien dieser Menüeinträge die nächsten 24 Zeichen hinter dem Cursor in der aktuellen Zeile eingetragen. Ein Klick auf diesen Menüpunkt springt dann genau an diese Stelle. Sie sollten beim Setzen der Markierungen darauf achten, daß der Cursor an einer aussagekräftigen Stelle innerhalb der Zeile steht. Denn der Eintrag im Menü beginnt genau an der Stelle, an der der Cursor beim Setzen der Markierung stand. Wenn das das Zeilenende war, dann sehen Sie anschließend im Menü nur einen leeren Eintrag, der allerdings ohne Probleme angesprungen werden kann.


Entferne Markierung
Ein mit 'Setze Markierung' belegter freier Menüeintrag wird wieder gelöscht. Und zwar genau derjenige, vor dem sich das Häkchen befindet. Um einen bestimmten Menüeintrag zu löschen, muß dieser also ggf. erstmal angesprungen werden.


Marke anspringen
Durch das Anklicken eines der zehn Einträge am unteren Ende des Menüs wird die entsprechende Zeile im Programmtext angesprungen. Das geht natürlich nur dann, wenn die Markierung vorher auch gesetzt worden ist. Die zuletzt angesprungene Marke wird mit einem Häkchen markiert.

  
 
Modus-Menü

Dieses Menü enthält alle grundlegenden Einstellungen für die Arbeitsweise des Editors. Im einzelnen gibt es folgende Menüpunkte:

Zeilennummern anzeigen
Alle Postfixe anzeigen
Zeichen wiederholen ...
Bereich einklappen
Bereich ausklappen
Alles ausklappen
Passwort eingeben ...
Speichereinstellungen ...
Editoreinstellungen ...
Arbeitspfad einstellen ...
Shortcuts einstellen ...
Voreingestellte Farben

Zeilennummern anzeigen
Optional kann am Anfang jeder Zeile im Programmfenster eine Zeilennummer ausgegeben werden. Dies kann hier ein- bzw. ausgeschaltet werden. Wenn die Zeilennummern eingeschaltet sind, wird dies durch ein Häkchen vor dem Menüpunkt angezeigt.


Alle Postfixe anzeigen
Die im Menu Modus/Editoreinstellungen hinter DEFINT, DEFINTL, DEFSNG, DEFDBL und DEFSTR eingestellten Defaul-Variablentypen werden durch diesen Menüpunkt insofern aufgehoben, als daß auch bei den eingestellten Default-Typen das Postfix angezeigt wird. Auch hinter konstanten Fließkomma-Ausdrücken wird jeweils das zugehörige Postfix ausgegeben. Dieser Modus wird durch ein Häkchen vor dem Menüeintrag angezeigt. Erneutes Anklicken schaltet diesen Modus wieder aus.


Zeichen wiederholen ...
Hier kann ein Zeichen vervielfältigt werden. In den nach Anklicken des Menüpunktes erscheinenden Dialog muß nur die Anzahl angegeben werden. Das Zeichen vor dem Cursor wird entsprechend häufig an der Cursorposition eingefügt.


Bereich einklappen (s.a. Bereich ausklappen, Alles ausklappen)
Wenn der Cursor in einer Zeile steht, die mit DEF PROC oder DEF FN beginnt, dann wird die gesamte Prozedur bzw. Funktion für die Darstellung im Fenster in einer Zeile (nämlich dieser Definitionszeile) zusammengefaßt. Erkennbar ist eine solche Einklappung an einem Rechteck vor diesem Schlüsselbegriff.
Die nächste Zeile, die im Fenster noch dargestellt wird, ist dann die Zeile hinter der Zeile mit dem END_PROC- bzw. END_FN-Befehl.
Der Editor klappt automatisch bis zum ersten unbedingten RETURN, END_PROC bzw. END_FN ein. Eine Prozedur kann also mehrere RETURNs enthalten. Solange sie innerhalb einer IF... THEN... ELSE... ENDIF Anweisung stehen, werden sie beim Einklappen nicht berücksichtigt. Entsprechend kann auch ein Bereich eingeklappt werden, der mit einer öffnenden und einer schließenden geschweiften Klammer definiert worden ist.

Achtung: Wenn ein eingeklappter Bereich als ASCII gespeichert wird, dann wird nur die Titelzeile dieses Bereichs gespeichert. Der in dem eingeklappten Bereich enthaltene Programmtext geht also verloren.

Hinweis: In die Zeile, die einen eingeklappten Bereich repräsentiert, können Sie keine Eingaben machen. Jegliche Veränderung dieser Zeile wird automatisch aufgehoben, wenn der Cursor die Zeile verläßt.


Bereich ausklappen (s.a. Alles ausklappen, Bereich einklappen)
Ein mit 'Bereich einklappen' versteckter Bereich wird wieder ausgeklappt, d.h. im Fenster wieder sichtbar gemacht.


Alles ausklappen (s.a. Bereich ausklappen, Bereich einklappen)
Alle eingeklappten Bereiche werden wieder ausgeklappt.

Achtung: Da es keine Funktion 'Alles einklappen' gibt, ist es unter Umständen eine Menge Arbeit, einen langen, vollständig eingeklappten Programmtext wieder einzuklappen, wenn der mit dieser Funktion ausgeklappt worden ist. Sie sollten also vorher gut überlegen, ob das vollständige Ausklappen wirklich notwendig ist.


Passwort eingeben ...
Eingeklappte Bereiche können mit einem Passwort vor dem Ausklappen geschützt werden. Alle Programmteile, die nach Eingabe des Passwortes in diesen Dialog eingeklappt werden, sind mit diesem Passwort geschützt. Das bedeutet, daß sie später nur dann wieder ausgeklappt werden können, wenn zuvor das richtige Passwort eingegeben wurde. Mit [Shift]+[Delete] in dem Dialog kann ein Passwort wieder gelöscht werden.


Speichereinstellungen ...
Die Dialogbox 'Speichereinstellungen' wird dargestellt.

Dialogbox: Speichereinstellungen
Die in diesem Dialog möglichen Einstellungen beeinflussen die Menge an RAM, die das Omikron Basic für eigene Verwaltungszwecke benötigt

Achtung: Bevor dieser Dialog mit 'OK' verlassen wird, sollten alle Programme gesichert werden, da zur Neuorganisation des Speichers alle Daten gelöscht werden müssen und das Programm neu gestartet werden muß. Der Load-Button führt hingegen nur dazu, daß eine NEWOMBAS.INF-Datei geladen und deren Speichereinstellungen in dem Dialog dargestellt werden.

Es gibt folgende Einstellmöglichkeiten:

Maximale Anzahl der Fenster:
Diese sollte nicht größer eingestellt werden, als benötigt. Und vor allem nicht größer, als es das Betriebssystem erlaubt. Es ist jedoch zu berücksichtigen, daß auch die Dialoge in Fenstern liegen.

Maximale Zeilen für Listbuffer:
Der Listbuffer wird benutzt, um bei den Suchfunktionen die gefundenen Einträge zu speichern. Außerdem benutzt der Compiler den Listbuffer für seine Ausgaben. Welche Größe sinnvoll ist, hängt von der Größe der Programme ab, die bearbeitet werden sollen. Und natürlich davon, wieviel RAM überhaupt vorhanden ist.

Maximale Variablen-Anzahl:
Omikron.Basic kann maximal 16384 Variablen, Prozeduren bzw. Funktionen verwalten. Selbst sehr lange Programme (über 500 kB Token-Code) bringen es im allgemeinen nicht über 2000 Variablen, so daß diese Einstellung nicht zu üppig ausfallen sollte. Dieser Wert wird erst benötigt, wenn das Programm compiliert wird. Für den Editor spielt er also keine Rolle. Bei RAM-Knappheit kann hier also erstmal gespart werden.

Der gesamte Speicherbedarf für ein BASIC-Programm ergibt sich aus folgender Formel:

Bedarf = (650 + BZ * 50) * FZ + 10.4 * VZ + 4 * ZZ + RZ

FZ = Fensterzahl
BZ = Bufferzeilen
VZ = Variablenzahl
ZZ = Zeilenzahl
RZ = Reserviertes RAM

Variablenzahl und Zeilenzahl werden nur vom Compiler benötigt. Als Hilfe für die Einstellung der passenden Speichergröße werden im unteren Teil des Dialoges der freie Programm-Speicher, der freie BASIC-Speicher und der freie Heap-Speicher angezeigt. Zur Erklärung der Begriffe siehe das Kapitel 'Speicherorganisation im Omikron Basic'.

Reservierter Speicher:
Um das RAM möglichst wenig zu zerstückeln, reserviert der Editor allen Speicher, den er benötigt, auf einen Schlag einmal zu Beginn. Wieviel dies ist, hängt von der Einstellung hier ab. Sie können an dieser Stelle jedoch nicht mehr Speicher anfordern, als im Applicationheap vorhanden ist. Die Größe des Applicationheaps kann man vom Finder aus verändern. Dazu müssen sie Omikron Basic zunächst beenden, dann das Programm-Icon im Finder selektieren und 'Information' im Finder-Menü anklicken. Es öffnet sich eine Dialogbox, in der Sie die bevorzugte Speichergröße einstellen können.

Mindestens freilassen:
Diverse MacOS-Funktionen fordern Speicher aus dem Applicationheap desjenigen Programmes an, aus dem heraus sie aufgerufen wurden. Dafür muß also etwas freibleiben. Wieviel das mindestens ist, können Sie hier einstellen. Sollte es Ihnen durch ungünstige Einstellung mal passieren, daß sich der Editor wegen Speichermangels nicht mehr starten läßt, dann gehen Sie bitte wie folgt vor, damit Sie nicht sämtliche Einstellungen (z.B. alle selbstdefinierten Shortcuts) neu machen müssen:

Sorgen Sie dafür, daß der Editor die NEWOMBAS.INF beim Programmstart nicht mehr findet. Benennen Sie also die NEWOMBAS.INF mit dem Finder beliebig um. Starten Sie jetzt den Editor. Da der Editor keine NEWOMBAS.INF findet, wird er Sie mit einer Dateiauswahlbox dazu auffordern, die Datei zu suchen. Brechen Sie die Suche mit dem Abbruch-Button ab. Der Editor startet jetzt mit seinen Default-Einstellungen. Rufen Sie jetzt den Dialog 'Speichereinstellungen ...' oder 'Editoreinstellungen ...' auf und klicken Sie den Load-Button an. Jetzt können Sie Ihre alte NEWOMBAS.INF laden. Ändern Sie die Speichereinstellungen auf Werte, die Ihrer vorhandenen Hardware entsprechen und speichern Sie die NEWOMBAS.INF mit dem Save-Button in einem der beiden Dialoge.

 

Editoreinstellungen ...
Dieser Menüeintrag ruft den Dialog 'Editoreinstellungen' auf.

Dialogbox: Editoreinstellungen

In dieser Dialogbox können globale Einstellungen vorgenommen werden, die übernommen werden, wenn die Dialogbox mit 'OK' verlassen wird. Ausnahme: Bei Schriftfont, Schriftgröße und Schriftstil werden die Änderungen sofort wirksam.

Dieser Dialog läßt sich, entsprechend seiner optischen Gestaltung, in sechs Bereiche einteilen:

Voreinstellungen bei Neu
Allgemeine Einstellungen
Farben (Aufruf eines Unterdialogs)
Debugger (Aufruf eines Unterdialogs)
Drucker-Einstellungen
Maße des ersten Fensters


Voreinstellungen bei Neu
Dieser Teil des Dialoges entspricht genau dem Dialog 'Neu ...'
Die Eingaben hier sind die Default-Einstellungen für diesen Dialog. Nähere Erklärungen dazu sind deshalb dort zu finden.


Allgemeine Einstellungen

Exponentialdarstellung:
Wenn dieses Kästchen angekreuzt ist stellt der Editor alle Fließkommazahlen in der Exponentialschreibweise dar, andernfalls wird versucht die Zahl auszuschreiben, wenn dies möglich ist (z.B. 123450000000000 gibt in Exponentialdarstellung 1.2345D+14).

Auto-Backup:
Wenn diese Option aktiviert ist, dann wird eine bereits bestehende Datei gleichen Namens beim Speichern automatisch mit der Endung *.BAK versehen.

TAB-Länge:
Hiermit wird eingestellt, in welchem Abstand die Tabulatoren gesetzt werden, d.h. um wieviele Zeichen der Cursor maximal bei Druck auf die TAB-Taste automatisch nach rechts rückt.

Zeichen pro Zeile:
Damit können Sie die Anzahl der Zeichen festlegen, die maximal in einer Programmzeile vorkommen dürfen. In den allermeisten Fällen dürfte die Voreinstellung von 255 Zeichen völlig ausreichen, da Programme durch allzu vollgeschriebne Zeilen sehr unübersichtlich werden. In Sonderfällen, wenn z.B. sehr viele Einzelparameter an eine Prozedur oder Funktion übergeben werden müssen, kann es durchaus sinnvoll sein, die Zeilenbreite zu vergrößern.

Sicherheitsabfragen:
In bestimmten, gefährlichen, Situationen kann der Editor mit einer Nachfrage warnen, wenn z.B. Datenverluste drohen. Wenn diese Warnungen die flüssige Arbeit behindern, können sie hier ausgeschaltet werden.

Deklarationen überwachen:
Der Editor kann davor warnen, wenn eine Variable, Funktion oder Prozedur benutzt wird, obwohl sie noch nicht deklariert worden ist. Im Falle der Variablen ist eine Deklaration eine einfache Zuweisung. Die automatische Deklarationsüberwachung schützt Sie vor allem vor Tippfehlern. Wenn Sie z.B. eine Variable mit dem Namen 'Counter' in Ihrem Programm benutzen und bei der nächsten Verwendung versehentlich 'Conter' eintippen, so werden Sie darauf aufmerksam gemacht, daß 'Conter' noch nicht deklariert wurde. Dadurch wird vermieden, daß das Programm fälschlicherweise mit der Variablen 'Conter' statt Counter' rechnet. Das funtioniert natürlich nur, wenn nicht zuvor irgendwo schon 'Conter' deklariert wurde.
Ein weiteres Beispiel wäre der Aufruf einer Prozedur aus der ExtensionLibrary. Wenn Sie hierbei den Namen falsch schreiben oder eine falsche Anzahl an Parametern übergeben, werden Sie sofort auf diesen Fehler aufmerksam gemacht.
Die Deklarationsüberwachung funktioniert am sichersten, wenn Sie in regelmaßigen Abständen mit der Funktion 'Aufräumen' im Programm-Menü dafür sorgen, daß sich keine Variablen-Leichen im Speicher ansammeln.

Automatisch einrücken:
Der Editor kann die Inhalte von Schleifen und IF...THEN...ELSE...ENDIF Konstruktionen automatisch einrücken. Das funktioniert auch, wenn mehrere Strukturbefehle in einer Zeile stehen. Um wieviele Zeichen diese Einrückung gehen soll, kann man hier einstellen. Außerdem kann dieses Feature hier auch ausgeschaltet werden.

Hinweis: Um ein altes Programm komplett der Einrückprozedur zu unterwerfen, braucht dieses nur als ASCII gespeichert und dann neu geladen zu werden. Alternativ kann man auch das ganze Programm als Block markieren und dann den Block in ein vorher geöffnetes neues Fenster kopieren. (Achtung: Im neuen Fenster muß genug Speicher reserviert sein).

Compiler-Fenster automatisch schließen:
Wenn Sie Ihr Programm compilieren, öffnet Omikron Basic zunächst ein neues Fenster, in dem der Compiliervorgang dokumentiert wird. Mit diesem Schalter können Sie nun einstellen, daß das Fenster automatisch wieder geschlossen wird, wenn die Compilierung erfolgreich durchgeführt werden konnte. Wenn ein Fehler oder eine Warnmeldung auftreten, bleibt das Fenster in jedem Fall offen, damit Sie der Ursache auf den Grund gehen können.

ASCII 202 -> 32:
Wenn Sie die Beispielprogramme aus den Online-Handbüchern durch 'Kopieren' und 'Einsetzen' in Omikron Basic Fenster übertragen möchten, empfiehlt es sich, diesen Punkt anzuwählen. Viele Browser realisieren nämlich die Einrückung in Html-Dokumenten durch Einfügen von Zeichen mit dem ASCII-Wert 202. Dies ist bei Omikron Basic aber ein gültiges Zeichen für Varaiblennamen, wodurch es zu Fehlern beim Einsetzen kommt.
Wenn Diese Checkbox angewählt ist, werden dagegen alle ASCII 202 Zeichen in normale Leerzeichen umgewandelt, so dass die Programmzeilen vom Omikron Basic Editor korrekt interpretiert werden können.

Farbige Darstellung:
Omikron Basic unterstützt sogenanntes Color-Coding. Dabei können Befehle, Strukturbefehle, Funktionen, Operatoren, Konstanten, Kommentare etc. in verschiedenen Farben dargestellt werden. Wenn man das nicht übertreibt, kann die Übersichtlichkeit eines Programms dadurch erheblich verbessert werden. Für Anhänger der "Monochromie" ist dieses Verhalten natürlich abschaltbar. Siehe auch 'Farben einstellen'.

Farben:
Dieser Button öffnet die Dialogbox 'Farbeinstellungen'.

Dialogbox: Farbeinstellungen
In diesem Dialog können für alle Objekte und Elemente, die in den verschiedenen Fenstern des Editors erscheinen können, die Farben festgelegt werden. Damit ist eine sehr individuelle Gestaltung der Arbeitsumgebung möglich. Besonders interessant ist dabei die Möglichkeit, in den Programmfenstern für verschiedene Befehlsarten, Kommentare, Variablen etc. unterschiedliche Farben zu definieren (Color-Coding). So lassen sich z.B. Schleifen schon an der Farbe der Schleifenbefehle erkennen. In den 'Editoreinstellungen ...' kann die farbige Darstellung aber auch abgeschaltet werden.

Für jedes Element muß die zugeordnete Farbe als Registernummer angegeben werden. Wenn diese nicht bekannt ist, kann die Farbe auch aus einem PopUp-Menü gewählt werden. Klicken Sie dazu den Button 'Farbe wählen' rechts unten in der Toolbox an und halten Sie die Maus gedrückt. Bewegen Sie die Maus auf die gewünschte Farbe und lassen Sie die Maustaste dann los. Es wird jetzt die gewünschte Farbnummer in das Feld, in dem sich der Cursor gerade befindet, eingetragen. Der Vorgang der Farbauswahl kann abgebrochen werden, indem man die Maus außerhalb des PopUp-Menüs losläßt.

Im einzelnen können für folgende Elemente die Farben eingestellt werden:

Programmfenster:

Hintergrund:
Alles, was nicht Zeichen sind

Hintergrund im Block:
Die Blockmarkierung

Hinweis: Da der Text in einem Block nicht invertiert wird, sollte die Farbe des Blocks in der Helligkeit ähnlich sein, wie der Hintergrund. Also z.B. Gelb im Block wenn der Hintergrund des Fensters weiß ist. Sonst ist der Text im Block nicht mehr lesbar.

Cursorzeile:
Die Zeile, in der sich der Cursor gerade befindet. In dieser Zeile wird der gesamte Text in einer Farbe dargestellt. Der Editor weiß beim Eintippen ja nicht, was Sie eintippen werden ... ;-)

Befehle und Hilfszeichen:
Alle Befehle, die nicht zu einer anderen Gruppe gehören, und Zeichen wie Kommas, Punkte, Klammern etc.
Die hier eingestellte Farbe wird auch für die Ausgabe in Such-, Compiler-, Shortcut-, Variablen- und Speicherfenstern verwendet.

Fehlerzeile:
Eine Zeile, in der es noch einen Syntaxfehler gibt.
Die hier eingestellte Farbe wird auch für den Programmzeiger des Debuggers (kleines Dreieck) verwendet.

Kommentare:
Eben Kommentare.
Die hier eingestellte Farbe wird auch für die Breakpoints des Debuggers (kleine Ellipsen) verwendet.

BASIC-Funktionen:
Alle im BASIC vorhandenen Funktionen, wie z.B. MIN, CHR$, ABS usw.

Strukturbefehle:
IF, THEN, ELSE, ENDIF, FOR, NEXT, REPEAT, UNTIL, WHILE, WEND, SELECT, CASE, DEFAULT, OTHERWISE, END_SELECT.
Nicht dazu gehören GOTO, GOSUB und ON

Konstanten:
Im Programmtext konstante Ausdrücke wie z.B. alles, was in Anführungszeichen steht, direkt angegebene Zahlen usw. Dies hat nichts mit dem COMPILER-Steuerwort DEF CONST zu tun.

Variablen:
Dürfte klar sein

Operatoren:
+,-,*,/,<,>, AND, OR usw.

PROC- und FN-Definitionen:
DEF, DEF PROC, END_PROC, END_FN, RETURN. Aber nicht die Namen der Prozeduren und Funktionen

PROC- und FN-Aufrufe:
Die Namen von Prozeduren und Funktionen und die Aufrufe von Prozeduren im Programmtext. Nicht aber der Aufruf von Funktionen.

Label:
Die Markierung des Labels und der Sprungbefehle dorthin

Eingeklappte Bereiche:
Die Titelzeilen dieser Bereiche

Toolboxen:

Hintergrund:
Die hinterste Ebene der Dialoge

Vordergrund:
Die großen Boxen, die auf dem Hintergrund liegen und nicht selektierte Radio-Buttons

Befehlsknöpfe:
Alle Exit-Buttons

Auswahlknöpfe:
Selektierte Radio-Buttons

Schattenlinien:
Umrandung von Editfeldern und Buttons für den 3D-Effekt.

Der Dialog 'Farbeinstellungen' kann mit [Exit] wieder verlassen werden. Er kann aber auch geöffnet bleiben.

Debugger:
Dieser Button öffnet die Dialogbox 'Debuggereinstellungen'. Eine genaue Beschreibung dieser Dialogbox finden Sie in Kapitel 11, Der Source Code Debugger.

Auf Standardwerte setzen:
Es werden alle Einstellungen auf die Standardwerte gesetzt, die der Editor auch benutzt, wenn er keine NEWOMBAS.INF-Datei findet.

Schriftfont:
Hier wird angezeigt, welcher Font gerade benutzt wird. Durch Anklicken kann man ein Popup-Menü öffnen, aus dem man einen anderen Font auswählen kann. Der eingestellte Font gilt für alle Fenster mit Ausnahme der Dialogfenster, die wegen der festen Eingabemasken keine beliebige Fontauswahl erlauben.
Da der Editor nur mit nichtproportionalen Fonts korrekt arbeitet, stehen auch nur solche zur Auswahl.

Schriftgröße:
Hier wird angezeigt, welche Schriftgröße gerade benutzt wird. Durch Anklicken kann man ein Popup-Menü öffnen, aus dem man eine andere Größe auswählen kann. Die eingestellte Schriftgröße gilt für alle Fenster mit Ausnahme der Dialogfenster, die wegen der festen Eingabemasken keine beliebige Schriftgröße erlauben.

Schriftstil:
Hier sehen Sie eine Bitmaske (Binärzahl) die anzeigt, welche Stilflags gesetzt sind (wie bei TEXT STYLE=). Durch Anklicken der Maske öffnet sich ein Popup-Menü, in welchem die einzelnen Stile nochmal namentlich aufgeführt sind. Ein aktiver Stil wird durch einen vorangestellten Stern gekennzeichnet.
Es können mehrere Stilattribute parallel aktiv sein. Der oberste Eintrag in dem Popup-Menü entspricht dem rechten Flag.

Vektorfont:
Diese Checkbox entscheidet, ob bevorzugt mit Vektorfonts oder Bitmapfonts gearbeitet werden soll. Da bei einigen Fonts bzw. Schriftgrößen das Erscheinungsbild der Schrift unterschiedlich ist, gibt diese Einstellung Ihnen eine zusätzlich Auswahlmöglichkeit.

Hinweis: Die Textausgabe ist bei Vektorfonts im allgemeinen langsamer als bei Bitmapfonts.

Drucker-Einstellungen
Dieser Teil des Dialogs entspricht zum Teil dem Dialog 'Drucken ...'. Die Eingaben hier sind die Default-Einstellungen für diesen Dialog. Nähere Erklärungen dazu sind deshalb dort zu finden.

Maße des ersten Fensters
Die hier angegebenen Daten bestimmen Position und Größe des ersten vom Editor geöffneten Programm-Fensters. Nachfolgende Fenster werden ein bischen weiter nach rechts und nach unten versetzt, aber in der gleichen Größe geöffnet.

Die gemachten Einstellungen können mit 'Save' in eine NEWOMBAS.INF Datei gespeichert werden. Der Dialog kann mit 'Exit' verlassen werden. Er kann aber auch geöffnet bleiben.


Arbeitspfad einstellen ...
In der erscheinenden Dateiauswahlbox kann der Arbeitspfad eingestellt werden. Der Arbeitspfad ist derjenige Pfad, den Omikron.Basic direkt nach dem Start als Pfad für das Laden/Speichern von Programmen vorgibt.


Shortcuts einstellen ...
Im Editor können fast sämtliche Tastaturkürzel selber eingestellt werden. Wer will, kann sogar die Bewegung des Cursors um ein Zeichen nach links auf den rechten Cursorpfeil legen (und umgekehrt natürlich auch). Um die Shortcuts zu verändern, wird dieser Menüpunkt aufgerufen. Es erscheint ein Fenster mit einer Liste sämtlicher shortcutfähiger Editor-Befehle mit ihrer jeweils aktuellen Belegung. Mit der Maus kann nun ein Shortcut, der verändert werden soll, angeklickt werden. Wenn jetzt eine Taste (bzw. eine Tastenkombination) gedrückt wird, dann wird diese als neuer Shortcut für den Befehl eingetragen und ist sofort aktiv. Die Modifier-Keys werden dabei durch kleine Buchstaben symbolisiert. a=Auswahltaste, b=Befehlstaste, c=Controltaste, s=Shifttaste. Da sämtliche Tastendrücke als neues Shortcutkürzel interpretiert werden, kann das Fenster nur mit der Maus bedient werden. Das gilt sowohl für das Schließen des Fensters als auch für die Markierung eines anderen Befehls, dessen Shortcut verändert werden soll.

Der Editor prüft, ob ein Shortcut eventuell für zwei oder mehr verschiedene Funktionen in der Liste steht. Es erscheint dann eine entsprechende Alertbox mit einer Warnmeldung. Sie können den Shortcut aber trotzdem einstellen. Normalerweise sollten Sie dann der anderen Funktion, der dieser Shortcut zugeordnet ist, einen anderen (oder keinen) Shortcut zuordnen. Es wird beim Drücken einer Tastenkombination natürlich immer nur eine Funktion ausgelöst, auch wenn ein Shortcut mehreren Funktionen zugeordnet ist. Wenn das der Fall ist, wird im Zweifel immer die Funktion ausgelöst, die in dem Shortcut-Fenster weiter oben steht.
Wenn Sie einer Funktion keinen Shortcut zuweisen wollen (z.B. um Fehlbedienungen zu vermeiden), dann müssen Sie nur die entsprechende Funktion im Shortcut-Fenster mit gedrückter Shift-Taste anklicken. Die eingestellten Shortcuts können in der NEWOMBAS.INF gespeichert werden. Wählen Sie dazu im Datei-Menü 'Speichern als ...' aus, wenn das Shortcut-Fenster oben liegt. Sie können auch im Modus-Menü entweder 'Speichereinstellungen ...' oder 'Editoreinstellungen ...' aufrufen und dort den Save-Button anklicken.
Um eine Anpassung an die 'Human Interface Guidelines' von Apple zu ermöglichen, werden Shortcuts, die die Befehlstaste enthalten und einen Menüpunkt steuern, im entsprechenden Menüeintrag als Kombination aus dem Zeichen für die Befehlstaste und dem Zeichen, das durch die übrigen ausgewählten Tasten definiert ist, dargestellt. Wem das zu kompliziert ist, der sollte es einfach mal ausprobieren.

Hinweis: Die Tastatursteuerung von Fenstern (scrollen) funktioniert nur mit den Programm-Fenstern. Compiler-Fenster und Trefferlisten von Suchfunktionen (Such-Fenster) können nicht per Tastatur gesteuert werden.


Voreingestellte Farben
Die Farbregister für die Farben 0 bis 15 werden auf Omikron Basic Standardwerte eingestellt. Die Farben 241 bis 255 werden auf die inversen Farbwerte eingestellt.

 

Programm-Menü

Dieses Menü enthält alle Befehle, die zum Debuggen und Compilieren des BASIC-Programms, sowie zur Erzeugung einer Omikron Basic Library notwendig sind:

Debuggen
Debuggersteuerung
Neues Speicherfenster
Neues Variablenfenster
Compilieren
Speichern & Compilieren
Compilieren & starten
Atari -> Mac
Aufräumen
Library erzeugen


Debuggen
Mit diesem Menüpunkt können Sie ein Programm im Debug-Modus compilieren und starten. Eine detaillierte Beschreibung des Debuggers finden Sie in Kapitel 11, Der Source Code Debugger.

Achtung: Ein mit 'Debuggen' gestartetes Programm kann während der Debuggingphase nicht editiert werden.


Debuggersteuerung
Wenn Sie ein Programm mit 'Debuggen' gestartet haben, öffnet sich automatisch eine kleine Dialogbox mit Steurungsknöpfen für den Debugger. Falls diese Dialogbox durch Klicken in ein anderes Fenster in den Hintergrund gerät, können Sie die Box mit diesem Menüpunkt jederzeit wieder nach vorne holen.


Neues Speicherfenster
Damit lässt sich ein Fenster öffnen, mit dem man sich den Inhalt des RAM-Speichers ansehen kann. Eine genaue Beschreibung der Speicherfenster finden Sie in Kapitel 11, Der Source Code Debugger.


Neues Variablenfenster
Dieser Menüpunkt funktioniert ähnlich wie der Vorherige, nur dass ein Variablenfenster geöffnet wird. Eine genaue Beschreibung der Variablenfenster finden Sie in Kapitel 11, Der Source Code Debugger.


Compilieren ...
Das Programm im obersten Fenster wird compiliert. Es wird ein neues Fenster geöffnet, in dem der Compiler seine Ausgaben macht.
Undefinierte bzw. unbenutzte Statements und Fehler werden aufgelistet. Nach Beendigung des Compiliervorgangs kann man die entsprechenden Programmstellen durch Anklicken im Compilerfenster anspringen. Die Compilierung kann durch [Esc] jederzeit unterbrochen werden. Der Inhalt des Compilerfensters kann als ASCII-Datei gespeichert werden (Menüpunkt Datei/Speichern als ...). Auch das Drucken des Fensterinhalts ist möglich. Dazu muß allerdings die Option 'Compiler-Fenster automatisch schließen' im Menü Modus/Editoreinstellungen ausgeschaltet sein oder ein Fehler auftreten, damit das Fenster nicht sofort nach der Beendigung des Compilierens wieder entfernt wird.


Speichern & compilieren (s.a Speichern, Compilieren ... )
Dies ist eine Zusammenfassung der Menüpunkte Datei/Speichern und Programm/Compilieren. Und zwar in genau dieser Reihenfolge.


Compilieren & starten (s.a. Compilieren ... )
Das Programm im obersten Fenster wird compiliert und der erzeugte Objectcode im gleichen Ordner gespeichert, in dem sich auch das Quell-Programm befindet. Danach wird das Programm sofort gestartet, ohne daß das Omikron Basic vorher beendet wird.
Bei der Namensgebung für das compilierte Programm geht Omikron Basic wie folgt vor:
Wenn das Quell-Programm eine Extension (z.B. ".BAS" oder ".BAK") besitzt, wird diese einfach abgeschnitten. Das compilierte Programm erhält also den gleichen Namen wie das Quell-Programm, jedoch ohne die Extension.
Wenn das Quell-Programm keine Extension besitzt, bekommt das compilierte Programm den Namen des Quell-Programms plus der Extension ".APP".


Atari -> Mac
Diesen Menüpunkt benötigen Sie nur, wenn Sie auf dem Atari entwickelte Programme auf den Mac portieren wollen. Wegen der zum Teil sehr gravierenden Unterschiede zwischen dem TOS und dem MacOS konnte das Omikron Basic 6 nicht hundertprozentig kompatibel zu den Vorgängerversionen für Atari-Computer gemacht werden. Siehe das Kapitel 'Unterschiede zur Atari-Version'. Es ist daher erforderlich, daß Sie an Ihrem Programm Änderungen vornehmen.

Wenn Sie diesen Menüpunkt anwählen, dann öffnet sich ein Such-Fenster, in dem alle Programmstellen markiert werden, an denen eventuell Anpassungen vorgenommen werden müssen. Durch Anklicken der einzelnen Positionen können Sie an die jeweilige Programmstelle springen und die notwendigen Änderungen gemäß den Hinweisen im Kapitel 'Unterschiede zur Atari-Version' vornehmen.


Aufräumen
Dieser Menüpunkt dient dazu, irgendwann mal deklarierte Variablen, Prozeduren oder Funktionen, die dann wieder gelöscht wurden und im Programm nicht mehr vorkommen, aus der Variablentabelle zu entfernen. Dadurch wird das *.BAS-Programm kürzer. An der Funktionsfähigkeit des Programms ändert sich dadurch aber nichts.
Diese Funktion sollte auf jedenfall aufgerufen werden, wenn Programmteile gelöscht wurden oder wenn eine Library entfernt wurde. Dadurch wird das Programm kürzer, die Sicherheit der Deklarationsüberwachung steigt und der Editor wird schneller, da die Variablentabelle nicht nach Karteileichen durchsucht werden muß. Da die Funktion nicht nur in der Variablentabelle sondern auch in der Variablenpointertabelle aufräumt, kann der Vorgang bei längeren Programmen und vielen Variablenleichen einige Zeit in Anspruch nehmen.
Da die Variablenleichen den Programmcode unnötig aufblähen und die Token-Suche verlangsamen, sollten Sie sich angewöhnen, diesen Menüpunkt in regelmäßigen Abständen aufzurufen. Je regelmäßiger Sie dies tun, desto schneller ist der Editor mit dem Aufruf fertig. Es empfiehlt sich, vor der Ausführung dieser Funktion Ihr Programm zur Sicherheit abzuspeichern.

Hinweis: Sie können das Aufräumen jederzeit mit einem Tastendruck abbrechen. Der Programmcode wird dadurch nicht beschädigt.


Library erzeugen
Dieser Menüpunkt ist nur anwählbar, wenn das oberste Fenster ein Programmfenster ist. Sie können diese Funktion benutzen, um aus dem Programm in dem obersten Fenster eine Library zu erzeugen. Dazu wird zunächst ein Dialog aufgerufen.

Dialogbox: Libraryeinstellungen
In der ersten Zeile kann man eine Versionsnummer oder einen beliebigen anderen Text angeben, der dann später nach dem Hinzuladen Ihrer Library hinter dem BASIC-Statement LIBRARY CODE und dem Librarynamen angezeigt wird.
Mit den beiden folgenden Ckeckboxen wird festgelegt, ob auch die Uhrzeit und das Datum der Libraryerstellung in der LIBRARY CODE Zeile angezeigt werden sollen. Dazu wird die aktuelle Systemzeit ihres Computers eingetragen.

Hinweis: Wenn Sie Ihrer Library ein anderes Erstellungsdatum geben möchten, können Sie dieses auch in der ersten Zeile in Klartext eintragen und die Datums-Checkbox abschalten.

Im unteren Teil der Dialogbox befinden sich noch zwei weitere Checkboxen, mit denen Sie den Library Maker veranlassen können, ein Protokoll im Library Maker Fenster auszugeben.
Wenn die erste Checkbox eingeschaltet ist, erhalten Sie eine Liste aller exportierten und importierten Symbole. Diese Liste können Sie zum Beispiel ausdrucken und als Grundlage für die Bedienungsanleitung zu Ihrer Library verwenden.
Wenn die zweite Checkbox angekreuzt ist, wird am Ende eine Liste aller unbenutzten Symbole ausgegeben. Diese ist eine gute Hilfe, um überflüssige Programmteile in der Library aufzuspüren.

Hinweis: In der Liste mit den unbenutzten Symbolen erscheinen auch solche, die Sie irgenwann mal deklariert, später aber wieder aus Ihrer Library entfernt haben. Um ein klares Bild zu erhalten, sollten Sie diese vorher mit dem Menüpukt 'Aufräumen' aus Ihrem Quellcode entfernen.

Eine genaue Erklärung, was eine Library ist und was Sie bei der Erstellung einer Library beachten müssen finden Sie in dem Kapitel
'Der Library Maker'.

 

2. Der Editor Inhalt | 4. Grundlagen

Support | Bestellen | Start | Home: http://www.berkhan.de


© 1997-2001 Berkhan-Software