Benutzer-Werkzeuge

Webseiten-Werkzeuge


k7:k7.4:k7.4.3:k7.4.3.2:start

7.4.3.2 Abgeleitete Arrays

Die Klasse von abgeleiteten Arrays wird 'on the fly' vom Interpreter erstellt.

Drei Beispiele für abgeleitete Arrays:

Dim aLabels As New Label[] 
Dim aComponents As New Component[] 

Dim KL As New CDS[] ' Array der deklarierten Klasse CDS

Beispiel 1 – Einsatz eines eindimensionalen, abgeleiteten Arrays

Es werden alle im aktuellen Projekt geladenen Komponenten in einem abgeleiteten, eindimensionalen Arrays gespeichert, sofort wieder ausgelesen und angezeigt:

Quelltext-Ausschnitt:

[1] Dim hComponent As Component
[2] Dim aComponents As New Component[] 
[3] Dim iCount As Integer
[4] 
[5] For Each hComponent In Components ' Über alle geladenen Klassen iterieren ...
[6]   aComponents.Add(hComponent)
[7] Next
[8]   
[9] For Each hComponent In aComponents
[10]   Inc iCount
[11]   Print "Komponente  "; icount; "  =  "; hComponent.Name
[12] Next

Ausgabe in der IDE-Konsole:

Komponente  1  =  gb.debug			
Komponente  2  =  gb.image
Komponente  3  =  gb.qt4			
Komponente  4  =  gb.form
Komponente  5  =  gb.qt4.ext		
Komponente  6  =  gb.eval
Komponente  7  =  gb.draw			
Komponente  8  =  gb.geom
Komponente  9  =  gb.gui.base

Beispiel 2 – Einsatz eines abgeleiteten Arrays

Im Unterschied zum ersten Beispiel wird eine selbst geschriebene Klasse CDS verwendet. Die Array-Klasse CDS[ ] existiert eigentlich nicht. Da sie aber mit „[ ]“ endet und es eine Klasse CDS gibt, erstellt der Interpreter automatisch eine von CDS abgeleitete Klasse CDS[], die ein eindimensionales Array von 'CDS'-Objekten repräsentiert.

Quelltext CDS.Class

' Gambas class file 
' Diese Klasse ist eine (reine) Datenstruktur ohne eigene Methoden. 
 
Public JGS As Integer 
Public GebDatum As Date 
Public Nachname As String 

Quelltext FMain.class

[1] Public aKL As New CDS[] 
[2] 
[3] Public Function FillClassArray() As CDS[] 
[4]   Dim hCDS As CDS
[5]   Dim myKL As New CDS[]
[6] 
[7]   hCDS = New CDS
[8]     hCDS.JGS = 12
[9]     hCDS.GebDatum = Date(2004, 5, 19)
[10]     hCDS.Nachname = "Mayer"
[11]   myKL.Add(hCDS)
[12]   
[13]   hCDS = New CDS
[14]     hCDS.JGS = 11
[15]     hCDS.GebDatum = Date(2005, 12, 19)
[16]     hCDS.Nachname = "Adler"
[17]   myKL.Add(hCDS)
[18]   
[19]   Return myKL
[20] 
[21] End ' Function()

Kommentare:

  • In der Zeile 1 wird eine öffentliche Variable aKL für das abgeleitete Array vom Array-Typ CDS[ ] initialisiert. KL könnte zum Beispiel für 'KlassenListe' stehen.
  • Alle Elemente der eindimensionalen Arrays aKL und myKL sind 'CDS'-Objekte.
  • Ein neues 'CDS'-Objekt der Klasse CDS wird in der Zeile 7 angelegt. Anschließend werden die Daten für den neuen Datensatz(JGS, GebDatum und Nachname) festgelegt und in das in der Zeile 5 erzeugte Array myKL eingefügt. Gleiches geschieht für den zweiten Datensatz in den Zeilen 13 bis 17.
  • Die Funktion gibt als Funktionswert das abgeleitete Array myKL zurück.

Download

Wir verwenden Cookies, um unser Internetangebot optimal zu gestalten. Durch weitere Nutzung dieser Webseite stimmen Sie der Verwendung von Cookies zu. Informationen zu Cookies erhalten Sie in unserer Datenschutzerklärung
k7/k7.4/k7.4.3/k7.4.3.2/start.txt · Zuletzt geändert: 20.06.2016 (Externe Bearbeitung)

Seiten-Werkzeuge