FG Mit der Pro-Lizenz können auch eigene Funktionen mit beliebigen Parametern definiert und verwendet werden.
Um eine Funktion zu definieren, wird sie als Unterprogramm angelegt. Dieses beginnt mit der Marke
::Funktion.XX(Wert1;Wert2)
wobei XX für den Funktionsnamen und Wert1 und Wert2 für die Parameter stehen. Diese Namen können natürlich beliebig gewählt werden. Das Unterprogramm kann die übergebenen Werte in den Parameter-Variablen (hier [Wert1] und [Wert2]) verwenden.
Sollten im Hauptprogramm bereits Variablen dieses Namens vorkommen, könnte es zu Nebeneffekten kommen. Aus diesem Grund sollte in der Marke der Funktion die Option "Lokale Variablen" angekreuzt werden. Hierdurch werden die Variablen des Hauptskripts nicht berührt, da die hier verwendeten Variablen nur lokale Gültigkeit haben. Variablen des aufrufenden Skripts können dann mit [cX.Muttervariablen.X] erreicht werden.
Abgeschlossen wird das Unterprogramm mit einem Beende/Zurück-Befehl. Das Ergebnis der Funktion wird dort als Rückgabewert angegeben. Aus Kompatibilitätsgründen kann es auch in die Variable [cX.Funktion.XX] eingesetzt werden, wobei XX wieder für den Funktionsnamen steht.
Beim Aufruf der Funktion können einzelne Parameter auch weggelassen werden, wodurch der Inhalt der entsprechenden Variablen innerhalb der Funktion dann leer ist.
Wahlweise können für solche optionalen Parameter auch Standardwerte angegeben werden. Hierzu wird in der Marke einfach Variablenname=Standardwert geschrieben, in obigem Beispiel etwa Wert2=1. Wird dieser Parameter beim Aufruf nicht mit angegeben, ist der Inhalt von [Wert2] innerhalb der Funktion dann 1.
Die Verwendung einer so deklarierten Funktion erfolgt wie bei anderen Platzhaltern auch in beliebigen Ausdrücken, in denen
[cX.Funktion.XX(Parameter1;Parameter2;...;ParameterN)]
eingesetzt wird. Die Parameterliste ist immer mit Semikolons zu trennen.
Wird im Marke-Befehl ein Kommentar eingetragen, erscheint dieser als Funktionsbeschreibung in der Variablenauswahl. Andernfalls wird der Text des ggf. vor der Marke stehenden **Kommentar-Befehls hierfür verwendet.
Ein Beispiel:
Es soll eine Funktion erstellt werden, die den Mittelwert von zwei Werten errechnet.
Um die Funktion namens "Mittelwert" mit den Eingabeparametern "Wert1" und "Wert2" anzulegen, wird folgende Marke definiert:
:: Funktion.Mittelwert(Wert1;Wert2)
Die folgenden Zeilen berechnen nun das Ergebnis der Funktion aus den beiden Werten und geben das Resultat im Beende/Zurück-Befehl zurück.
:: Funktion.Mittelwert(Wert1;Wert2) *** Mittelwert der beiden Parameter berechnen *** Ergebnis zurückgeben Zurück (Ergebnis: '([Wert1]+[Wert2]) / 2', berechnen) |
Die so deklarierte Funktion kann nun im Skript beliebig eingesetzt werden. Um etwa den Mittelwert von 2 und 4 zu ermitteln, kann der folgende Platzhalter verwendet werden:
[cX.Funktion.Mittelwert(2;4)]
Variable Parameterliste FG
Obwohl in der Funktionsmarke üblicherweise die zu übergebenden Parameter vorgegeben werden, können beim Aufruf unabhängig davon beliebig viele Parameter übergeben werden. Die Anzahl der übergebenen Parameter steht innerhalb der Funktion in
[cX.Parameter.Anzahl]
Die Parameter selbst können aus
[cX.Parameter.Wert(n)]
ausgelesen werden, wobei für n die Parameternummer angegeben wird (1..Anzahl).
Mögliche andere Schreibweisen sind cX.Parameter.n oder cX.Parameter(n).
Beispiel:
Die folgende Funktion berechnet die Summe der übergebenen Parameter:
Hinweis: Die Summe könnte auch direkt über die Sum()-Funktion berechnet werden.
:: Funktion.Summe (lokale Variablen), Info: Liefert die Summe aller Parameter *** [cX.Funktion.Summe] liefert Summe der Werte Setze in [Ergebnis]: '0' Schleife ab hier mit Variable [ParameterIndex] von 1 bis [cX.Parameter.Anzahl] Setze in [Ergebnis]: '[cX.Parameter.Wert([ParameterIndex])]' , berechnen', Wert addieren' Schleife bis hier Beende Unterprogramm (Zurück) (Ergebnis: '[Ergebnis]') |
Wird nun im Skript etwa folgender Platzhalter eingesetzt:
[cX.Funktion.Summe(2;3;5;10)]
berechnet die Funktion die Summe der Parameter und liefert als Ergebnis 20 zurück.
Funktionsauswahl:
Die im Skript deklarierten Funktionen werden nebst Erläuterung in der Variablenauswahl unter "Funktionen" angezeigt. Die Erläuterung wird der Kommentarzeile entnommen, die unmittelbar unter der Deklarationsmarke steht, sofern deren Eigenschaft Info nicht gefüllt ist.. Aus diesem Grund sollte jede Funktion mit einem erklärenden Kommentar beginnen.
Hier der cX4Web-Code für die oben gezeigten und einige weitere Beispiele:
**cx5AR+LCAAAAAAABADFVl1v2jAUfZ+0/3DnSVOYNLpUexkfk1pGtU7tVg1WJqE8GHIBD 8dBjq3R/ra97Y/NdhIIgRVSUe0lYCe+Pvee4+Pb6o0lW6gPz58BtDpxFFERJm60HkP2279 bYJvYAQpFoI9L1SbnyJIFQ44w+fNbwpmeSD1B8Kgez+Dr6CfOFdYgYgpuqKQRKpSCwMmDW 3Sjhbrb91EJR5dNUSBcaDFXLBYVd7zGJKFTNMGY4mach0moyyffZDj+Uc9f1fuYqEk28D5 RzuPmALmqBQTOtVJmcZucPkWqaY1LGYJ3I+PavkifdbQgYJ/XVM6/mLVtYvPwyTqUge2ye UFgwNSszyKU13TZXeJY21w7sRYGhVnSiUXI7FQavDBxS7lG983x0x8hZzgydK8h74vQQ3V LJaMjbijO/7XJav0VSxQ6+AptbqfNd833VTWzisbTaCna1SwMN7cLXr1cfmyax1mzp02CD dhQl5vzhptBg1ph1VFq2xWhkatEOh/MqDqWYB9D63dTe7mQ8dQkHG0d3xsahkxMOzMq2+T 1ITK3AidQkLjn4u09ImVa3do3BakVeG1kpBZYWfPtp4yuJuoDlMrzK/qD5ec/MVKyVKxMQ yle0TAbcMVwYgoCl2ISJ3CvIURRwbHLFO+2ZRvP30u5K/I3TDS37iru6YyvkZRZTN8HDdi c3yWBsgK8IrZa3S+t8TM5+cFTsGkNhaHUYppskxAyBOc4YJzfaPdgZ/0nDS4agat4THnuu MkBN0IJ9bYnBsAz0Cng0MC1JwsfeQl05RRHgiUF+39b9UIuSQaY2C2aygdQ3CMX+FBkZyq iFkBsC7H5TlTd8FJYJSQYQd7WwS+U9mBagaxRmK7IGoHZem/RFZXqIpa2uqZt2HH3XooQl wRMh8EiHWWNw6OqdzjBO0o43AQUWJs+C0Nn0R3Kx5pTdVBHI0KXbgXHGeYIq5371kmhX2+ dZI38Xx+pBtjRCwAA=* |
cX-Webseite: http://www.clickexe.net