AddObject (Método)
Agrega un objeto a un objeto Container en tiempo de ejecución.
Object.AddObject(cName, cClass [, cOLEClass] [, aInit1, aInit2 ...])
Parámetros
cName
Especifica el nombre empleado para hacer referencia al objeto nuevo.cClass
Especifica la clase de objeto que se va a agregar.cOLEClass
Especifica la clase OLE del objeto que se va a agregar.Nota Si piensa distribuir aplicaciones en el entorno de tiempo de ejecución que agreguen controles ActiveX que necesiten información de claves de licencia (por ejemplo, los controles Microsoft Treeview y Listview), no es recomendable que utilice el método AddObject(.....cOLEClass). En su lugar, cree y guarde una subclase del control ActiveX en una biblioteca de clases VCX. A continuación, en tiempo de ejecución, podrá utilizar el método AddObject (o NewObject) para agregar esta clase OleControl que contiene el control.
aInit1, aInit2
Especifica los parámetros que se pasan al evento Init del nuevo objeto.
Observaciones
Al llamar al método AddObject se desencadena el evento Init del objeto que se agrega. Cuando se agrega un formulario a un conjunto de formularios, se produce el evento Load antes que el evento Init.
**Nota **Al utilizar AddObject para agregar un objeto a un contenedor, la propiedad Visible del objeto se establece en el valor falso (.F.), para permitirle definir las propiedades del objeto sin efectos visuales no deseados a medida que se modifique la apariencia del objeto.
Si utiliza el método AddObject( ) para agregar dinámicamente un control ActiveX a un formulario, es posible que la aplicación distribuida produzca un error si el control necesita ciertas claves de registro de licencia que no se encuentran disponibles en la máquina de destino. Muchos proveedores de controles ActiveX requieren tales claves de registro para manipular estos controles en tiempo de diseño, como se hace con el método AddObject( ). Para evitar este requisito de licencia, cree primero una subclase del control ActiveX en un archivo de biblioteca de clases (.vcx); a continuación, utilice AddObject( ) para agregar una instancia de la subclase, dinámicamente, en tiempo de ejecución. Es recomendable que consulte siempre al proveedor de cualquier control ActiveX que piense distribuir con la aplicación personalizada, puesto que puede haber otros archivos dependientes que necesite incluir.
Ejemplo
El ejemplo siguiente demuestra cómo puede utilizar el método AddObject para agregar objetos o controles a un formulario. AddObject se utiliza para agregar un control Line y tres botones de comando al formulario.
La propiedad Visible se establece en el valor verdadero (.T.) para el control Line y los botones de comando. De forma predeterminada, los objetos y controles no son visibles cuando se agregan a un formulario.
frmMyForm = CREATEOBJECT('Form') && Create a Form
frmMyForm.Closable = .F. && Disable the Control menu box
frmMyForm.AddObject('shpLine','Line') && Add a Line control to the form
frmMyForm.AddObject('cmdCmndBtn1','cmdMyCmndBtn1') && Up Cmnd button
frmMyForm.AddObject('cmdCmndBtn2','cmdMyCmndBtn2') && Down Cmnd button
frmMyForm.AddObject('cmdCmndBtn3','cmdMyCmndBtn3') && Quit Cmnd button
frmMyForm.shpLine.Visible = .T. && Make Line control visible
frmMyForm.shpLine.Top = 20 && Specify Line control row
frmMyForm.shpLine.Left = 125 && Specify Line control column
frmMyForm.cmdCmndBtn1.Visible =.T. && Up Command button visible
frmMyForm.cmdCmndBtn2.Visible =.T. && Down" Command button visible
frmMyForm.cmdCmndBtn3.Visible =.T. && Quit Command button visible
frmMyForm.SHOW && Display the form
READ EVENTS && Start event processing
DEFINE CLASS cmdMyCmndBtn1 AS COMMANDBUTTON && Create Command button
Caption = 'Slant \<Up' && Caption on the Command button
Left = 50 && Command button column
Top = 100 && Command button row
Height = 25 && Command button height
PROCEDURE Click
ThisForm.shpLine.Visible = .F. && Hide the Line control
ThisForm.shpLine.LineSlant ='/' && Slant up
ThisForm.shpLine.Visible = .T. && Show the Line control
ENDDEFINE
DEFINE CLASS cmdMyCmndBtn2 AS CommandButton && Create Command button
Caption = 'Slant \<Down' && Caption on the Command button
Left = 200 && Command button column
Top = 100 && Command button row
Height = 25 && Command button height
PROCEDURE Click
ThisForm.shpLine.Visible = .F. && Hide the Line control
ThisForm.shpLine.LineSlant ='\' && Slant down
ThisForm.shpLine.Visible = .T. && Show the Line control
ENDDEFINE
DEFINE CLASS cmdMyCmndBtn3 AS CommandButton && Create Command button
Caption = '\<Quit' && Caption on the Command button
Cancel = .T. && Default Cancel Command button (Esc)
Left = 125 && Command button column
Top = 150 && Command button row
Height = 25 && Command button height
PROCEDURE Click
CLEAR EVENTS && Stop event processing, close Form
ENDDEFINE
Vea también
Init (Evento) | Load (Evento) | NewObject (Método) | RemoveObject (Método) | Visible (Propiedad)
Se aplica a: Column (Objeto) | CommandGroup (Control) | Container (Objeto) | Custom (Objeto) | DataEnvironment (Objeto) | Form (Objeto) | FormSet (Objeto) | Grid (Control) | OptionGroup (Control) | Page (Objeto) | PageFrame (Control) | _SCREEN | ToolBar (Objeto)