 1 
01.09.2002 22:26:13
Sorry - English description will comming soon.

Script-Calculator

Der Script-Calculator basiert - wie eigentlich schon der Name sagt - auf der Script-Sprache (= Command - Ansammlung) von RK.

Die Knöpfe des Profils unterscheiden sich in nichts von denen anderer Profile. Sie können genauso geöffnet, editiert und auf andere Positionen transportiert werden. Unbenötigte Funktionen können entfernt, andere Konstantenberechnungen hinzugefügt werden, ähnlich der Knöpfe "k>p" / "k<p" (PS > KW), die hier stellvertretend für solche Berechnungen stehen.

Statt Script-Calculator könnte das Profil genau so gut auch Clip-Calculator heißen, denn es basiert komplett auf der Zwischenablage.
Mit den Zahlen- und Operator-Knöpfen schreibt man etwas in die Zwischenablage hinein (genauer: man hängt es an), dessen in Listenform vorliegender Inhalt dann anschließend durch den CLIP.CALC-Command berechnet wird. Dieser befindet sich u.a. unter dem Gleichheitszeichen-Knopf.
Zusätzlich wird das Ergebnis in die RK-Variable VAR geschrieben, so daß das Ergebnis in anderen Skripts weiterverarbeitet werden kann.
Ab v7.7.61 ist ClipCalc ein eigenständiges Programm, das sich im App-Ordner von RK befindet.
Wird es mit dem Parameter "1" gestartet, erfolgt zusätzlich eine Durchschnitts-Berechnung (sofern möglich).

Das als CMM bezeichnete Ausgabe-Display ist nichts weiter als ein einfacher Monitor für die Zwischenablage, der zudem auch als eigenständiger Prozeß gestartet wird. Das Programm heißt ClipMonMini und befindet sich im App-Ordner von RK. Deshalb verschwindet es auch nicht vom Bildschirm, wenn RK beendet wird, sondern muß separat ausgeklickt werden.
Lediglich ein paar geringfügige Anpassungen wurden für den Calculator gemacht, die wirksam werden, wenn CMM durch den Command ME.CLIP.MON 2, also mit dem Parameter "2", gestartet wird.  So besitzt die Schrift für die formatierte Ausgabe eine feste Breite und es wird dafür gesorgt, daß zur Darstellung des Ergebnisses die unterste Zeile immer sichtbar ist. Ab v7.7.62 wird außerdem noch ein Strich-Cursor dargestellt.
Wird CMM beendet, so kann es durch einen Klick auf den "View"-Knopf wieder geöffnet werden. Ist CMM lediglich minimiert, so genügt ein Klick auf selbigen Knopf mit der rechten Maustaste.

Der Script-Calculator ist aufgrund der Vielzahl verfügbarer Rechner sicher nicht das, nachdem die Menschheit geschrien hat. Ich verweise an dieser Stelle z.B. auf meinen Euromat, der einiges mehr kann. Doch war nicht nur die Umsetzung eine interessante Problemstellung (auch hinsichtlich dessen, einmal ganz neue Wege zu beschreiten), sondern er veranschaulicht auch das Potential, das in der Skript-Sprache von RK steckt (hoffe ich zumindest).
Schaut man sich die Knopf-Belegungen z.B. mittels des Profil-Explorers einmal genauer an, kann man sicher eine Menge über die CLIP- und VAR-Commands lernen. Auch das Verstehen der Memory-Knöpfe kommt einem beim Entwickeln komplexer Skripte sicher zu gute. Die vielen CLIP- und VAR Commands dienen also nicht nur diesem Calculator, sondern vielmehr Zeichenketten - Manipulationen in Textverarbeitungen, Excel - Umrechnungs - Automatismen u.v.m.

Der CLIP.TXT.FORMAT.DO Command, der sich in fast allen Knöpfen des Profils befindet, formatiert die Ausgabe des CMM, entsprechend der letzten Einstellung per CLIP.TXT.FORMAT.SET und CLIP.TXT.FORMAT.SYM.
Bei diesem Formatierungs-Prozeß handelt es sich ebenfalls um eine eigenständige Anwendung, indem das im App - Ordner befindliche Programm ClipFormat mit entsprechendem Parameter (-1, 0, 1, 2 etc.) gestartet wird.
Der .SET Command legt die Nachkommastellen fest, wogegen der .SYM Command das Hinzufügen eines (bei Bedarf auch aus mehreren Zeichen bestehenden) Währungsymbols gestattet.

Ab v7.7.7 ist ClipCalc dahingehend erweitert worden, daß es in der Lage ist, Stunden-/Minuten-Berechnungen durchzuführen. Findet ClipCalc einen Doppelpunkt in der Kalkulations-Liste vor (= Trennzeichen zwischen Stunde und Minute), geht es automatisch davon aus, daß es sich hier um eine Zeit-Berechnung handelt.
Um die Eingabe zu vereinfachen, gibt es nun 2 zusätzliche Funktions-Knöpfe (T:on/T:off), mit denen die Zeit-Kalkulation ein- bzw. ausgeschaltet wird. Bei eingeschalteter Funktion wird bei Betätigung des Punkt-Knopfes ein Doppelpunkt erzeugt. Weitergehende Erklärungen siehe Textende.
Alternativ kann ClipCalc auch mit dem Parameter "2" gestartet werden. Dadurch werden Punkte und Kommas in Doppelpunkte gewandelt und anschließend eine Zeit-Berechnung durchgeführt. Der Gleichheitszeichen-Knopf auf dem Calculator-Profil ist in der 2. Ebene (rechte Maustaste) mit diesem Parameter ausgestattet. Wie erwähnt ist dies aber nur erforderlich, wenn noch keine Doppelpunkte in der Kalkulations-Liste enthalten sind.

Abschließend noch ein interessanter Test, der nach dem oben beschriebenen Verfahren verständlich sein müßte:
Schreiben Sie in Excel ein paar Zahlen untereinander in eine Spalte. Sie können gerne Kommas verwenden.
Markieren Sie diese Zellen und wählen dann in Excel "Kopieren" an.
Sofort erscheint die Zahlen-Kolonne im CMM. Ist ja auch kein Wunder, denn CMM ist ja lediglich ein Clip-Monitor.
Jetzt drücken Sie im Script-Calculator auf den Gleichheitszeichen-Knopf und die Zahlen-Kolonne wird summiert (man lerne: kein Operator = Plus-Operator). Für manche Fälle ist dies vielleicht komfortabler, als würde man für ein kurzes Zwischenergebnis extra ein Summenfeld in Excel einrichten. Selbstverständlich funktioniert dies auch mit anderen Programmen.
Ich denke, das Beispiel hat gezeigt, wie sich die Sache verhält und welche Möglichkeiten sich daraus bieten.
Ich wünsche viel Spaß und Erfolg beim Probieren.

Wußten Sie schon...?
Warum öffnet sich CMM beim Aufruf des Script-Calculators automatisch?
Es wird der "View"-Knopf des Profils ausgelöst, und das deswegen, weil er den Command ME.AUTOEXECUTE beinhaltet.

Wußten Sie schon...?
Um diesen Text zu editieren, klicken Sie dieses Fenster an und drücken Strg+L. Bei weißem Hintergrund können Sie in den Text hineinschreiben.

Für den Experten...
Ein Beispiele für eine IF...Then Konstruktion.
Der Time-Calculator arbeitet also wie oben beschrieben mit Doppelpunkten anstelle von Dezimalpunkten.
Bei eingeschalteter Funktion (T:on) wird beim Klick auf den Punkt-Knopf ein Doppelpunkt ausgegeben.
Wie wurde dies realisiert?
Klicken Sie zunächst den "View"-Knopf um die Einstellungen zu resetten.
Dann klicken Sie den "VAR"-Knopf um sich davon zu überzeugen, daß  VAR 1-10 auf "0" stehen.
Klicken Sie auf den "Punkt"-Knopf um sich davon zu überzeugen, daß auch ein Punkt ausgegeben wird.
Nun klicken Sie auf "T:on" um den Time-Calculator einzuschalten.
Nun klicken Sie wieder auf den "VAR"-Knopf. Wie Sie sehen steht unter VAR-5 nun der Wert "1". Dieser Wert wurde bei Betätigung des "T:on"-Knopfes in VAR-5 geschrieben.
Klicken Sie nun erneut auf den "Punkt"-Knopf. Wie Sie sehen wird nun ein Doppelpunkt ausgegeben.
Schauen Sie sich die Belegung des Punkt-Knopfes einmal an:
Zunächst wird durch den 1. SWAP-Command die aktuelle VAR auf 5 geschaltet.
Dann folgt eine Abfrage, ob die aktuelle VAR den Wert "1" besitzt (GOIF.VAR=).
Ist dies nicht der Fall, so wird das Skript fortgesetzt, indem wieder die ursprüngliche VAR als die Aktuelle deklariert wird, dann ein Punkt erzeugt wird und schließlich das Skript beendet wird.
Ist in der VAR jedoch der Wert "1" enthalten, so wird das Skript an der Sprung-Marke (GO-TAG) "time" fortgesetzt. Hier passiert nun ähnliches wie oben, es wird aber anstelle des Punktes ein Doppelpunkt ausgegeben.
