You can use the ADD OBJECT clause in the DEFINE CLASS command or the AddObject method to add objects to a container.
For example, the following class definition is based on a form. The ADD OBJECT command adds two command buttons to the form:
DEFINE CLASS myform AS FORM ADD OBJECT cmdOK AS COMMANDBUTTON ADD OBJECT PROTECTED cmdCancel AS COMMANDBUTTON ENDDEFINE
Use the AddObject method to add objects to a container after the container object has been created. For example, the following lines of code create a form object and add two command buttons to it:
frmMessage = CREATEOBJECT("FORM") frmMessage.AddObject("txt1", "TEXTBOX") frmMessage.AddObject("txt2", "TEXTBOX")
You can also use the AddObject method in the method code of a class. For example, the following class definition uses AddObject in the code associated with the Init event to add a control to a grid column.
DEFINE CLASS mygrid AS GRID ColumnCount = 3 PROCEDURE Init THIS.Column2.AddObject("cboClient", "COMBOBOX") THIS.Column2.CurrentControl = "cboClient" ENDPROC ENDDEFINE
Adding and Creating Classes in Method Code
You can programmatically add objects to a container with the AddObject method. You can also create objects with the CREATEOBJECT(В ) function in the Load, Init, or any other method of the class.
When you add an object with the AddObject method, the object becomes a member of the container. The Parent property of the added object refers to the container. When an object based on the container or control class is released from memory, the added object is also released.
When you create an object with the CREATEOBJECT(В ) function, the object is scoped to a property of the class or a variable in the method that calls this function. The parent property of the object is undefined.