In TCE können eigene Funktionen in einer Klasse definiert werden.
Diese Funktionen können einfache Parameter oder Listenparameter besitzen, sowie einen einzelnen Wert oder eine Werteliste zurückgeben.
Die einfachste Definition einer Funktion ist folgende:
Public Function TuWas() As Void
End Function
Wenn Sie im Klasseneditor eine Funktion mit dem Namen TuWas anlegen, erhalten Sie diesen Funktionskern.
Der Begriff As Void am Ende der Funktionsbeschreibung besagt hier, dass diese Funktion keinen Parameter zurückgibt.
Die Funktion erwartet auch keine Parameter. Dies können Sie an () hinter dem Funktionsnamen erkennen.
Möchten Sie erreichen, dass diese Funktion Werte zurückliefert, haben Sie folgende Möglichkeiten:
1.
Möglichkeit; die Funktion gibt einen einfachen Variablentyp
zurück
Rückgabe von 100
2.
Public Function TuWas() As Long
End Function
100
Rückgabe von 100 wenn Klassenvariable Test=1, ansonsten 200
Public Function TuWas() As Long
Return 100 If Test = 1
End
Function 200
Rückgabe einer Liste mit zwei Werten
Public Function TuWas() As Long()
TuWas(0) := 100
TuWas(1) := 200
End Function
3. Möglichkeit; die Funktion liefert einen TCE-Objektzeiger zurück
Rückgabe des Wertes der TCE-Objektvariablen Fernseher
Public Function TuWas() As "Fernseher"
TuWas := Fernseher
End Function
Public Function TuWas() As "Fernseher"()
TuWas(0) := Fernseher(0)
TuWas(1) := Fernseher(1)
End Function
4. Möglichkeit; die Funktion liefert ein COM-Objekt zurück
Public Function TuWas() As Word.Application
End Function
Public Function TuWas() As Word.Application()
End Function
Möchten Sie erreichen, dass diese Funktion Parameter verarbeitet, haben Sie folgende Möglichkeiten:
Public Function TuWas(ByVal Parameter1 As Long, ByRef Parameter2 As Long) As Void
End Function
Alle Parameter werden durch ein Komma voneinander getrennt. Parameter mit einem vorangestellten ByVal werden als Wert an die Funktion übergeben, d.h. Änderungen am Wert der Parametervariablen werden nicht an den Aufrufer der Funktion zurückgegeben. Möchte man dies jedoch genau erreichen, muss der Parameter mit dem Zusatz ByRef angegeben werden. Auch Listen können ByVal und ByRef übergeben werden.
Parameter können auch optional übergeben werden.
Optionale Parameter müssen dann bei Aufruf der Funktion nicht angegeben werden.
Public Function TuWas(ByVal Parameter1 As Long, Optional ByVal Parameter2 As Long) As
Void
Return If IsMissing(Parameter2)
End Function
Die Übergabe eines Wertes über einen optionalen Parameter kann mit der Funktion IsMissing geprüft werden:
Möchte man die Abarbeitung einer Funktion vorzeitig abbrechen, kann der Befehl Exit Function [Expression] oder alternativ Return [Expression] verwendet werden.
Public Function TuWas(ByVal Parameter1 As Long) As Long
If Parameter1 = 10 Then
Exit Function 10
EndIf
TuWas := 100
End Function
Gültigkeitsbereich
Funktionen können über einen eingeschränkten Gültigkeitsbereich verfügen. Dies wird über die Schlüsselworte Public, Friend oder Private gesteuert.
Gültigkeitsbereich |
Beschreibung |
Public |
Die Funktion ist aus allen Objekten erreichbar. Das gilt auch für Aufrufe aus Link-Wissensbasen. |
Friend |
Die Funktion ist nur innerhalb der eigenen Wissensbasis verfügbar. |
Private |
Die Funktion ist nur innerhalb der Klasse und aus abgeleiteten Klassen verfügbar. |
Funktionsattribute
Funktionen können über weitere Attribute verfügen. Die Attribute werden zwischen dem Schlüsselbegriff des Gültigkeitsbereiches und dem Funktionsnamen angegeben. Es können ggf. mehrere Attribute angegeben werden.
Funktionsattribute |
Beschreibung |
Trigger |
Die Funktion kann als Aufrufziel von Objekttriggern verwendet werden |
Async |
Die Funktion kann asynchron aufgerufen werden. Der Rückgabetyp der Funktion darf nur Void oder AsyncController sein. |
NotOverrideable |
Die Funktion darf nicht überdefiniert werden. |
Static |
Die Funktion ist statisch deklariert und kann ohne zugrunde liegendes Objekt ausgeführt werden. Statische Funktionen können nicht auf nichtstatische Elemente zugreifen. Dazu gehören Objekte, Objektreferenzen, Merkmale und anderes, jedoch keine Konstanten. Eine statische Funktion muss mit den übergebenen Parametern, lokalen Variablen und Klassenkonstanten programmiert sein. |
Deactivated |
Die Funktion ist deaktiviert und wird behandelt, als ob sie nicht existent wäre. |
Beispiel für Funktionsattribute:
Public Static Function AddiereZweiZahlen(ByVal Zahl1 As Double, ByVal Zahl2 As Double) As Double
End Function Zahl1 + Zahl2