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