Поскольку Visual FoxPro действует как сервер, так и клиент, то приложения, которые поддерживают автоматизацию, могут использовать экземпляр Visual FoxPro, запускать команды Visual FoxPro и получать доступ к объектам Visual FoxPro.

Вы можете управлять Visual FoxPro из других приложений с помощью объекта Visual FoxPro Application. Объект Application автоматически создается каждый раз, когда запускается Visual FoxPro, либо непосредствено, через DDE, или через Automation.

Например, приведенные ниже строки кода в Visual Basic®, или модуль Microsoft Excel создают ссылку на объекта приложения Visual FoxPro:

  CopyCode imageСкопировать код
Dim oFox as Object
Set oFox = CreateObject("VisualFoxPro.Application")

После того, как вы получите ссылку на объект приложения Visual FoxPro, вы можете вызывать методы, ассоциированные с объектом приложения и имет доступ к другим объектам, через свойства коллекций объекта приложения.

Методы объекта Application

Приведенный ниже пример использует код Visual Basic for Applications в модуде Excel для создания объекта приложения Visual FoxPro, открывает таблицу Visual FoxPro и добавляет результат исполнения запроса в активный лист рабочей книги:

  CopyCode imageСкопировать код
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.

Объектная модель Visual FoxPro Application

Visual FoxPro application object model graphic

Получения доступа к объектам через свойства Collection

Объект приложения Visual FoxPro и все контейнерные объекты в Visual FoxPro имеют свойство count и свойства коллекций, ассоциированных с ними. Свойство collection представляет собой массив, со ссылками на каждый содержащийся в контейнере объект. Свойство count представляет собой число, указывающее число содержащихся в контейнере объектов.

В приведенной ниже таблице пречислены объекты и соответствующие свойства коллекций и счетчиков.

 

Эти свойства позволяют вам использовать программный цикл для управления всеми или конкретными объектами, содержащимися в контейнере. Например, приведенные ниже строки кода установливают свойство Visible для всех форм в значение True (.T.):

  CopyCode imageСкопировать код
FOR EACH Form IN Application.Forms
   Form.Visible = .T.
ENDFOR

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