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

Die Website verwendet zwei temporäre Session-Cookies. Diese technisch notwendigen Cookies werden gelöscht, wenn der Web-Browser geschlossen wird! Informationen zu Cookies erhalten Sie in der Datenschutzerklärung.
k7/k7.4/k7.4.3/k7.4.3.2/start.txt · Zuletzt geändert: 20.06.2016 (Externe Bearbeitung)

Seiten-Werkzeuge