Программированиеи компьютеры /
←предыдущая следующая→
1 2 3
МИНИСТЕРСТВО ОБЩЕГО И ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
ВОЛГОГРАДСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
Кафедра «САПР и ПК»
Семестровая работа
тема:
«Visual FoxPro 5.0 как OLE-cервер»
Выполнил: студенты группы АС-563
Маштак О.Н.
Проверил:
Волгоград 1999г.
Содержание:
1. Visual FoxPro как OLE-сервер 2
2. Создание OLE-сервера в Visual FoxPro 7
3. OLE-сервер в компьютерной сети 11
4. Automation Manager 14
5. Remote Automation Connection Manager 15
Visual FoxPro как OLE-сервер
Начиная с пятой версии, Visual FoxPro может выполнять функции OLE-сервера. OLE-сервер — это приложение, которое может предоставить свои объекты для уп¬равления другой программе, поддерживающей OLE Automation.
Эта новая возможность существенно расширяет возможности использования Vis¬ual FoxPro, поэтому остановимся чуть подробнее на том, что же такое OLE-сервер.
Большинство OLE-серверов являются так называемыми серверами Out-of-Process. Они представляют из себя исполняемые программы (файлы с расширением ЕХЕ) и могут взаимодействовать как с 16-bit, так и с 32-bit OLE-контроллерами. Расплатой за это является невысокая скорость обмена данными и потребляемые значительные ресурсы памяти. Другой тип OLE-сервера называется In-Process и представляет из себя DLL-библиотеку, которая динамически подгружается и вы¬гружается в зависимости от необходимости. Хорошим примером такого сервера является процессор баз данных СУБД Access 7.0. Обмен данными с этим типом OLE-сервера происходит значительно быстрее, но работать он может только с OLE-контроллером такой же разрядности.
В Visual FoxPro доступ к объектам выполняется, как и в подавляющем большин¬стве других OLE-серверов, с помощью объекта верхнего уровня Application. В табл. 1 перечислены его свойства, а в табл. 2 — методы.
Свойства Объекта Application
Таблица 1.
Свойство Параметры и описание
ActiveForm.Property
[ = Setting]
ActiveForm.Method Property - свойство формы.
Setting - значение свойства.
Method - метод формы.
Обеспечивает ссылку на активную форму или объект SCREEN
AutoYield [ = IExpr ] IExpr по умолчанию равен .Т., что предусматривает приоритет событий Windows. Значение .F. предотвращает прерывание выполнения кода Visual FoxPro. При этом события Windows ставятся в очередь. Определяет способ обработки событий Windows.
Caption [ = cText ] cText - текст заголовка.
Определяет заголовок окна приложения.
DefaultFilePath [ = сPath ] сPath - обозначение устройству каталога или путь.
Определяет каталог по умолчанию для приложения.
Определяет путь и имя файла для запуска копии Visual FoxPro.
Height [ = nHeight ] nHeight - высота окна приложения. Определяет высоту окна приложения.
Let [ = nDist ] nDist - расстояние от левого края.
Определяет расположение окна приложения относительно левого края.
Name [ = cName] cName - имя объекта.
Задает имя объекта для ссылки в коде программы.
OLERequestPendingTimeOut
[ = Nmilliseconds ] Nmilliseconds - величина задержки в миллисекундах, которая по умолчанию равна 5000 мс. Если параметр равен 0, то сообщение не появляется.
Определяет задержку, которая происходит перед появлением сообщения о том, что система занята в процессе выполнения запроса OLE Automation, если пользователь использует клавиатуру или мышь.
OLEServerRaiseError [ = lExpression ] lExpression по умолчанию равен .F. - сообщение об ошибке будет появляться. Если параметр равен .Т., сообщения будет.
Определяет появление сообщения об ошибке, когда истекает время, установленное в свойстве OLEServerBusyTimeout.
OLEServerBusyTimeout [ = Nmilliseconds ] nMilliseconds - величина задержки в миллисекундах до по¬явления сообщения о том, что сервер занят.
Определяет время, в течение которого происходит повторное выполнение запроса OLE Automation, если сервер занят.
StartMode Возвращает число, идентифицирующее тип запускаемого приложения.
StatusBar [ = cMessageText ] cMessageText - строка сообщения. Определяет текст в статус - строке приложения.
Top [ = nDist ] nDist — расстояние от верхнего края.
Определяет расположение окна приложения относительно верхнего края.
Version Возвращает в виде строки символов номер версии запускае¬мого приложения.
Visible [ = lExpr ] lExpr по умолчанию равен .F., т. е. запускаемая копия при¬ложения невидима. Если параметр lExpr равен .Т. - прило¬жение становится видимым.
Определяет, будет ли запускаемая копия приложения видима.
Width [ = nWidth ] nWidth — ширина окна приложения. Определяет ширину окна приложения.
Методы Объекта Application
Таблица 1.
Метод Параметры и описание
DataToClip ([ nWorkArea | cTableAlias ] [, nRecords ] [, nClipFormat]) nWorkArea, cTabieAlias — рабочая область или псевдоним источника данных.
nRecords — число копируемых записей. uClipFormat по умолчанию равен 1, при этом данные полей разделяются пробелами. Если параметр равен 3, данные раз¬деляются знаком табуляции.
Копирует записи в буфер обмена в виде текста, в котором каждая запись занимает отдельную строку.
DoCmd (cCommand) cCommand - выражение, представляющее команду VFP.
Позволяет выполнить команду Visual FoxPro из приложе¬ния являющегося OLE-контроллером.
Eval (cExpression) cExpression - выражение, которое необходимо преобразовать.
Преобразует выражения и возвращает его в Visual FoxPro.
Help ([cFileName] [, nContexId] [, cHelpTopic]) cFileName - имя и путь к файлу оперативной помощи. NContextID - идентификатор раздела. cHelpTopic - тема раздела.
Открывает окно с контекстной справкой.
Quit() Закрывает запущенную копию приложения Visual FoxPro.
RequestData ([nWorkArea | cTableAlias] [, nRecords]) nWorkArea, cTableAlias - рабочая область или псевдоним источника данных. nRecords - число копируемых записей.
Создает массив с данными из источника данных Visual FoxPro.
Для ссылки на объект Application можно использовать системную переменную _VFP.
Visual FoxPro 5.0 имеет следующие коллекции, которые ассоциируются с объек¬том Application:
• Forms — формы;
• Objects — объекты;
• Controls — элементы управления;
• Pages — страницы;
• Buttons — кнопки;
• Columns — колонки.
При этом обратите внимание, что эти коллекции являются коллекциями исключительно OLE-объектов и могут использоваться только с объектом Application. К этим коллекциям нельзя обращаться, используя ассоциированные переменные с включенными в них объектами. Вы должны использовать свойство Application, как это показано ниже:
oFrm = CREATEOBJECT( 'Form')
? oFrm.Application.Forms[1].Controls.Count
Если вы уже писали программы в Visual FoxPro 3.0, то приведенное выше утверж¬дение может вызвать некоторое удивление. Перечисленные коллекций были пред¬ставлены и в третьей версии, это действительно так. Но, так как Visual FoxPro 3.0 не мог выполнять функции OLE-сервера, то эти коллекции не отвечали общепринятым стандартам OLE. В первую очередь за счет того, что их свойства были доступны для изменения. Это удобно, если мы работаем с одним приложением. По-прежнему нам никто не мешает продолжать использовать эти возможности. Но, как только мы начинаем использовать приложение как OLE-сервер, т. е. обращаемся к нему из другого приложения, то должны использовать объекты Visual FoxPro как OLE-коллекции.
Например, ничто не мешает нам при создании формы в Visual FoxPro написать такой код:
Frm = CREATEOBJECT ('Form' )
? oFrm.ControlCount &&Число элементов управления в форме
Для OLE-сервера число элементов управления в форме следует определять так, как это было показано в предыдущем примере, с использованием свойства Count.
Создание OLE-сервера в Visual FoxPro
Используя Visual FoxPro 5.0, можно создать OLE-сервер, функциональность которого будет использована несколькими приложениями.
Для создания OLE-сервера используемые в нем классы должны быть описаны как OLE Public, т. е. доступные для OLE Automation. Для этого в команду DEFINE CLASS включена новая опция OLEPUBLIC. Если класс создается в Конструкторе классов, необходимо использовать соответствующий независимый переключа¬ть в диалоговом окне Class Info. Отметка класса как OLE Public позволяет Project Manager при построении приложения создавать и регистрировать данный класс как ОLЕ-сервер к которому должен получить доступ OLE-контроллер.
В Visual FoxPro вы можете создать как In-Process сервер (DLL), так и Out-of-Process сервер (ЕХЕ). Оба типа сервера при работе используют библиотеку поддержки приложений Visual FoxPro (runtime), однако существенно отливаются в использовании памяти.
Сервер ЕХЕ запускается в собственном адресном пространстве,
←предыдущая следующая→
1 2 3
|
|