Share via


Matrices de miembros y objetos

Puede definir miembros de clases como matrices. En el ejemplo siguiente, choices es una matriz de controles:

DEFINE CLASS MoverListBox AS CONTAINER
DIMENSION choices[3]
ADD OBJECT lstFromListBox AS LISTBOX
ADD OBJECT lstToListBox AS LISTBOX
ADD OBJECT choices[1] AS COMMANDBUTTON
ADD OBJECT choices[2] AS COMMANDBUTTON
ADD OBJECT choices[3] AS CHECKBOX
PROCEDURE choices.CLICK
   PARAMETER nIndex
   DO CASE
      CASE nIndex = 1
         * code
      CASE nIndex = 2
         * code
      CASE nIndex = 3
         * code
   ENDCASE
ENDPROC
ENDDEFINE

Cuando un usuario hace clic en un control incluido en una matriz de controles, Visual FoxPro transfiere el número de índice del control al procedimiento de evento Click. En este procedimiento, puede utilizar una instrucción CASE para ejecutar código distinto según el botón en el que se haya hecho clic.

Crear matrices de objetos

También puede crear matrices de objetos. Por ejemplo, MyArray contiene cinco botones de comando:

DIMENSION MyArray[5]
FOR x = 1 TO 5
   MyArray[x] = CREATEOBJECT("COMMANDBUTTON")
ENDFOR

Hay una serie de consideraciones que conviene tener en cuenta con respecto a las matrices de objetos:

  • No se puede asignar un objeto a una matriz completa mediante un comando. Es necesario asignar individualmente el objeto a cada miembro de la matriz.

  • No se puede asignar un valor a una propiedad de una matriz completa. El comando siguiente produciría un error:

    MyArray.Enabled = .F.
    
  • Al redimensionar una matriz de objetos para que sea más grande que la matriz original, los elementos nuevos se inicializarán como falso (.F.), como ocurre con todas las matrices de Visual FoxPro. Cuando redimensione una matriz de objetos para que sea más pequeña que la matriz original, se liberarán los objetos cuyo subíndice sea mayor que el mayor subíndice nuevo.

Vea también

Escribir definiciones de clases mediante programación | Crear una referencia de objeto | Almacenamiento de datos con objetos | Integración de objetos y datos | Programación orientada a objetos