Navigation: click.EXE 5.0 Premium > Eigene PlugIns > cXtensionen >

Erstellung und Bearbeitung

Diese Seite drucken
Vorherige Seite Nächste Seite
Zurück zur Kapitelübersicht

In diesem Kapitel werden Hinweise zur Erstellung bzw. Bearbeitung eines cXtension-Skriptes sowie Tipps&Tricks für die Fehlersuche und den Ausbau gegeben.

 

Zuerst sollten wir verhindern, dass die cXtension direkt gestartet werden kann, denn eine cXtension ist ja eine Erweiterung und kein eigenständiges Programm. Dies geschieht üblicherweise am Anfang durch einen Beende-Befehl mit einer Meldung.

 

Nun müssen wir ein Objekt erstellen. Dieser Schritt ist erforderlich für eine cXtension, die ja nur eine spezielle Form eines Objekts ist. Dazu werden zwei Marken angelegt, die den Anfang und das Ende des cXtension-Objekts darstellen: ::Objekt(Test)_Start und ::Objekt(Test)_Ende. Der Text in Klammern ist die ID des Objekts und gleichzeitig auch der Name der cXtension (etwa bei einem neuen Befehl). Das hier beschriebene Objekt hat hier den Namen "Test".

Hinweis: Alle weiteren Marken, die jetzt noch folgen werden, müssen sich innerhalb des Objektes befinden.

 

Beim nächsten Schritt definieren wir ein Initialisierungs- und ein Aufräum Unterprogramm: ::Test_Start und ::Test_Stopp. Diese können wichtig sein, um etwa bei Start der cXtension Vorgaben für Eigenschaften zu definieren oder um die cXtension aufzuräumen. Beide Marken beginnen ein Unterprogramm und werden daher mit "Zurück" angeschlossen - dies gilt auch für alle folgenden Marken.

 

Initialisierungs-Unterprogramm:

::Test_Start

Hier werden beispielsweise Vorgabewerte für die cXtension definiert.

Zurück

 

Aufräum-Unterprogramm:

::Test_Stopp

Hier kann die cXtension aufgeräumt bzw. noch letzte Anweisungen abgearbeitet werden, bevor die cXtension beendet wird. Beispiele dafür sind etwa das Speichern von Einstellungen oder das Beenden einer Netzwerkverbindung.

Zurück

 

Im nächsten Schritt definieren wir eine Beschreibung der cXtension: ::Test_!Beschreibung_Lesen. Diese Beschreibung steht dann im Dialog "Plugin-/Erweiterungsinfo". Im "Zurück"-Befehl wird hier die Beschreibung unter "Rückgabewert" eingetragen.
Hinweis: Da diese sowie einige andere Eigenschaften des cXtension-Objekts fest vorgegeben sind, können diese auch in einer Eigenschaft namens Test_FesteEigenschaften zusammengefasst werden.

 

Als nächstes definieren wir die Version der cXtension mittels ::Test_!Version_Lesen. Auch diese Information steht dann im Dialog "Plugin-/ Erweiterungsinfo".Die Versionsangabe wird auch hier im "Zurück"-Befehl unter "Rückgabewert" eingetragen.

 

Damit eine cXtension vom Anwender gesteuert werden kann, müssen wir nun definieren, welche Variablen die cXtension aufweisen soll: ::Test_!Variablen_Lesen. Im "Zurück"-Befehl können die Variablen als Liste eingetragen werden (jeweils Variablenname=Beschreibung). Diese Variablen werden dann in der Variablenauswahl angezeigt.

 

In einem weiteren Schritt definieren wir nun auch noch Ereignisse, die von der cXtension ausgelöst werden können: ::Test_!Ereignisse_Lesen. Auch diese Ereignisse werden im "Zurück"-Befehls als Liste angegeben (jeweils Marke=Beschreibung). Diese Marken erscheinen dann auch in der Markenauswahl.

 

Nun müssen wir eine Prozedur erstellen, die dann aufgerufen wird, wenn die cXtension gestartet wird: ::Test_!Ausführen_Lesen. Diese Prozedur liefert kein Ergebnis zurück und wird daher mit einem einfachen "Zurück"-Befehl angeschlossen. Die Parameter für den Befehl sind in den Variablen [cX.Befehlsparameter.X] enthalten.

 

Damit unser cXtension-Befehl auch einen Dialog für die Eingabe der Parameter hat, müssen wir auch hierfür eine Prozedur anlegen: ::Test_!Dialog_Lesen. In dieser Prozedur wird dann ein Dialog erstellt, worauf zu achten ist, dass der letzte Befehl in dieser Prozedur ein zweiter "Anzeigefenster"-Befehl ist, der modal geschalten wird,damit das Skript auf Benutzeraktionen wartet, bevor es weitergeht (ein "Warte endlos"-Befehl in einer Prozedur ist ja nicht erlaubt).

 

Nun müssen wir auch definieren, wie der cXtension-Befehl in dem Skript aussehen soll: ::Test_!Darstellung_Lesen. Als Parameter stehen die für die jeweilige Befehlszeile definierten Einstellungen zur Verfügung. Im "Zurück"-Befehl wird dann unter "Rückgabewert" angegeben, wie der Befehl sich im Skript darstellen soll (z.B. Name=[cX.Befehlsparameter.Name], Wert=[cX.Befehlsparameter.Wert]).

 

Wenn als cXtension ein neues Anzeige-Element erstellt wird, gibt es noch die Eigenschaftsmarke ::Test_!Designerbild_Lesen. Diese wird benötigt, damit click.EXE erkennt, dass es sich hierbei um eine "designbare" cXtension handelt. Als Rückgabewert im "Zurück"-Befehl wird dann das Bild als Bildquelle angegeben (z.B. %ICON% oder ein Pfad zum Bild/Icon), das dann auch im Dialog-Designer unter den vorhandenen Elementen erscheint.

 

Falls in der cXtension Ressourcen (Bilder etc.) verwendet werden, können diese in der Prozedur ::Test_!Ressourcen_Lesen im "Zurück"-Befehl unter Rückgabewert als Liste eingetragen werden. Die Funktion wird für jeden cXtension-Befehl im Skript aufgerufen, als Parameter stehen die für die jeweilige Befehlszeile definierten Einstellungen zur Verfügung. Diese Ressourcen werden dann später im Hauptskript als Ressourcen angeboten, um sie mit in einer zu erstellenden EXE-Datei einbinden zu können.

 

Weiterhin kann man auch noch definieren, ob ein Plugin registrierbar ist (etwa um ein Plugin, das als Testversion läuft, freischalten zu können). Hierzu dient die Prozedur ::Test_!Registrierung_Lesen. In dieser Prozedur kann dann ein modaler Registrierungs-Dialog erstellt werden. Auch für diesen Dialog gilt, dass der letzte Befehl in dieser Prozedur wieder ein erneuter Anzeige-Befehl sein sollte, der den Dialog modal schaltet, damit die cXtension auf Benutzereingaben wartet.  Wahlweise kann auch der Registrierungsdialog von click.EXE selbst per [cX.Editor.Registrierungsdialog(n)] verwendet werden.
Diese Prozedur wird aus dem Dialog "Plugin-/Erweiterungsinfo" heraus aufgerufen, wenn dort die cXtension aktiviert und anschliessend die Schaltfläche Registrieren angeklickt wird.

 

Um abzufragen, ob die cXtension registriert ist oder nicht, kann die Prozedur ::Test_!Registriert_Lesen verwendet werden. In dieser Prozedur wird ermittelt (etwa aus einer INI Datei oder der Registry), ob die cXtension registriert ist oder nicht. Als Rückgabewert im "Zurück"-Befehl wird dann angegeben, ob sie registriert (1) oder nicht registriert (0) ist. Das Ergebnis wird im Dialog "Plugin-/Erweiterungsinfo" angezeigt. Außerdem wird Unregistriert in der Befehlsliste angezeigt, und ein Skript mit einem solchen Befehl kann nicht abgespeichert werden.
Hinweis: Ist diese Prozedur nicht vorhanden, wird keine Registrierung erfordert und der cXtension-Befehl ist immer voll nutzbar.

 

 


cX-Webseite: http://www.clickexe.net