Помещает экземпляры класса в массив переменных памяти и возвращает число занесенных в массив экземпляров.

AINSTANCE(ArrayName, cClassName)

Параметры

ArrayName

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

В массив заносятся только экземпляры класса, назначенные переменным памяти и элементам массива с помощью функции CREATEOBJECT( ) или NEWOBJECT( ).

cClassName

Задает имя базового класса Visual FoxPro или класса, определенного пользователем. Полный список базовых класов Visual FoxPro смотрите Базовые класы в Visual FoxPro.

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

Числовое

Expand imageПример

В следующем примере функция CREATEOBJECT( ) используется для создания двух экземпляров базового класса Form системы Visual FoxPro. Функция AINSTANCE( ) создает массив gaMyArray, который содержит ссылки в виде переменных памяти (goINSTANCE1 и goINSTANCE2) для каждого экземпляра формы. Затем содержимое массива выводится на экран.

  CopyCode imageCopy 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

Expand imageСмотрите также