Поскольку Visual FoxPro действует как сервер, так и клиент, то приложения, которые поддерживают автоматизацию, могут использовать экземпляр Visual FoxPro, запускать команды Visual FoxPro и получать доступ к объектам Visual FoxPro.
Вы можете управлять Visual FoxPro из других приложений с помощью объекта Visual FoxPro Application. Объект Application автоматически создается каждый раз, когда запускается Visual FoxPro, либо непосредствено, через DDE, или через Automation.
Например, приведенные ниже строки кода в Visual Basic®, или модуль Microsoft Excel создают ссылку на объекта приложения Visual FoxPro:
![]() | |
---|---|
Dim oFox as Object Set oFox = CreateObject("VisualFoxPro.Application") |
После того, как вы получите ссылку на объект приложения Visual FoxPro, вы можете вызывать методы, ассоциированные с объектом приложения и имет доступ к другим объектам, через свойства коллекций объекта приложения.
Приведенный ниже пример использует код Visual Basic for Applications в модуде Excel для создания объекта приложения Visual FoxPro, открывает таблицу Visual FoxPro и добавляет результат исполнения запроса в активный лист рабочей книги:
![]() | |
---|---|
Sub FoxTest() Dim oFox as Object Set oFox = CreateObject("VisualFoxPro.Application") oFox.DoCmd "USE customer" oFox.DoCmd "SELECT contact, phone FROM customer WHERE country = " + Chr$(39) + USA+ Chr$(39) + " INTO CURSOR cust" oFox.DataToClip "cust",,3 Range("A1:B1").Select ActiveSheet.Paste End Sub |
Объектная модель Visual FoxPro Application
Объект приложения автоматически создается каждый раз, когда запускается Visual FoxPro, либо непосредствено, через DDE, или через Automation. Этот объект приложения предоставляет доступ ко всем другим объектам, созданным в сессии Visual FoxPro посредством свойств Collection.

Получения доступа к объектам через свойства Collection
Объект приложения Visual FoxPro и все контейнерные объекты в Visual FoxPro имеют свойство count и свойства коллекций, ассоциированных с ними. Свойство collection представляет собой массив, со ссылками на каждый содержащийся в контейнере объект. Свойство count представляет собой число, указывающее число содержащихся в контейнере объектов.
В приведенной ниже таблице пречислены объекты и соответствующие свойства коллекций и счетчиков.
Объект | Свойство Collection | Свойство Count |
---|---|---|
Эти свойства позволяют вам использовать программный цикл для управления всеми или конкретными объектами, содержащимися в контейнере. Например, приведенные ниже строки кода установливают свойство Visible для всех форм в значение True (.T.):
![]() | |
---|---|
FOR EACH Form IN Application.Forms Form.Visible = .T. ENDFOR |