AddObject (Método)

16/03/2020

 

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

Clases de Visual FoxPro

 


 

Referencias

Artículo original: AddObject (Método)
Autor: Microsoft

 


 

 

 



error: Contenido protegido