Eigene Funktionen

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

 

More:

Optionale Parameter