Функция ASELOBJ()

Помещает в массив переменных памяти указатели на выбранные в данный момент элементы управления в активном конструкторе форм.

Синтаксис:

ASELOBJ(ArrayName, [1 | 2])

Параметры:
ArrayName
Задает имя массива, содержащего ссылки на выбранные в данный момент элементы управления. Если задано имя несуществующего массива, Visual FoxPro автоматически создает такой массив. Если задано имя существующего массива, не вмещающего всю информацию об элементах управления, Visual FoxPro автоматически увеличивает размер массива. Если в массиве больше элементов, чем необходимо, он укорачивается. Если массив уже существует и функция APRINTERS() возвращает 0 из-за отсутствия на данный момент выбранных элементов управления, массив не изменяется. Если массив не существует и функция APRINTERS() возвращает 0, массив не создается.
1
Cоздает массив из одного элемента, содержащий ссылку на объект-контейнер выбранного в данный момент элемента управления. Например, если выбранным элементом управления является поле ввода значения в форме, массив будет содержать элемент со значением "FORM". Заметьте, что если выбран объект PageFrame, функция ASELOBJ() возвращает имя текущей страницы.
2
Указывает, что Visual FoxPro создает массив из одного элемента, содержащего ссылку на объект DataEnvironment данной формы. Объект DataEnvironment позволяет определить для формы свойства среды данных.

Результат:
Числовой

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

Пример:

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

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

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем.