Функция CREATEOBJECT( )

Создает объект на основе определения класса или на основе доступного приложения OLE.

Синтаксис:

CREATEOBJECT(ClassName [, eParameter1, eParameter2, ...])

Параметры:
ClassName
Задает класс или объект OLE, из которого будет создаваться новый объект. Visual FoxPro ищет класс или объект OLE в следующем порядке:

  1. Среди базовых классов Visual FoxPro.
  2. Среди хранящихся в памяти определений классов, принадлежащих пользователям, в порядке их загрузки.
  3. Среди классов в текущей программе.
  4. Среди классов библиотек .VCX, открытых по команде SET CLASSLIB.
  5. Среди классов в файлах процедур, открытых по команде SET PROCEDURE.
  6. Среди классов в цепочке выполнения программ Visual FoxPro.
  7. В реестре Windows (для объектов OLE).

Для создания объектов OLE применяется следующий синтаксис имени ClassName:

ApplicationName.Class

Например, чтобы создать электронную таблицу в Microsoft Excel (с помощью средства автоматизации OLE), можно воспользоваться следующим синтаксисом:

x = CREATEOBJECT('Excel.Sheet')

При выполнении этого кода будет запущено приложение Microsoft Excel (если оно еще не работает) и создана новая электронная таблица.
Библиотека классов может иметь псевдоним. Чтобы задать объект в библиотеке классов с помощью псевдонима, нужно указать этот псевдоним и за ним после точки имя объекта.
eParameter1, eParameter2, ...,
Эти необязательные параметры используются для передачи значений в процедуру обработки события Init для данного класса. Событие Init выполняется при выдаче функции CREATEOBJECT( ) и позволяет инциализировать объект.

Результат:
Объект

Комментарии:
Используйте функцию CREATEOBJECT( ) для создания объекта на основе определения класса или на основе приложения, поддерживающего анимацию OLE, и присваивайте ссылку на объект переменной памяти или элементу массива.
Чтобы иметь возможность создавать объект из класса, определенного пользователем, этот класс должен быть предварительно создан командой DEFINE CLASS или доступен в библиотеке визуальных классов .VCX, открытой по команде SET CLASSLIB.
Чтобы присвоить ссылку на объект переменной памяти или элементу массива, используйте оператор = или STORE. Если назначенный переменной памяти или элементу массива объект освобождается, эта переменная памяти или элемент массива содержит значение NULL. Используйте команду RELEASE для удаления переменной памяти или элемента массива из памяти.

Пример:

* В следующем примере команда DEFINE CLASS и функция CREATEOBJECT(
* ) используются для создания двух нестандартных классов, FormChild и
* FormGrandChild, на основе базового класса Form системы Visual FoxPro.
* Функция ACLASS( ) создает массив gaNewarray, содержащий имена
* классов, которые затем выводятся на экран.

CLEAR
frmMyForm = CREATEOBJECT("FormGrandChild")
FOR nCount = 1 TO ACLASS(gaNewarray, frmMyForm) 	&& Creates an array
	? gaNewarray(nCount)  && Displays the names of the classes
ENDFOR
RELEASE frmMyForm

DEFINE CLASS FormChild AS FORM
ENDDEFINE

DEFINE CLASS FormGrandChild AS FormChild
ENDDEFINE

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