Создает новый экземпляр некоторого Класса или Объекта из соответствующей библиотеки классов, файл (.vcx), или из программного файла (.prg), без предварительного открытия данной библиотеки классов.

NEWOBJECT(cClassName [, cModule [, cInApplication | 0
[, eParameter1, eParameter2, ...]]])

Параметры

cClassName

Определяет имя класса или объекта, экземпляр которого требуется создать.

cModule

Определяет имя библиотеки визуальных классов, файл .vcx, или некоторый программный файл Visual FoxPro (.prg, .fxp, .mpr, .app, .exe, и другие), который может содержать описание требуемого Класса с именем cClassName. По-умолчанию, предполагается библиотека визуальных классов, файл с расширением = .vcx. Если вам необходимо указать программный файл, то вам нужно указать соответствующее расширение программного файла.

NoteПримечание

Библиотека классов может содержать некоторый Алиас (псевдоним). Для указанания конкретного Класса из соответствующей библиотеки классов, при этом не указывая саму библиотеку, определяете имя класса как: "Library.Class", как ссылку на соответствующий объект.

По возможности, указывайте компилированный программный файл (.fxp), когда требуемый класс определен в соответствующем программном файле (.prg). Данная конструкция обеспечивает загрузку самых последних версий создаваемого класса.

Если указываемый модуль cModule - отсутствует, или передается пустая строка, или значение = Null, система Visual FoxPro выполняет поиск требуемого определения класса в следующем порядке:

  • Базовые Классы системы Visual FoxPro.

  • Классы, определенные в текущем программном модуле.

  • В библиотеках визуальных классов, открытых при помощи команды SET CLASSLIB.

  • Классы, описанные в процедурных файлах, открытых при помощи команды SET PROCEDURE.

  • Классы, описанные в программных модулях Visual FoxPro,  выполняемых в настоящий момент.

  • Классы реестра OLE, если выполняется текущая установка SET OLEOBJECT = ON.

cInApplication

Определяет некоторое Приложение Visual FoxPro (.exe или .app), содержащее требуемую библиотеку классов (.vcx), содержащую указанный класс cModule. Вы болжны указать расширение программного приложения. Параметр cInApplication игнорируется, если параметр cModule отсутствует, или если cInApplication - есть пустая строка или значение = Null.

Если вы используете значение данного параметра cInApplication, в качестве библиотеки классов должен быть указан файл .vcx, для класса cModule. Вы не можете определять, в этом случае, некоторый программный класс .prg или соответствующий компилированный (.fxp).

0

Определяет, что при создании требуемого класса или объекта, не выполняются соответствующие События или Методы создаваемого экземпляра класса. Данная функциональность не поддерживается для приложений, выполняемых в режиме Run-Time.

Все соответствующие дочерние классы или объекты также инициализируются. Но соответствующие программные кода Событий и Методов - не выполняются.

Данная функциональность обеспечивает возможность просмотра Структуры создаваемого класса или объекта (например, при помощи  AMEMBERS( ), функции), без открытия рассматриваемого объекта или класса в соответствующем Дизайнере Классов.

Примечание. При использовании данной функциональности, соответствующие программные коды Событий и Методов созданных классов не будут выполняться, что переводит систему Visual FoxPro в неустойчивое положение. Для выполнения указанных Свойств и методов вам требуется задавать значения специальным Свойствам, которые программируются методами: Access / Assign.

eParameter1, eParameter2, ...

Определяет список некоторых параметров, передаваемых в событие Init , создаваемого объекта или Класса.

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

Объект

Expand imageКомментарии

Для доступа к ссылке на создаваемый рассматриваемой функцией объектNEWOBJECT( ) используется некоторая переменная или элемент массива, в который ссылка передается либо оператором присваивания  (=) или с помощью команды STORE. При удалении создаваемого объекта или класса переменная или элемент массива, которые содержали объектную ссылку на данный объект, принимают значение = Null. Для полного удаления указанной переменной или элемента массива используйте соответствующую команду RELEASE.

Для текущего выполнения рассматриваемой функции NEWOBJECT( ), Visual FoxPro определяет внутреннее выполнение соответствующих команд SET CLASSLIB или SET PROCEDURE для однозначного определения второго и третьего параметров данной функции, при этом используется ключевая опция: ADDITIVE; библиотека классов или процедурный файл размещаются в начале списка соответствующих файлов. Если указывваемая библиотека имеется в списках библиотек или процедурных файлов, открытых при помощи команд SET CLASSLIB / SET PROCEDUREst, Visual FoxPro изменяет порядок поиска требуемого класса. После успешного поиска требуемого описания класса система Visual FoxPro создает требуемый объект, выполняет событие Init данного объекта. Наконец, восстанавливается начальная последовательность списков визуалных библиотек и процедурных файлов, действующая до выполнения рассматриваемой функции.

Соответствующие объекты OLE создаются при использовании следующего синтаксиса, для параметра cClassName:

  CopyCode imageКопировать Код
ApplicationName.Class

Например, для создания объекта Microsoft Excel worksheet, который поддерживает механизм OLE-Automation, используйте синтаксис:

  CopyCode imageКопировать Код
oExcelSheet = NEWOBJECT('Excel.Sheet')

Expand imageСм. также