Listen von Variablen werden im Strukturbaum einer TCE-Klasse angelegt, in dem der Schalter <Liste> in den Eigenschaften einer Variablen aktiviert wird.
Lokale Variable werden als Liste deklariert, in dem ein () an den Namen der Variable angehängt wird.
Beispiel für eine Listendeklaration für einen TCE-Objektzeiger bzw. ein lokale Objektliste:
Dim Autos() As "Auto", DoubleList() As Double, VariantList() As Variant
Listen von Variablen besitzen einen nullbasierten Index. Das erste Element einer Liste lässt sich demnach ansprechen über:
S := Autos(0)
Listen von Variablen müssen nicht redimensioniert werden. Durch die Zuweisung eines Index wird dies von TCE automatisch durchgeführt.
Dim Autos() As "Auto"
Autos(2) := "BMW"
Autos(5) := "Mercedes"
Listen können auch über die Kurzschreibweise mit geschweiften Klammern belegt werden:
Autos := {"Mercedes", NoValue, "BMW"}
In dieser Schreibweise erhält Autos(0) ein Objekt der Klasse „Mercedes“, Autos(1) bleibt NoValue und Autos(2) erhält ein Objekts der Klasse „BMW“.
Zur besseren Kenntlichmachung, dass es sich um neuangelegte Objekte einer bestimmten Klasse handelt, bietet sich auch folgende Schreibweise an:
Autos := {New ::Mercedes, NoValue, New ::BMW}
Die untere und obere Grenze einer Liste kann über die Attribute LowBound und UpBound ermittelt werden. Ist eine Liste leer, liefert Upbound den Wert -1, ansonsten den höchsten belegten Index der Liste. LowBound liefert -1 bei leeren Listen, ansonsten den kleinsten belegten Index.
Eine Liste wird fehlerfrei durchlaufen, wenn folgender Code ausgeführt wird:
Dim i As Long
If Autos.UpBound > -1 Then
For i := Autos.LowBound To Autos.UpBound
If Autos(i) <> NoValue Then
S := Autos(i).Modellname
End If
EndFor
End If
Ist für die Programmierung der Index nicht interessant, kann ein vereinfachter Code ausgeführt werden:
Dim A As ::Auto, s As String
For Each A In Autos
s := A.Modellname
EndFor
Listen von Variablen verfügen, wie alle anderen TCE-Variablentypen über Attribute und Attributfunktionen:
Variant-Listen ermöglichen den Aufbau von heterogenen Arrays.
Dim Array() As Variant, Value As String
Array := { {"A", 1, 10}, {"B", 2, 20}, {"C", 3, 30}}
Value := Array(1)(0)
Value enthält dementsprechend den Wert “B”.
Standard-Attribute und Attributfunktionen:
GetStringList (Listen-Variable)