Размещает имена Свойств, Процедур (Методов и Событий), а также членов объекта (других вложенных объектов) для указанного Объекта в массив переменных памяти.

AMEMBERS(ArrayName, oObjectName | cClassName [, nArrayContentsID] [, cFlags])

Параметры

ArrayName

Определяет имя массива переменных памяти, в который будут размещены имена Свойств и Процедур заданного объекта oObjectName. Если вы указываете имя несуществующего массива, этот массив будет автоматически создан. Если указанный массив существует, но имеет недостаточный размер для размещения имен Свойств объекта, система Visual FoxPro автоматически увеличит его разиерность до необходимых размеров.

oObjectName

Определяет объектную ссылку, для объекта которой имена Свойств и Процедур размещаются в заданном массиве ArrayName. oObjectName может быть реально вычисляемой объектной ссылкой: или непосредственно существующий объект, или объектная переменная, или элемент массива, содержащий объектную ссылку.

cClassName

Определяет наименование базового Класса Visual FoxPro, имена членов которого, имена Свойств и Процедур размещаются в указанный массив  ArrayName.

nArrayContentsID
  Краткое описание Опционального Параметра

0

(По-умолчанию) Определяет, что создается одномерный массив Имен Свойств Объекта. Отсутствие этого параметра nArrayContentsID приравнивается к 0.

1

Определяет, что массив содержит имена свойств объекта или класса, а также имена Процедур и членов объекта. Результирующий массив являет Двумерным, во втором столбце размещается характеристика Типа компоненты массива, размещенного в первом столбце. Возможные значения для второго столбца: Property, Event, Method, Object.

2

Определяет, что массив содержит имена членов объекта, как базовых классов (native) системы Visual FoxPro, которые входят в указанный объект oObjectName. Результирующий массив является Одномерным.

Данный параметр обычно используется для получения результирующего массива дочерних объектов начального объекта - контейнера, например Form / Grid

3

Определяет, что в результирующий массив размещается информация об одном или нескольких объектах (иерархическая структура).В качестве объектной ссылки в этом случае можно указать как объект Visual FoxPro, так и объект COM.

NoteПримечание

Данный параметр (= 3) не поддерживается для режима RunTime, для готовых приложений VFP:  .app / .exe.

Результирующий массив может содержать несколько столбцов, которые содержат следующую информацию:

Столбец Краткое Описание

1

Имя Свойства, События, Метода, или члена Объета

2

Тип Свойства (компоненты) (например, PROPERTYPUT, PROPERTYGET, PROPERTYPUTREF, METHOD)

3

Функциональная Сигнатура (количество и типы передаваемых параметров, а также тип возвращаемого значения). Данная информация аналогична краткому описанию методов в объектах COM, которая используется обычно в подсистеме IntelliSense .

4

Краткое описание назначения компоненты (Help)

Если вы не указываете параметр nArrayContentsID, AMEMBERS( ) возвращает одномерный массив имен Свойств Объекта.

cFlags

Определяет, как может фильтроваться получаемая информация, размещаемая в результирующий имассив. Данный параметр cFlags не может использоваться для объектов COM (nArrayContentsID = 3). Некоторые значения данного параметра cFlag являются взаимоисключающими, поэтому рекомендуется их использовать по следующим правилам Групптровки:

[P | H | G], [N | U], [C], [I | B] [R]

В следующей таблице описано назначение перечисленных значений данного параметра cFlags.

Значение Фильтр

P

Свойства, методы, события с характеристикой "Protected"

H

аналогично: Hidden

G

аналогично: Public 

N

Внутренние, базовые Свойства, методы, события объекта

U

Пользовательские  Свойства, методы, события

C

Измененные значения Свойств

I

Унаследованные Свойства, методы, события от родительского класса

B

Базисные Свойства (созданные с использование метода AddProperty)

R

Свойства с характеристикой "Read-Only"

По-умолчанию, указываемые значения данного параметра соединяются по правилу "логического Или". Вы можете изменить данное правило обработки указанных флагов, для этого используется обычная операция "+" cFlags.

Значение Специальный Флаг

#

Добавить новый столбец в результирующий массив, с соответствующим значение указанного флага cFlags.

+

Использовать в качестве соединения заданных параметров правило "логического И" (logical AND between filter flags).

Expand imageВозвращаемое значение

Числового типа (Numeric)

Expand imageКомментарии

Функция AMEMBERS( ) возвращает количество объектов, свойств, и процедур, содержащихся в данном объекте, имена которых размещаются в указанном массиве, или значение = 0, если массив не может быть создан. Если вы не указываете опциональные параметры: 1, 2, или 3, то создается одномерный массив, содержащий имена Свойств указанного объекта oObjectName.

Вы можете вторым параметром указать ссылку на внешний объект COM для данной функции AMEMBERS( ), в этом случае требуется третьим параметром указать значение = 3, как показано в следующем примере программного кода.

 CopyCode imageКопировать Код
oExcel = CREATEOBJECT("excel.application")
= AMEMBERS(gaPropArray, oExcel, 3)

Expand imageПример

В следующем примере, с помощью функции CREATEOBJECT( ) создается объект Формы с именем goForm1. Функция AMEMBERS( ) используется для создания массива gaPropArray, содержащего имеющиеся Свойства данной формы; данные Свойства отображаются на экране.

 CopyCode imageКопировать Код
CLEAR
goForm1 = CREATEOBJECT("Form") && Creates a Form
= AMEMBERS(gaPropArray, goForm1, 1) && Array containing Form properties
DISPLAY MEMORY LIKE gaPropArray && Display the Form properties

Expand imageСм. также