Tasten & Command Beschreibung
=============================


Command-Gruppe "VAR": Variable
==============================

Mit den VAR-Commands kann man eine ganze Menge anstellen.
Nicht nur für skript-internen Einsatz wie bei den LOOP-Commands gezeigt
(s. Kapitel "BTCH"), sondern es lassen sich gar Berechnungen in Excel
automatisieren (DM in Euro u.s.w.) u.v.m.


/VAR.>.CLIP ...........: Kopiert die Variable VAR in die Zwischenablage (clip=VAR)
/VAR.<.CLIP [t] .......: Weist der Variablen VAR einen in der Zwischenablage befindlichen Wert zu (VAR=clip),
                         optional: ignoriere Tausender-Trennzeichen <t>
------------------------
Mit Hilfe dieser Commands wäre z.B. eine Berechnung in Excel möglich.
Eine mögliche Vorgehensweise:

1. Ein Zelleninhalt von Excel wird in die Zwischenablage kopiert
2. Der Inhalt der Zwischenablage der Variablen zugewiesen
3. Die Berechnung der Variablen durchgeführt
4. Die Variable an eine Excel-Zelle gesendet

Beispiel:

{/BTCH.EXPLICIT}
{HOLD.CONTROL}c
{/VAR.<.CLIP}
{/VAR.MUL 0,51129188}
{KEY.ESC}{KEY.RIGHT}
{/VAR.SEND,}
{KEY.LEFT}{KEY.DOWN}

Dieses Skript rechnet den Wert einer Excel-Zelle von DM in Euro um,
schreibt das Ergebnis in die rechts danebenliegende Zelle und bewegt
den Cursor in die Folge-Zelle der DM-Spalte.

--> Hinweis
Der Command zum Kopieren der VAR in die Zw´ablage kann zwar erkennen, ob es ggf. ein Komma in
einen Dezimal-Punkt wandeln muß (intern rechnet das System mit Punkt), bei einem Tausender-
Trennpunkt wie "1.234,56" wird es allerdings schwieriger.
Wird für den <t>-Parameter "." angegeben, so ignoriert RK den Punkt, indem es den Text zuvor in
"1234,56" wandelt und kann ihn anschließend der VAR in Form des Wertes 1234.56 übergeben.

Beispiel: {/VAR.<.CLIP .}


/VAR.<.MCI mod ........: Weist Variablen VAR MCI Status-Wert zu
------------------------
Dieser Command wurde für die MCI-Commands eingerichtet (siehe dort), um verschiedene
Zustände des CD-Players in der VAR (temporär) speichern zu können.

=0: VAR = Aktueller Titel
=1: VAR = Gesamt-Anzahl Titel der inliegenden CD
=2: VAR = CD wird z.Zt. abgespielt (VAR=1) bzw. wird nicht abgespielt (VAR=0)


/VAR.<.PROF mod .......: Weist Variablen VAR Wert der (temp) Prof.Einst. zu
------------------------
Dieser Command wurde für die Commands ME.PROF.TMP eingerichtet (siehe dort), um die (temporären)
Einstellungen des aktuellen Profils ermitteln und rechnerisch ändern zu können.
Da die Spalten- und Zeilen-Anzahl und die Knopf-Breiten und -Höhen änderbar sind, gestattet
dieser Command auch jeweils die Speicherung (nicht auf Disk) dieser Werte des aktuell eingestellten
Profils. Liegt bereits eine temopräre Einstellung für den angegebenen Parameter vor, so wird diese
auch verwendet. Ansonsten wird der im Bearbeiten > Profil Dialog eingestellte Grundwert als
Ausgangswert genommen.

=0: VAR = Spalten-Anzahl des aktuellen Profils
=1: VAR = Zeilen-Anzahl  des aktuellen Profils
=2: VAR = Knopf-Breite   des aktuellen Profils
=3: VAR = Knopf-Höhe     des aktuellen Profils

Beispiel: {/VAR.<.PROF 0}


/VAR.<.WIN ............: Speichert die Nummer des aktiven Fensters in der akt. VAR für spätere Aktivierung
/VAR.>.WIN ............: Aktiviert das Fenster, deren Nummer zuvor in der akt. VAR gespeichert wurde
------------------------

Beispiel-Skript:

{/BTCH.EXPLICIT}
{/VAR.<.WIN}
{/APP.ACTIVATION.OFF}
{/CODE.KEY 91}
{KEY.UP}{KEY.UP}{KEY.UP}{KEY.UP}{KEY.UP}{KEY.UP}
{KEY.RIGHT}
{KEY.DOWN}{KEY.DOWN}
{KEY.ENTER}
{/VAR.>.WIN}

Dieses Beispiel öffnet das Drucker-Fenster (sofern das Start-Menü nicht abweichend
strukturiert ist) und aktiviert anschließend das Fenster, welches vor dem Aufruf des
Skriptes aktiv war.

--> Beachte!
Eine Fenster-Nummer wird durch Windows dynamisch zugeordnet. Ein erneutes Öffnen eines
zuvor geschlossenen Fensters führt i.d.R. dazu, daß es eine neue Fenster-Nummer erhält. 


/VAR.SET val ..........: Weist der Variablen VAR den Wert <val> zu (VAR=val)
/VAR.ADD val ..........: Addiert zur Variablen VAR den Wert <val> (VAR=VAR+val)
/VAR.SUB val ..........: Subtrahiert von der Variablen VAR den Wert <val> (VAR=VAR-val)
/VAR.MUL val ..........: Multipliziert die Variable VAR mit dem Wert <val> (VAR=VAR*val)
/VAR.DIV val ..........: Dividiert die Variable VAR durch den Wert <val> (VAR=VAR/val)
------------------------
Diese Commands dienen der Zuweisung und Berechnungen der Variablen.

Beispiel: {/VAR.SET 5}{/VAR.ADD 1.5}

Der Variablen-Wert beträgt nach Ausführung dieser Command-Folge 6,5.


/VAR.CLR ..............: Löscht die Variable VAR (VAR=0)
------------------------

Beispiel: {/VAR.CLR}


/VAR.CLP.SEARCH str ...: Sucht <str> in Zw´ablage und setzt VAR auf die 1ste gefundene Position
------------------------

Beispiel: {/VAR.CLP.SEARCH hello}

Wenn Zw´ablage = "say hello", dann wird VAR auf den Wert 5 gesetzt.


/VAR.ASK ..............: Weist der Variablen VAR einen während der Ausführung festzulegenden Wert zu
------------------------

Beispiel: {/VAR.ASK}


/VAR.FLD.ASK ..........: Öffnet Dialog um aktuelles Feld-Element und Feld-Werte zu ändern
/VAR.FLD.CHANGE elm ...: Gestattet es die aktuelle Feld- Element- Nr. <elm> (element, 1-10) zu ändern
/VAR.FLD.CLR ..........: Löscht alle Feld-Elemente und ändert setzt die aktuelle Feld-Element-Nr. auf 1
------------------------
Ab v7.7 wurde RK dadurch erweitert, daß es nun 10 anstatt vorher eine Variable handhaben kann.
Alle normalen VAR-Commands beziehen sich auf das Feld-Element, das durch ASK oder CHANGE
ausgewählt wurde. Zu Beginn ist der Vorgabewert Element = 1.
Z.B. wird der CLEAR-Command das Feld-Element 1 löschen, wenn Element 1 das aktuell ausge-
wählte Feld-Element ist. Um Element 3 zu löschen muß zuvor das aktuelle Feld-Element mittels
ASK oder CHANGE auf 3 gesetzt werden. Das selbe gilt für VAR.ADD u.s.w.

Beispiel: {/VAR.FLD.ASK}
Beispiel: {/VAR.FLD.CHANGE 2}
Beispiel: {/VAR.FLD.CLR}


/VAR.FLD.ADD elm ......: Addiert VAR <elm> (Element, 1-10) zur aktuellen VAR (VAR=VAR+VAR<elm>)
/VAR.FLD.SUB elm ......: Subtrahiert von aktueller VAR die Var. VAR <elm> (1-10) (VAR=VAR-VAR<elm>)
/VAR.FLD.MUL elm ......: Multipliziert aktuelle VAR mit VAR <elm> (1-10) (VAR=VAR*VAR<elm>)
/VAR.FLD.DIV elm ......: Dividiert aktuelle VAR durch VAR <elm> (element, 1-10) (VAR=VAR/VAR<elm>)
------------------------

Beispiel:

{/BTCH.EXPLICIT}
{/VAR.FLD.CHANGE 1}
{/VAR.SET 55}
{/VAR.FLD.CHANGE 2}
{/VAR.SET 17}
{/VAR.FLD.CHANGE 1}
{/VAR.FLD.SUB 2}
{/VAR.VIEW}

Der VIEW-Command zeigt, das Feld-Element 1 nun den Wert 38 (55-17) aufweist.
Dieses Beispiel ist sicher kein nützliches Skript und soll nur als Demo dienen.


/VAR.FLD.MRG e1,e2 ....: Verbindet Feld-Elemente e1 & e2, durch Punkt getrennt (VAR=VAR<e1>.VAR<e2>)
------------------------

Beispiel: {/VAR.FLD.MRG 1,2}

Ist VAR-1 = 12 und VAR-2 = 34, so erhält das aktuelle Feld-Element den Wert 12.34 bzw. 12,34.


/VAR.FLD.SWAP elm .....: Tauscht den aktuellen VAR-Wert mit VAR <elm> (1-10) aus (VAR=VAR<elm>, VAR<elm>=VAR)
------------------------
Dies tauscht also die Inhalte zweier Feld-Elemente aus.

Beispiel: {/VAR.FLD.SWAP 2}

Basierend auf dem oberen Beispiel ist nun Feld-Element 1 = 17 und 2 = 38.

--> Beachte
Im Profil Script-Calculator wurde regen Gebrauch dieser Commands gemacht bzw. haben diesen
erst ermöglicht. Die bekannten Funktionen M+ MR etc. bedienen sich der Feld-Speicher.


/VAR.MOD mod ..........: Modifiziert VAR in verschiedenen Modi
------------------------
Hiermit kann VAR entsprechend der Parameter-Angabe <mod> (0-3) verschiedenartig modifiziert werden:

=0: absolut: aus -1 wird 1, 1 bleibt 1
=1: x-1    : aus -1 wird 1, aus 1 wird -1
=2: integer: aus 1,23 wird 1
=3: nur dez: aus 1,23 wird 23

Beispiel: {/VAR.MOD 2}


/VAR.RND [min,max] ....: Weist der Variablen eine Zufallszahl im Bereich <min> und <max> zu (VAR=RND) (Vorg. VAR1/2)
------------------------

Beispiel:
{/VAR.RND 1,5}{/VAR.SEND}

Dieses Beispiel gibt eine zufällige Zahl zwischen 1 und 5 aus.

-> Hinweis
Ab v8.1.4 kann der Parameter weggelassen werden, um statt dessen die Vriablen VAR1/2 einzusetzen.


/VAR.SEND .............: Sendet die Vaiable VAR als Zeichenkette
------------------------
Dieser Command dient der Ausgabe der Variablen (z.B. Ergebnis einer Berechnung).

Beispiel: {/VAR.SEND}


/VAR.SEND, ............: Sendet die Variable VAR als Zeichenkette im Komma-Format (1,5)
/VAR.>.CLIP, ..........: Kopiert die Variable VAR im Komma-Format in die Zw´ablage (clip=VAR)
------------------------
Für die deutsche Standard-Einstellung der Systemsteuerung wurde diese komma-
unterstützenden Commands implementiert (s. obiges Beispiel).


/VAR.SND.FORMAT str ...: Sendet Variable im Format <str>
/VAR.CLP.FORMAT str ...: Kopiert Variable im Format <str> in die Zw´ablage
------------------------
Mit diesen Commands sind formatierte Ausgaben möglich.

Beispiel: {/VAR.SND.FORMAT #,##0.00}

Die Ausgabe würde sich im folgenden Format präsentieren: 1.234,56


/VAR.VIEW .............: Gibt den Wert von VAR im internen Textbetrachter aus
------------------------

Beispiel: {/VAR.VIEW}