Помещает экземпляры класса в массив переменных памяти и возвращает число занесенных в массив экземпляров.
AINSTANCE(ArrayName, cClassName) |
Параметры
- ArrayName
-
Задает имя массива, в который помещаются экземпляры класса. Если задано имя несуществующего массива, Visual FoxPro автоматически создает такой массив. Если задано имя существующего массива, который не в состоянии вместить все экземпляры, Visual FoxPro автоматически увеличивает размер массива надлежащим образом. Если в массиве больше элементов, чем необходимо, Visual FoxPro укорачивает его. Если массив уже существует и функция AINSTANCE( ) возвращает 0, не найдя ни одного экземпляра, то массив не изменяется. Если массив не существует и функция AINSTANCE( ) возвращает 0, то массив не создается.
В массив заносятся только экземпляры класса, назначенные переменным памяти и элементам массива с помощью функции CREATEOBJECT( ) или NEWOBJECT( ).
- cClassName
-
Задает имя базового класса Visual FoxPro или класса, определенного пользователем. Полный список базовых класов Visual FoxPro смотрите Базовые класы в Visual FoxPro.
Возвращаемое значение
Числовое
Пример
В следующем примере функция CREATEOBJECT( ) используется для создания двух экземпляров базового класса Form системы Visual FoxPro. Функция AINSTANCE( ) создает массив gaMyArray, который содержит ссылки в виде переменных памяти (goINSTANCE1 и goINSTANCE2) для каждого экземпляра формы. Затем содержимое массива выводится на экран.
Copy Code | |
|---|---|
CLEAR ALL
goINSTANCE1 = CREATEOBJECT('Form')
goINSTANCE2 = CREATEOBJECT('Form')
CLEAR
? AINSTANCE(gaMyArray, 'Form') && Returns 2, two form instances
DISPLAY MEMORY LIKE gaMyArray && Displays the references | |