Freigeben über


Hinzufügen von Objekten zu einer Containerklasse

Mit Hilfe der ADD OBJECT-Klausel des Befehls DEFINE CLASS oder über die AddObject-Methode können Sie einem Container Objekte hinzufügen.

Die folgende Klassendefinition beruht beispielsweise auf einem Formular. Der Befehl ADD OBJECT fügt zwei Befehlsschaltflächen zum Formular hinzu:

DEFINE CLASS myform AS FORM
  ADD OBJECT cmdOK AS COMMANDBUTTON
  ADD OBJECT PROTECTED cmdCancel AS COMMANDBUTTON
ENDDEFINE

Wenn Sie Objekte in einen Container einfügen möchten, nachdem das Container-Objekt erstellt wurde, dann verwenden Sie dazu die AddObject-Methode. Über die folgenden Codezeilen wird z. B. ein Formular-Objekt erstellt, dem dann zwei Befehlsschaltflächen hinzugefügt werden:

frmMessage = CREATEOBJECT("FORM")
frmMessage.AddObject("txt1", "TEXTBOX")
frmMessage.AddObject("txt2", "TEXTBOX")

Sie können die AddObject-Methode auch im Methodencode einer Klasse verwenden. In der folgenden Klassendefinition wird AddObject beispielsweise in dem mit dem Init-Ereignis verknüpften Code verwendet, um ein Steuerelement zu einer Rasterspalte hinzuzufügen.

DEFINE CLASS mygrid AS GRID
ColumnCount = 3
PROCEDURE Init
  THIS.Column2.AddObject("cboClient", "COMBOBOX")
  THIS.Column2.CurrentControl = "cboClient"
ENDPROC
ENDDEFINE

Hinzufügen und Erstellen von Klassen in Methodencode

Mit der AddObject-Methode können Sie Objekte zu einem Container programmgesteuert hinzufügen. Außerdem können Sie Objekte mit der CREATEOBJECT( )-Funktion in der Methode Load, Init oder jeder anderen Methode der Klasse erstellen.

Wenn Sie ein Objekt mit der AddObject-Methode hinzufügen, wird es ein Element des Containers. Die Parent-Eigenschaft des hinzugefügten Objekts verweist auf den Container. Wenn ein auf der Steuerelement- oder Container-Klasse basierendes Objekt aus dem Arbeitsspeicher gelöscht wird, wird das hinzugefügte Objekt ebenfalls gelöscht.

Wenn Sie ein Objekt mit der CREATEOBJECT( )-Funktion erstellen, erhält es den Gültigkeitsbereich einer Eigenschaft der Klasse oder einer Variablen der Methode, die diese Funktion aufruft. Die Parent-Eigenschaft des Objekts ist undefiniert.

Siehe auch

Programmgesteuertes Schreiben von Klassendefinitionen | Erstellung von Objekten aus Klassen | Richtlinien für Methoden- und Ereigniscode | Schützen und Ausblenden von Klassenelementen | Objektorientierte Programmierung