AddProperty (Método)

Agrega una nueva propiedad a un objeto.

Object.AddProperty(cPropertyName [, eNewValue])

Valores devueltos

Logical

Parámetros

  • cPropertyName
    Especifica el nombre de la nueva propiedad que se va a agregar al objeto.
  • eNewValue
    Especifica el valor con que se establece la nueva propiedad. Si se omite eNewValue, el valor de la nueva propiedad no se cambia si la propiedad ya existe o se establece en el valor falso (.F.) para una propiedad nueva.

Observaciones

El método AddProperty( ) permite agregar una propiedad a un objeto en tiempo de ejecución. La nueva propiedad se agrega como una propiedad PUBLIC.

También puede crear matrices de propiedades para un objeto. Cada elemento de la matriz de propiedades se inicializa a eNewValue si se incluye; de lo contrario, cada elemento de la matriz de propiedades contiene falso (.F.). El código siguiente muestra cómo puede crear una matriz de propiedades para un objeto:

oMyForm = CREATEOBJECT('Form')
oMyForm.AddProperty('MyArray(2)', 1)  && Add an array as a property
oMyForm.MyArray(2) = 'Two'
CLEAR
? oMyForm.MyArray(1)  && Displays 1
? oMyForm.MyArray(2)  && Displays Two

Si no existe una propiedad con el nombre que especifica, se crea la propiedad y se devuelve un valor verdadero (.T.).

Si ya existe una propiedad con el nombre que especifica, AddProperty( ) devuelve los valores siguientes:

  • Verdadero (.T.) si la nueva propiedad es una propiedad de matriz y la propiedad existente también es una propiedad de matriz. El tamaño de la matriz se cambia al de la nueva matriz. Si se especifica un valor con eNewValue, todos los elementos de la matriz se establecen con su valor. Si se omite eNewValue, todos los elementos de la matriz se establecen con falso (.F.).
  • Verdadero (.T.) si la nueva propiedad no es una propiedad de matriz y la propiedad existente es una propiedad de matriz. La propiedad sigue siendo una propiedad de matriz. Si se especifica un valor con eNewValue, todos los elementos de la matriz se establecen con su valor. Si se omite eNewValue, no se cambian los elementos de la matriz.
  • Verdadero (.T.) si la nueva propiedad no es una propiedad de matriz y la propiedad existente no es una propiedad de matriz o no es una propiedad nativa de Visual FoxPro de sólo lectura. Si se especifica un valor con eNewValue, la propiedad existente se establece con su valor. Si se omite eNewValue, no se cambia el valor de la propiedad existente.
  • Falso (.F.) si la nueva propiedad es una propiedad de matriz y la propiedad existente no es una propiedad de matriz. No se cambia la propiedad existente.
  • Se genera un error "La propiedad <PropertyName> es de sólo lectura" si la propiedad existente es una propiedad nativa de Visual FoxPro de sólo lectura como la propiedad BaseClass.
  • Se genera un error "El nombre de propiedad es incorrecto" si el nombre de propiedad no es válido (el nombre de propiedad contiene un espacio u otro carácter no válido).

Vea también

DEFINE CLASS | NewObject (Método) | SaveAs (Método) | SaveAsClass (Método)

Se aplica a: ActiveDoc (Objeto) | CheckBox (Control) | Column (Objeto) | ComboBox (Control) | CommandButton (Control) | CommandGroup (Control) | Container (Objeto) | Control (Objeto) | Cursor (Objeto) | Custom | DataEnvironment (Objeto) | EditBox (Control) | Form (Objeto) | FormSet (Objeto) | Grid (Control) | Header (Objeto) | Image (Control) | Label (Control) | Line (Control) | ListBox (Control) | OLE Bound (Control) | OLE Container (Control) | OptionButton (Control) | OptionGroup (Control) | Page (Objeto) | PageFrame (Control) | ProjectHook (Objeto) | Relation (Objeto) | _SCREEN | Separator (Objeto) | Session (Objeto) | Shape (Control) | Spinner (Control) | TextBox (Control) | Timer (Control) | ToolBar (Objeto)