Помещает экземпляры класса в массив переменных памяти и возвращает число занесенных в массив экземпляров.
Синтаксис:
AINSTANCE(ArrayName, cClassName)
Параметры:
ArrayName
Задает имя массива, в который помещаются экземпляры класса. Если задано имя несуществующего массива, Visual FoxPro автоматически создает такой массив. Если задано имя существующего массива, который не в состоянии вместить все экземпляры, Visual FoxPro автоматически увеличивает размер массива надлежащим образом. Если в массиве больше элементов, чем необходимо, Visual FoxPro укорачивает его. Если массив уже существует и функция AINSTANCE() возвращает 0, не найдя ни одного экземпляра, то массив не изменяется. Если массив не существует и функция AINSTANCE() возвращает 0, то массив не создается.
В массив заносятся только экземпляры класса, назначенные переменным памяти и элементам массива с помощью функции CREATEOBJECT().
cClassName
Задает имя базового класса Visual FoxPro или класса, определенного пользователем. В следующей таблице приведен список имен базовых классов Visual FoxPro, которые можно задавать в качестве cClassName.
Имена базовых классов
CheckBox Label Column Line ComboBox ListBox CommandButton OLEControl CommandGroup OLEBoundControl Container OptionButton Control OptionGroup Cursor Page Custom PageFrame DataEnvironment Relation EditBox Separator Form Shape FormSet Spinner Grid TextBox Header Timer Image ToolBar
Результат:
Числовой
Пример:
* В следующем примере функция CREATEOBJECT( ) используется для * создания двух экземпляров базового класса Form системы Visual FoxPro. * Функция AINSTANCE( ) создает массив gaMyArray, который содержит две * ссылки в виде переменных памяти (goINSTANCE1 и goINSTANCE2) для двух * экземпляров формы. Затем содержимое массива выводится на экран. CLEAR ALL goINSTANCE1 = CREATEOBJECT('Form') goINSTANCE2 = CREATEOBJECT('Form') CLEAR ? AINSTANCE(gaMyArray, 'Form') && Returns 2, two form instances DISPLAY MEMORY LIKE gaMyArray && Displays the references