Aufruf aus der Befehlsliste: Externe Funktion
Mit diesem Befehl können Sie eine Funktion aufrufen, die in einer anderen Skriptdatei enthalten ist (auch "externes Makro" genannt). Angegeben werden dazu der Funktionsname und der Dateiname des Skripts, sofern das Makro nicht bereits geladen ist. Wird nur der Dateiname und kein Funktionsname angegeben, wird das Makro komplett eingebunden und steht für weitere Aufrufe zur Verfügung. Auch kompilierte Skripte können eingebunden werden, wozu deren EXE-Dateiname angegeben werden muss.
Im Kontextmenü des Editors ist bei diesem Befehl die Option enthalten, die Makrodatei in einem Extra-Tab zu öffnen bzw. diesen Tab zu aktivieren.
Es ergibt sich hierdurch die Möglichkeit, häufig benötigte und ausgetestete Funktionen in ein Skript zu integrieren, ohne die Funktion selbst in das Skript integrieren zu müssen. Das eigentliche Skript wird dadurch wesentlich kleiner und übersichtlicher.
Hinweis: Ereignisse werden nicht in diese externen Makros umgeleitet und können daher dort nicht direkt ausgewertet werden.
Soll die Funktion Werte übernehmen und/oder zurückliefern, sollten Sie Variablen definieren, deren Namen klar erkennbar sind, etwa [Makro1_Ergebnis]. Sie können auch den Variablen-Befehl einsetzen, um die Variablen des Hauptprogramms zu sichern und wiederherzustellen.
Der Schalter Makrospeicher erst löschen (cX) löscht vor dem Laden der Makrodatei alle bereits geladenen Makros aus dem Speicher. Dies kann etwa notwendig sein, wenn sich die eingebundene Datei dynamisch verändert.
Der Schalter Eigener Variablenspeicher (cX) bewirkt bei aufgerufenenen externen click.EXE-Dateien, dass diese mit einem eigenen Variablenspeicher ausgeführt werden. In diesem Fall gibt es keinerlei Wechselwirkungen mit den Variablen des Hauptskripts. Es kann jedoch von dem Makro-Skript aus per [Muttervariablen.X] auf die Variablen des aufrufenden Skriptes zugegriffen werden.
Mit dem Schalter In EXE einbinden wird festgelegt, dass ein mit diesem Befehl eingebundenes cX-Makroskript bei der Erstellung der EXE-Datei direkt mit eingebunden werden soll. Es steht daher dem resultierenden Programm (ohne eventuelle Ressourcen) direkt zur Verfügung, ohne dass es mitgeliefert oder als Ressource eingebunden werden braucht.
Wenn Sie Makros erstellen, setzen Sie diese als Unterprogramme (::Marke, Befehle, Zurück) oder Objekte in ein neues Skript ein. Es können beliebig viele Funktionen in einem Skript definiert werden. Die Namen dieser Unterprogramme sollten ebenfalls einen klar erkennbaren Namen tragen, etwa ::Makro1_Umrechnung.
Sie können die Funktion(en) testen, indem Sie davor einen Probeaufruf (Aufruf-Befehl) und den Befehl Beende Skript setzen.
Hinweis: Sollten identische Markennamen in mehreren einzubindenden Makros enthalten sein, erfolgt ein Laufzeitfehler.
Sollte eine click.EXE-Makro-Datei in einem eigenen Tab des Editors geöffnet sein, so wird der darin enthaltenen Skriptcode verwendet. Daraus ergibt sich die Möglichkeit, das Makro praktisch "Live" zusammen mit dem Hauptskript zu bearbeiten und zu testen, ohne dass das Makro vorher abgespeichert werden muss.
Möchten Sie die so erstellten Makros unkompiliert weitergeben, ohne dass der Empfänger hineinsehen kann, können Sie für das Makro-Skript ein Passwort vergeben (siehe Einstellungen). Der Anwender kann so die Funktionen Ihres Skriptes verwenden (die Sie natürlich dokumentieren müssen), aber nicht sehen, wie es aufgebaut ist. Für das Aufrufen der Makrofunktionen ist die Angabe des Passwortes nicht erforderlich.
Um ein Skript weiterzugeben, welches Makros aus einem anderen Skript verwendet, müssen Sie das Makro-Skript ebenfalls weitergeben. Die Makroskripte können auch als Ressourcen in die resultierende EXE-Datei eingebunden werden.
Hinweis: Innerhalb von Makros darf kein Warte Endlos vorkommen. Andere Warte-Befehle müssen als Exklusiv markiert sein, damit die Ausführung innerhalb der Makros synchron ist.
VBScript und JavaScript
Mit diesem Befehl ist es auch möglich, einzelne Skriptbefehle oder ganze Scriptlets von externen Skriptsprachen auszuführen. Hierzu können Sie als Skriptdatei eine VBScript- (*.VBS) oder JavaScript-Datei (*.JS) angeben, die dann in ihrer "Main"- oder, wenn angegeben, der oben angegebenen Funktion bzw. Prozedur ausgeführt wird.
Sie können auch im Eingabefeld MS-Skript eine oder mehrere Skriptzeilen einer dieser Scriptsprachen eingeben. In diesem Fall müssen Sie eine der Optionen VBScript oder JavaScript aktivieren, damit das Programm weiß, welcher Art die eingegebenen Befehle sind.
Wird eine Timeout-Zeit angegeben, wird das externe Skript nach Ablauf dieser Zeit nach einer Rückfrage abgebrochen (0=keine Begrenzung, Standard=10 Sekunden).
In dem externen Skript können Sie über folgende Befehle auf click.EXE-Variablen oder -Funktionen zugreifen:
Version | liefert die verwendete click.EXE-Version |
Var("Variablenname") | Setzt oder holt den Inhalt der click.EXE-Variablen [Variablenname] |
Aufruf "Marke" | ruft das click.EXE-Unterprogramm ::Marke auf |
GeheZu "Marke" | setzt die weitere click.EXE-Ausführung (nach Ablauf des externen Skripts) auf die angegebene Marke |
Beispiel:
Hauptskript:
Eingabe "Bitte geben Sie eine Zahl ein:" in [Wert_1] (Kein Abbruch, Überschrift 'Mittelwertberechnung: 1. Zahl') Eingabe "Bitte geben Sie eine Zahl ein:" in [Wert_2] (Kein Abbruch, Überschrift 'Mittelwertberechnung: 2. Zahl')
Externe Funktion Funktion 'Makro1_Mittelwert' aus Datei 'Externe_Funktion_Makro_Mittelwert.CX4'
Meldung "Das externe Skript hat den Mittelwert errechnet.¶Das Ergebnis lautet: [Mittelwert]" (Titel: 'Externe Funktion - Mittelwert', 'OK') |
Dieses Beispiel besteht aus 2 Skripten: dem Hauptskript und dem externen Skript, welches vom Hauptskript mittels dem Befehl Externe Funktion aufgerufen wird. Wenn das Hauptskript gestartet wird, wird der Benutzer aufgefordert, 2 Zahlen einzugeben, um den Mittelwert zu berechnen. Nach den Eingaben dieser Werte wird das externe Skript (Makro) aufgerufen. In diesem Makro werden die beiden Werte addiert und die Summe durch 2 geteilt. Das Ergebnis dieser Berechnung wird in die Variable [Mittelwert] gesetzt. Wenn die Berechnung abgeschlossen ist, geht es im Hauptskript mit der Anzeige des Mittelwertes weiter.
Externes Skript (Externe_Funktion_Makro_Mittelwert.CX4):
:: Makro1_Mittelwert Setze in [Mittelwert]: '([Wert_1]+[Wert_2])/2' (berechnen) Zurück |
cX-Webseite: http://www.clickexe.de