OLE-Fox (OLE VFP)

2016-07-31СтудИзба

Описание файла

Документ из архива "OLE VFP", который расположен в категории "". Всё это находится в предмете "информатика" из , которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "рефераты, доклады и презентации", в предмете "информатика, программирование" в общих файлах.

Онлайн просмотр документа "OLE-Fox"

Текст из документа "OLE-Fox"

МИНИСТЕРСТВО ОБЩЕГО И ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

ВОЛГОГРАДСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

Кафедра «САПР и ПК»

Семестровая работа

тема:

«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), однако существенно отливаются в использовании памяти.

Сервер ЕХЕ запускается в собственном адресном пространстве, и в этом плане его запуск ничем не отличается от запуска копии Visual FoxPro.

Сервер DLL использует адресное пространство того приложения, которое инициировало его запуск. Поэтому он запускается и работает быстрее. Естественно стремление использовать в первую очередь именно такой тип сервера, однако не всегда мы можем так поступить. Сервер DLL не может использоваться как внешний сервер OLE Automation и, таким образом, должен находиться на локальном компьютере. Он не поддерживает события, т. е. не может использоваться для интерактивной работы. Следует также учитывать, что авария сервера DLL, как правило, влечет аварию управляющей программы.

Сервер ЕХЕ имеет еще одно преимущество. Он может выполнять роль OLE-сервера и обычного приложения Visual FoxPro. Таким образом, если приложение-контроллер использует сервер для выполнения процесса, который может быть весьма ресурсоемким, но выполняется локально на этом сервере, мы получим выигрыш в производительности.

Покажем простейший пример создания OLE-сервера Visual FoxPro. Создадим новый проект Ole_serv, в котором будет один программный файл со следующим кодом:

DEFINE CLASS OLE_SERV AS CUSTOM OLEPUBLIC

PROCEDURE INIT

MESSAGEBOX(PROGRAM(), "РАБОТАЕТ МОЙ ПЕРВЫЙ OLE-SERVER")

ENDDEFINE

Нажмем кнопку Build и создадим EXE- или DLL-файл. Если вы внимательно следили за сообщениями появляющимися в процессе построения файла, то наверняка заметили сообщение «Creating Type Library and Registering OLE Server», которое свидетельствует о создании и регистрации нашей программы как OLE-сервера. Напомним, что это произошло из-за наличия опции OLEPUBLIC в команде описания класса.

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Нашёл ошибку?
Или хочешь предложить что-то улучшить на этой странице? Напиши об этом и получи бонус!
Бонус рассчитывается индивидуально в каждом случае и может быть в виде баллов или бесплатной услуги от студизбы.
Предложить исправление
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5138
Авторов
на СтудИзбе
443
Средний доход
с одного платного файла
Обучение Подробнее