Compartir a través de


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)