Ein Script kann, wie wir schon in Kapitel 1 erfahren haben, verschiedenste Funktionen ausführen. Darum müssen Sie im Programmcode hinterlegen, welche Funktion das Script bereitstellt. Es können auch mehrere Actions in einem Script vorhanden sein. Sie können z. B. eine Beschriftung automatisch erzeugen lassen. Außerdem kann für diese Action ein eigener Menüpunkt in der Menüleiste erzeugt werden. Dies ist alles innerhalb einer Datei möglich. In diesem Fall macht das auch Sinn, da der Menüpunkt nicht ohne die dazugehörige Action ausgeführt werden kann. Es macht aber keinen Sinn, alle Actions in eine Datei zu packen, da es so schnell unübersichtlich wird.
Für unser erstes Beispiel verwenden wir das Attribut . Das ist der schnellste Weg, mehrere Scripte zu testen. Oftmals stellt sich die Frage, wann ein Script geladen und was ausgeführt werden muss. Über die Attribute können Sie dies schnell und einfach herausfinden. Dies ist eine Auflistung der Attribute fürs Ausführen und Laden:
Das Attribut wird meistens verwendet, wenn man ein Script nur einmal oder eher selten benötigt. Sie müssen bei jedem Starten der Action über die Menüleiste gehen, um das Script auszuführen.
In der Entwicklungsumgebung wechseln Sie ins Codefenster und betrachten die ersten Zeilen. Führen Sie hierfür einen Doppelklick auf die Datei 01_Start.cs aus.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;
Mit dem Befehl beschreiben Sie, welche Verweise verwendet werden sollen. In einer sogenannten Using-Direktive werden bestimmte Programmbefehle gespeichert und können, sofern sie geladen sind, abgerufen werden. Für das erste Script sind folgende Verweise erforderlich:
System.Windows.Forms
Eplan.EplApi.Scripting
Es werden nicht immer alle Verweise benötigt. Dennoch ist es ratsam, eine Vorlage zu erstellen, die alle für Sie wichtigen Using-Direktiven enthält. Später können Sie nicht benötigte Elemente entfernen. Folgende Namespaces werden im Scripting häufig verwendet:
Beim Tippen des Codes erscheint ein kleiner Dialog mit verschiedenen Begriffen (Bild 2.2). Diesen Dialog nennt man IntelliSense. Es ist eine Möglichkeit zur Wortvervollständigung einzelner Begriffe in der Programmierung. Das von Microsoft entwickelte Hilfsmittel ist in fast allen Entwicklungsumgebungen für sämtliche Programmiersprachen vorhanden. Wenn Sie einen Begriff eingeben, werden übereinstimmende Ergebnisse angezeigt. Sie können nun mit den Pfeiltasten auf der Tastatur den gewünschten Begriff auswählen. Um das Getippte zu vervollständigen, drücken Sie auf die Tab-Taste. Ist der IntelliSense nicht sichtbar, kann der Dialog mit dem Tastatur-Shortcut Strg + Leertaste wieder eingeblendet werden.
Eine Code-Folge wird in C# immer mit einem Semikolon () beendet. Wer schon einmal in Visual Basic programmiert hat, weiß, dass es dort der Zeilenumbruch ist. In C# können Sie beliebig viele Zeilenumbrüche im Code einfügen.
Den Aufbau eines Programmcodes in C# können Sie sich vorstellen wie eine Zwiebel (Bild 2.3). Es gibt verschiedene Schichten, die mit geschweiften Klammern eingegrenzt werden. Der Aufbau ist allerdings nicht so kompliziert, dass die Zwiebel Sie zum Weinen bringen wird.
Bild 2.3 Aufbau des Programmcodes in C#
Die "äußere Schale" ist der Namespace:
namespace Namespace { }
Die "mittlere Schale" ist die Klasse (Class):
class Class { }
In einer Klasse muss mindestens eine Funktion vorhanden sein. Man spricht hier von Methoden. Methoden werden mit gekennzeichnet. Ergänzen Sie den Programmcode um folgende Zeilen:
void Function() { }
In der Funktion steht nun der eigentliche Programmcode (Was soll EPLAN tun?).
Wir lassen eine MessageBox anzeigen, um festzustellen, ob unser Script ausgeführt wurde. Dies ist der Aufbau des Befehls in kurzen Worten:
Die einzelnen Klassen und Methoden werden durch einen Punkt getrennt. Stellen Sie sich hierzu eine Treppe vor. Auf jeder Ebene befinden sich andere Räume mit unterschiedlichen Funktionen. Zu Beginn findet man oft nicht sofort die gewünschte Funktion, aber mit der Zeit versteht man die Struktur des .NET Frameworks.
Beispielaufbau eines Methodenaufrufs:
Ebene0.Ebene1.Ebene2.Methode();
Nehmen wir als Beispiel eine Aktivität an einem Ort, müsste dies wie folgt angegeben werden:
München.Theresienwiese.Oktoberfest.Achterbahnfahren();
Text steht im Programmcode immer in Hochkommas ():
München.Bahnhof.Schaffner.Ruft("Alles einsteigen!");
Kommentare können mit zwei Schrägstrichen eingefügt werden:
// Ich bin ein Kommentar
Dadurch weiß das Programm, dass es sich um einen Kommentar handelt, der nicht abgearbeitet werden muss.
In Visual Studio gibt es fertige Buttons für das Einfügen von Kommentaren. Ist diese Toolbar nicht sichtbar, können Sie diese, wie in Bild 2.4 dargestellt, einblenden. Es wird dann die komplette Zeile, welche gerade aktiv ist, ein- bzw. auskommentiert.