6.5 ARexx
Hinweis:
Der ARexx-Port steht Ihnen nur unter AmigaOS zur Verfügung. Bei anderen Betriebsystemen entfällt dieser Teil.
Sollten Sie mit der grundsätzlichen Funktion von ARexx nicht vertraut sein, so lesen Sie bitte zunächst das ARexx Handbuch, welches mit Ihrem Amiga geliefert wurde, oder das sich auf der Betriebsystem-CD befindet.
Mit dem ARexx-Port von DataM II steht Ihnen unter AmigaOS eine mächtige Schnittstelle zur Makroprogrammierung und zur Interprozesskomunikation zur Verfügung. Sie können somit die Funktionalität von DataM II durch Eigenentwicklungen, oder Programmsequenzen von anderen gezielt erweitern.
Der ARexx-Port von DataM II ist unter dem Namen DataM_II.x zu erreichen, wobei das x durch die Instanznummer zu ersetzen ist. Starten Sie DataM II nur einmal, so ist der Name daher DataM_II.1. Starten Sie DataM II erneut, ohne das Programm vorher zu beenden (so, daß DataM II jetzt zweimal läuft), so ist der neue Prozess unter DataM_II.2 zu erreichen.
Für fast jedes ARexx-Kommando benötigen Sie einen Objekthandler, der eine Zuordnung des Kommandos zu einem Objekt (z.B. eine Tabelle oder ein Blatt) erlaubt. Sie erhalten einen solchen Handler mit den Kommandos FINDOBJECT oder GETACTIVE. Benutzen Sie das RESULT dieser Kommandos als Parameter für weitere Funktionen.
DataM II kennt folgende Kommandos:
- FINDOBJECT
- GETACTIVE
- GETATTR
- GETBLOCK
- GETCONTENT
- GOTO
- LOCK
- OBJECTNAME
- OBJETCTTYPE
- QUERY
- REDRAW
- REQUESTCHOICE
- REQUESTCOLOR
- REQUESTNOTIFY
- REQUESTSTRING
- SETATTR
- SETBLOCK
- SETCONTENT
- UNLOCK
6.5.5 Erklärung der einzelnen Kommandos
Mit diesem Kommando erhalten Sie in der Variable RESULT einen Objekthandler für das aktive Objekt. Wenn Sie als Parameter TYPE einen Objekttyp angeben, so erhalten Sie nur dann einen gültigen Zeiger, wenn das aktive Objekt vom gewünschten Typ ist. Erhalten Sie 0 zurück, dann gibt es kein aktives Objekt, oder das aktive Objekt ist nicht vom verlangten Typ.
Mit diesem Kommando suchen Sie einen Handler auf ein bestimmtes Objekt. Geben Sie den Parameter NAME nicht an, dann entspricht das Kommando dem Kommando GETACTIVE. Geben Sie den Parameter NAME an, so wird nach einem Objekt mit dem spezifizierten Namen gesucht. Im Falle des Erfolgs erhalten Sie in der Variable RESULT einen Handler auf das gesuchte Objekt, andernfalls 0. Geben Sie als Parameter TYPE einen gewünschten Typ an, so wird nur nach Objekten diesen Typs gesucht.
GETCONTENT OBJECT/A/N,COLUMN/N,LINE/N,I=INTERPRET/S,R=RENDERED/S
Mit diesem Kommando erhalten Sie in der Variable RESULT den Inhalt einer Zelle eines Tabellenblattes. Der Parameter OBJECT muß der Handler zu einem Objekt des Typs Tabelle oder Blatt sein. Handelt es sich um einen Handler einer Tabelle, so bezieht sich das Kommando auf das aktive Blatt dieser Tabelle. Mit den Parametern COLUMN und LINE spezifizieren Sie die Spalte, respektive die Zeile. Geben Sie keine weiteren Parameter an, so erhalten Sie den Inhalt, wie er in der Eingabezeile angezeigt wird. Geben Sie das Schlüsselwort INTERPRET an, so wird zunächst die Formel der Zelle (soweit eine vorhanden ist) ausgewertet. Wird das Schlüsselwort RENDERED angegeben, so wird der Text in der Form zurückgegeben, wie er im Ausdruck erscheinen würde; so werden in diesem Fall Prefix und Postfix hinzugefügt, und ggf. der Dezimalpunkt durch ein Komma ersetzt.
SETCONTENT OBJECT/A/N,COLUMN/N/K,LINE/N/K,CONTENT/A/F
Mit diesem Kommando wird der Inhalt einer Zelle eines Tabellenblattes verändert. Der Parameter OBJECT muß der Handler zu einem Objekt des Typs Tabelle oder Blatt sein. Handelt es sich um einen Handler einer Tabelle, so bezieht sich das Kommando auf das aktive Blatt dieser Tabelle. Mit den Parametern COLUMN und LINE spezifizieren Sie die Spalte, respektive die Zeile. Werden diese Parameter nicht angegeben, so wird die aktive Zelle verändert. Der Parameter CONTENT muß den neuen Inhalt der Zelle enthalten. Dieser Parameter wird genauso behandelt, als ob er in der Eingabezeile eingegeben wurde.
GOTO OBJECT/A/N,COLUMN/A/N,LINE/A/N,RELATIVE/S
Bewegt den Cursor des als Parameter OBJECT übergebenen Objekts an die Koordinaten, die durch die Parameter COLUMN (Spalte = x) und LINE (Zeile = y) bestimmt werden. Wird zusätzlich der Parameter RELATIVE angegeben, so werden sie Koordinaten relativ zu der derzeitigen Cursorposition ausgewertet.
REQUESTCHOICE TITLE/A,BODY/A,CHOICES/A
Öffnet ein Fenster, welches dem Benutzer die Wahl zwischen verschiedenen Möglichkeiten läßt. Der Parameter TITLE gibt den Fenstertitel an. Der Parameter BODY gibt den Text des Fensters an. Der Parameter CHOICES gibt die Auswahlmöglichkeiten an. Jede Wahlmöglichkeit wird durch einen senkrechten Strich getrennt ("|"). Als Variable RESULT wird die Nummer der Wahl des Benutzers zurück gegeben. Die vorgegebenen Möglichkeiten werden von links nach rechts durchnummeriert, mit der Ausnahme, daß die letzte Möglichkeit oder das Schließsymbol des Fensters der 0 entspricht.
Öffnet ein Fenster, in dem dem Benutzer eine Information, übergeben als Parameter PROMPT, angezeigt wird. Der Benutzer kann diese Information nur bestätigen.
Erfragt den Status von DataM II. Als PARAMETER können folgende Werte genutzt werden:
LANGUAGE
Erfragt die Sprache die DataM II zur Zeit benutzt.
REDRAW OBJECT/A/N,CURSOR/S,ALL/S
Zeichnet das Objekt neu, dessen Handler als Parameter übergeben wird. Wirk kein weiterer Parameter übergeben, so versucht DataM II zu entscheiden, welche Teile des Objekts neu gezeichnet werden müssen. Wird der Parameter CURSOR übergeben, so wird nur der aktive Teil des Objekts (z.B. die Zelle eines Tabellenblatts unter dem Cursor) neu gezeichnet. Wird der Parameter ALL angegeben, so wird das komplette Objekt neu gezeichnet.
OBJECTTYPE OBJECT/A/N,NUMERIC/S
Erfragt den Typ eines Objekts, dessen Handler als Parameter übergeben wird. Wird der Parameter NUMERIC angegeben erhalten Sie die Typnummer, ansonsten den Typnamen.
Erfragt den Namen des Objekts, dessen Handler als Parameter übergeben wird.
Bestimmt den Wert des mit dem Parameter ATTR festgelegten Attributs des gegebenen Objekts. Die Möglichen Attribute können dem Abschnitt "Attribute" entnommen werden.
SETATTR OBJECT/A/N,ATTR/A,VALUE/A/F
Setzt den Wert des mit dem Parameter ATTR festgelegten Attributs des gegebenen Objekts auf den mit VALUE festgelegten Wert. Die Möglichen Attribute können dem Abschnitt "Attribute" entnommen werden.
Verriegelt das angegebene Objekt, so daß keine Benutzereingaben mehr möglich sind. Bei dem gegebenen Objekt muß es sich um ein Fenster handeln. Wird der Parameter ALL angegeben, so werden alle offenen Fenster gesperrt.
Entriegelt das angegebene Objekt, so daß wieder Benutzereingaben möglich sind. Bei dem gegebenen Objekt muß es sich um ein Fenster handeln. Wird der Parameter ALL angegeben, so werden alle offenen Fenster entsperrt.
Öffnet ein Fenster, daß den Benutzer auffordert, eine Farbe zu wählen. Mit dem Parameter TITLE kann der Fenstertitel festgelegt werden. Der Parameter BODY legt einen Text fest, der über der Farbliste angezeigt wird. Mit dem Parameter COLOR kann eine Farbe festgelegt werden, die zu Beginn angewählt ist.
REQUESTSTRING TITLE,BODY,CONTENT
Öffnet ein Fenster, daß den Benutzer zu einer Texteingabe auffordert. Mit dem Parameter TITLE kann der Fenstertitel festgelegt werden. Der Parameter BODY legt einen Text fest, der über dem Texteingabefeld angezeigt wird. Der Parameter CONTENT legt den Inhalt des Texteingabefeldes zu beginn fest.
Erfragt den markierten Bereich (Block) des gegebenen Objekts. Das Ergebnis ist ein String mit zwei (z.B. "8 7") oder vier (z.B. "3 2 4 7") Zahlen. Werden nur zwei Zahlen zurückgegeben, so ist kein Block markiert. Die Werte beschreiben die Cursorposition. Werden vier Zahlen zurückgegeben, so beschreiben die ersten beiden die Koordinaten der linken, oberen Ecke des Blocks, die letzteren die untere, rechte Ecke des Blocks. Die Werte können leicht mit der Funktion WORD() des ARexx-Interpreters getrennt werden.
SETBLOCK OBJECT/A/N,X1/N,Y1/N,X2/N,Y2/N,OFF/S
Markiert im gegebenen Objekt eine Block, oder hebt eine bestehende Markierung auf. Die obere, linke Ecke des Blocks wird durch die Parameter X1 und Y1 bestimmt, die untere, rechte Ecke mit den Parametern X2 und Y2. Wird das Schlüsselwort OFF angegeben, so wird eine evtl. bestehende Markierung aufgehoben.
6.5.6 Zulässige Typenbezeichner und -nummern
Derzeit kennt DataM II folgende Typen:
| Typnummer | Typname | Beschreibung |
| 1 | PROJECT | Projekt |
| 2 | TABLE | Tabelle |
| 3 | SHEET | Blatt |
Der folgenden Tabelle können die derzeit bekannten Attribute entnommen werden.
| Objektart | Attribut | Wertebereich | Beschreibung |
| Blatt (Block oder Bereich) | BACKGROUND | Farbname | Hintergrundfarbe des markierten Bereichs oder der aktiven Zelle |
| FOREGROUND | Farbname | Vordergrundfarbe des markierten Bereichs oder der aktiven Zelle | |
| FRAMECOLOR | Farbname | Rahmenfarbe des markierten Bereichs oder der aktiven Zelle | |
| FONTNAME | Fontname | Schriftart des markierten Bereichs oder der aktiven Zelle | |
| FONTSIZE | Fontgröße in Punkten | Schriftgröße des markierten Bereichs oder der aktiven Zelle | |
| FRAMELEFT | Dicke in Punkten | Dicke des linken Rahmens des markierten Bereichs oder der aktiven Zelle | |
| FRAMERIGHT | Dicke in Punkten | Dicke des rechten Rahmens des markierten Bereichs oder der aktiven Zelle | |
| FRAMETOP | Dicke in Punkten | Dicke des oberen Rahmens des markierten Bereichs oder der aktiven Zelle | |
| FRAMEBOTTOM | Dicke in Punkten | Dicke des unteren Rahmens des markierten Bereichs oder der aktiven Zelle | |
| HALIGN | LEFT, CENTER, RIGHT | Horizontale Ausrichtung des markierten Bereichs oder der aktiven Zelle | |
| VALIGN | TOP, CENTER, BOTTOM | Vertikale Ausrichtung des markierten Bereichs oder der aktiven Zelle | |
| TYPE | TEXT, NUMBER, DATE, TIME, FILE | Zelltyp des markierten Bereichs oder der aktiven Zelle | |
| Blatt (Block oder Bereich; nur Text) | MAXLEN | ||
| Blatt (Block oder Bereich; nur Zahlen) | DIGITS | ||
| DECIMALS | |||
| SEPERATOR | |||
| KOMMA | |||
| LEADING | |||
| SIGN | ALLWAYS, NEVER, NEGATIVE, UNDEFINED | ||
| PREFIX | |||
| POSTFIX | |||
| Blatt (Block oder Bereich; nur Datum oder Zeit) | FORMAT | ||
| Blatt (Block oder Bereich; nur externe Dateien) | SHOW | ||