Размещает объектные ссылки текущих выделенных Контролов, или объектов, достуаных в настоящий момент в Дизайнере Форм или Дизайнере Классов или в системном окне Редактирования; данные объектные ссылки размещаются в указанном массиве переменных памяти. Когда рассматриваемая функция ASELOBJ( ) вызывается при открытом окне Редактирования в указанном массиве также указываются имена соответствующих программных файлов: форм (.scx), библиотек визуальных классов (.vcx), и заголовочных файлов, с командами #INCLUDE. Рассматриваемая функция ASELOBJ( ) рекомендуется для использования при создании Построителей Контролов (Control Builders).

ASELOBJ( ArrayName, [ 1 | 2 | 3 ] )

Параметры

ArrayName

Определяет имя массива, который используется для размещения требуемой информации.

1

Создается Одномерный массив для расмещения объектных ссылок активных выделенных Контролов.

Например, если активным выделенным контролом является объект Spinner, размещенный на форме form, то результирующий массив содержит значение "FORM." При выполнении функции ASELOBJ( ) в системном Командном окне, включите данный аргумент.

NoteПримечание

Когда выделенным является объект page frame, ASELOBJ() возвращает имя текущей активной страницы (Page) указанного Контейнера.

2

Создается Двумерный массив, содержащий объектные ссылки для контейнера класса DataEnvironment текущей Формы. Объект- контейнер класса DataEnvironment может быть использован вами для определения различных свойств Среды Данных рассматриваемой Формы.

3

Создается Трехмерный массив, который содержит информацию об объектах, содержащихся в настоящий момент в системном окне Редактирования: объектные ссылки для контейнерных объектов (объектов-контейнеров), полные пути и имена  для файлов форм и библиотек Классов (.scx / .vcx), а также пути к файлом заголовков, содержащих команды ПредПроцессора #INCLUDE, если таковые используются.

В следующей Таблице представлена Структура размещения требуемой информации в создаваемых Массивах:

Элемент Массива Краткое Описание

1

Объектная ссылка на объект - Контейнер

2

Полный путь и имя соответствующего файла формы или библиотеки классов (.scx / .vcx)

3

Полный путь и имя файла заголовка, содержащего команды #INCLUDE, если он используется

NoteПримечание

Если заголовочный файл не используется  - то данный элемент = пустой строке.

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

Числового типа (Numeric). Функция ASELOBJ( ) возвращает количество выделенных объектов. Результирующий массив содержит три столбца в каждой строке для каждого выделенного объекта.

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

Если Контрол выделен, а аргумент - параметр 1, отсутствует, ASELOBJ( ) возвращает значение = 0 и информационный массив не создается. Если в рассматриваемой форме отсутствуют выделенные элементы, функция ASELOBJ( ) не считает форму как объект, как выделенный Контрол. Если требуемый Контрол выделен, а параметр 1 указан в функции, ASELOBJ( ) возвращает значение = 1.

Если указанный массив не существует, система Visual FoxPro автоматически создает указанный Массив.

Если уже существующий массив имеет недостаточную размерность, для размещения запрашиваемой информации, система Visual FoxPro автоматически увеличит размерность результирующего массива для размещения всей требуемой информации. Если размерность массива достаточно велика - массив будет укорочен до требуемых размеров.

Если массив уже существует, а функция ASELOBJ( )возвращает значение = 0, так как отсутствуют выделенные Контролы, то указанный массив не изменяется: ни его содержание, ни его размерность. Если указанного массива не существует, а функция возвращает значение = 0, то указанный массив не создается.

Expand imageПример

Перед тестированием (выполнение) представленного ниже примера: откройте новую форму в соответствующем Дизайнере Форм, создайте на форме один или несколько Контролов, имеющих свойство Caption, такими контролами могут быть Label или CommandButton. Выделите несколько созданных Контролов (операция MultySelect), выполните программный код примера. Функция ASELOBJ( ) отображает имена выбранных, отмеченных Контролов, а также значения соответствующих свойств Caption.

  CopyCode imageКопировать Код
gnobjects = ASELOBJ(gaSelected) && Create array of control names
IF gnobjects > 0 && 0 indicates no controls selected
CLEAR
DISPLAY MEMORY LIKE gaSelected && Displays selected controls
FOR nCnt = 1 TO gnobjects
? gaSelected(nCnt).Caption + ' => New Caption ' ;
+ LTRIM(STR(nCnt)) && Display old and new caption
gaSelected(nCnt).Caption = 'New Caption ' ;
+ ALLTRIM(STR(nCnt)) && Assign new caption
NEXT
ENDIF

Expand imageСм. также