Arrays von Elementen und Objekten

Sie können Elemente von Klassen als Arrays definieren. Im folgenden Beispiel stellt choices ein Array von Steuerelementen dar.

DEFINE CLASS MoverListBox AS CONTAINER
DIMENSION choices[3]
ADD OBJECT lstFromListBox AS LISTBOX
ADD OBJECT lstToListBox AS LISTBOX
ADD OBJECT choices[1] AS COMMANDBUTTON
ADD OBJECT choices[2] AS COMMANDBUTTON
ADD OBJECT choices[3] AS CHECKBOX
PROCEDURE choices.CLICK
   PARAMETER nIndex
   DO CASE
      CASE nIndex = 1
         * code
      CASE nIndex = 2
         * code
      CASE nIndex = 3
         * code
   ENDCASE
ENDPROC
ENDDEFINE

Wenn ein Benutzer in einem Array von Steuerelementen auf ein Steuerelement klickt, übergibt Visual FoxPro die Indexnummer des Steuerelements an die Click-Ereignisprozedur. In dieser Prozedur können Sie mit Hilfe einer CASE-Anweisung und in Abhängigkeit davon, auf welche Schaltfläche geklickt wurde, unterschiedlichen Code ausführen.

Erstellen von Objektarrays

Sie können auch Objektarrays erstellen. MyArray enthält z. B. fünf Befehlsschaltflächen:

DIMENSION MyArray[5]
FOR x = 1 TO 5
   MyArray[x] = CREATEOBJECT("COMMANDBUTTON")
ENDFOR

Nun folgen einige Anmerkungen, die Sie bei Objektarrays beachten sollten:

  • Es ist nicht möglich, einem ganzen Objektarray über einen einzigen Befehl ein Objekt zuzuweisen. Diese Zuweisung muss für jedes Objekt des Feldes einzeln erfolgen.

  • Sie können einer Eigenschaft eines gesamten Arrays keinen Wert zuweisen. Der folgende Befehl würde einen Fehler ergeben:

    MyArray.Enabled = .F.
    
  • Wenn Sie ein Objektarray neu dimensionieren, so dass es größer ist als das ursprüngliche Feld, dann werden die neuen Elemente zu Beginn auf Falsch (.F.) gesetzt, genauso, wie dies in Visual FoxPro mit allen Arrays geschieht. Wenn Sie ein Objektarray neu dimensionieren, so dass es kleiner wird als das ursprüngliche Feld, dann werden die Objekte freigegeben, deren Indizes größer sind als der größte neue Index.

Siehe auch

Programmgesteuertes Schreiben von Klassendefinitionen | Erstellung eines Objektverweises | Datenspeicherung mit Objekten | Integration von Objekten und Daten | Objektorientierte Programmierung