МЕНЮ


Фестивали и конкурсы
Семинары
Издания
О МОДНТ
Приглашения
Поздравляем

НАУЧНЫЕ РАБОТЫ


  • Инновационный менеджмент
  • Инвестиции
  • ИГП
  • Земельное право
  • Журналистика
  • Жилищное право
  • Радиоэлектроника
  • Психология
  • Программирование и комп-ры
  • Предпринимательство
  • Право
  • Политология
  • Полиграфия
  • Педагогика
  • Оккультизм и уфология
  • Начертательная геометрия
  • Бухучет управленчучет
  • Биология
  • Бизнес-план
  • Безопасность жизнедеятельности
  • Банковское дело
  • АХД экпред финансы предприятий
  • Аудит
  • Ветеринария
  • Валютные отношения
  • Бухгалтерский учет и аудит
  • Ботаника и сельское хозяйство
  • Биржевое дело
  • Банковское дело
  • Астрономия
  • Архитектура
  • Арбитражный процесс
  • Безопасность жизнедеятельности
  • Административное право
  • Авиация и космонавтика
  • Кулинария
  • Наука и техника
  • Криминология
  • Криминалистика
  • Косметология
  • Коммуникации и связь
  • Кибернетика
  • Исторические личности
  • Информатика
  • Инвестиции
  • по Зоология
  • Журналистика
  • Карта сайта
  • Курс лекций по V B 5.0

    может получить доступ к этим данным (напротив, в случае связывания другие

    приложения могут получить доступ к этим данным). Более того, приложение,

    которое создало встроенные данные, будет автоматически запускаться в тот

    момент, когда пользователь начнет работу с этими данными.

    Другая часть OLE, называемая OLE Automation, позволяет управлять

    другим приложением. Несомненно также и то, что приложения Visual Basic

    могут управляться из других приложений. Например, из Visual Basic можно

    управлять приложением Excel, используя его встроенную версию языка Visual

    Basic, или можно управлять редактором Word, опять же используя встроенную в

    него версию Visual Basic. (В системе Office'97 присутствует унифицированная

    версия языка для всех его приложений, которая основывается на Visual Basic

    for Application Version 5.0.)

    И, наконец, необходимо отметить, что в настоящий момент OLE является

    составной частью более общей технологии, которую очень часто называют

    COM/OLE (сокращение СОМ происходит от component object model). Суть идеи

    основывается на важности понятия объекта для современного программирования.

    В 90-х годах стало ясно, что все большее количество людей считает пересылку

    объектов по сети Internet достаточно легким делом, поэтому они вовсю

    выступают за политику, которую можно условно назвать "объекты везде".

    Использование COM/OLE представляется достаточно удобным способом пересылки

    объектов по сети и даже, в скором времени, между различными платформами.

    Использование OLE

    Когда пользователь добавляет клиентский элемент управления OLE в

    проект Visual Basic, фактически создается то, что фирма Microsoft называет

    составным документом OLE (OLE compound document). (При создании клиентского

    элемента управления Visual Basic выводит на экран диалоговую панель, в

    которой запрашивается имя приложения, объект которого предполагается

    вставить.) Клиентский элемент управления OLE поставляется со всеми версиями

    Visual Basic. Его значок обычно находится в нижней части панели

    инструментов и представляет собой сетку с надписью "OLE" внутри.

    Точно так же, как и в случае с DDE, проект Visual Basic может

    выступать как в роли приложения-клиента (или контейнера), которое получает

    информацию, так и в роли приложения-сервера (или источника), которое

    посылает информацию. В большинстве случаев при работе с OLE приложение

    Visual Basic получает информацию, т.е. выступает в роли клиента. В любом

    случае элемент управления OLE, который поставляется с Visual Basic,

    является клиентским элементом управления и не позволяет приложению Visual

    Basic выступать в роли OLE-сервера (хотя Visual Basic 5.0 позволяет это:

    все, что необходимо, это написать код или свой собственный элемент, который

    будет выступать в роли OLE-сервера).

    Создание OLE-объектов

    Как уже было отмечено ранее, OLE-объект представляет собой данные, с

    которыми может работать элемент управления OLE. Это может быть графическая

    диаграмма, группа ячеек, вся электронная таблица или часть документа

    текстового процессора. Любое приложение, поддерживающее OLE, имеет

    библиотеку объектов, каждый из которых может быть "отдан" другому

    приложению. (Слово "отдан" является жаргонным и означает следующее: "вот

    вещь, с которой можно работать. Кроме того, можно работать с ней следующими

    установленными путями: ...") Перед тем как приступить к дальнейшему

    описанию технологии ОLE, необходимо дать определение следующему термину:

    класс OLE (OLE-class). Это приложение, которое предоставляет OLE-объект.

    Любое приложение, поддерживающее технологию OLE, имеет уникальное имя

    класса OLE, например, "WordDocument" или "ExcelWorksheet". (Необходимо

    отметить, что в названии класса учитывается регистр символов.) Можно

    получить список доступных имен классов, нажав на изображение эллипса в

    свойстве Class в окне Properties для управляющего элемента OLE.

    Существует четыре способа создания объектов OLE. Простейшим из них

    является:

    Встроить или установить связь с объектом для контейнерного элемента

    OLE. Такой способ позволяет изменять объекты на форме во время

    выполнения приложения и просто добавлять связанные объекты.

    Описание более сложных методов приведено ниже.

    Создание OLE-объекта при помощи панели инструментов

    Для добавления OLE-объекта к панели инструментов необходимо выполнить

    следующие шаги:

    1. Выбрать Project\Components и перейти к закладке Insertable Objects.

    2. Установить необходимый флажок типа объекта в появившейся диалоговой

    панели.

    Например, можно добавить объект Excel Worksheet в панель инструментов,

    заполнив диалоговую панель Insertable Objects так, как показано на рисунке

    справа.

    Теперь, при применении выбранного инструмента к форме соответствующий

    объект автоматически встраивается в приложение.

    Доступ к объектам через пункт меню Project|References

    Большинство современных OLE-компонентов приложений доступно через

    диалоговую панель, появляющуюся при вызове пункта меню Project|References.

    Эти библиотеки объектов очень полезны, так как они содержат описания всех

    объектов, методов и свойств, которые можно просмотреть при помощи Object

    Browser. Более того, всегда оказывается доступной справочная информация по

    используемым форматам команд из Object Browser. Например, если добавить

    подобным способом библиотеку объектов Excel в Visual Basic и затем

    использовать Object Browser для ее изучения, то можно одним взглядом

    определить необходимый синтаксис.

    После того, как установлена ссылка на библиотеку объектов при помощи

    диалоговой панели ProjectIReferences, можно воспользоваться функцией

    CreateObject с предварительно определенной объектной переменной для

    создания такого объекта в коде программы. Ниже приведен пример кода для

    объекта электронной таблицы Excel:

    Dim objExcel As Object

    Set objExcel = CreateObject ("EXCEL.SHEET")

    Приведенные выше две строки кода создают объектную переменную (в нашем

    случае она имеет имя objExcel). Эта объектная переменная может быть

    использована для управления электронной таблицей Excel.

    Создание объектов, которые не поддерживаются библиотекой объектов

    Библиотеки объектов не поддерживают некоторых объектов (таких, как

    Word 6.0); хотя они и поддерживают технологию OLE, однако их поведение еще

    недостаточно удовлетворительно. В частности, приложения, не поддерживающие

    библиотеки объектов, могут не давать информацию об объектах, их методах и

    свойствах. В таких случаях необходимо использовать функцию CreateObject для

    создания ссылки на объект. Например:

    Dim objWordBasic As Object

    Set objWordBasic = CreateObject ("Word.Basic")

    (He надо забывать установить объектную переменную в значение Nothing

    после ее использования.)

    Использование OLE в процессе разработки приложения

    По сравнению с OLE 1.0 создание связей или встраиваний в процессе

    разработки приложения стало намного проще. По существу, необходимо только

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

    После того, как пользователь добавит клиентский элемент управления OLE

    в форму, немедленно появится диалоговая панель. (Чем больше приложений

    установлено на компьютере, тем больше элементов будет видно.) На этой

    панели приведены названия всех приложений Windows, объекты из которых можно

    встроить в свое приложение. Можно иметь объекты, изображаемые значком, или

    же с видимыми данными в элементе управления OLE. Для этого необходимо

    установить флажок Display as Icon в правой части диалоговой панели. Два

    переключателя в левой части панели предназначены для указания того,

    предполагается ли работать с файлами, созданными соответствующими

    приложениями (связанные объекты) или требуется вызвать другое приложение

    для создания нового объекта (встраиваемые объекты). Если выбрать опцию

    Create from File ( для создания связи с объектом, хранящимся в файле), то

    на экране появится панель. Можно щелкнуть по кнопке Browse для открытия

    диалоговой панели, позволяющей выбрать необходимый файл. После того, как

    будут сделаны все необходимые действия, не надо забывать проверить флажок

    Link.

    Примечание: Можно щелкнуть по клавише Cancel, если надо установить

    свойства OLE при помощи кода программы. В этом случае отпадает

    необходимость в работе с диалоговыми панелями. Несомненно, что если

    создать исполняемый файл с установленной в момент разработки

    приложения связью OLE, то размер этого файла будет намного больше, чем

    в случае установки связей OLE при помощи кода в момент выполнения

    приложения.

    Меню Paste Special

    Иногда бывает необходимо установить связь или встроить объект,

    используя информацию, хранящуюся в буфере папки обмена Windows, путем

    установки свойств SourceDoc и Sourceltem. Для этого сперва нужно

    скопировать данные из приложения в буфер папки обмена, воспользовавшись

    находящейся в приложении командой Copy. После этого следует использовать

    диалоговую панель Paste Special, которая всегда доступна во время

    разработки приложения при нажатии правой кнопки мышки, при условии, что

    фокус находится на элементе управления OLE. В появившемся всплывающем меню

    надо выбрать пункт Paste Special. Диалоговая панель автоматически проверит

    содержимое буфера папки обмена для установки соответствующих свойств OLE.

    Совет: Контекстное меню контейнерного элемента управления OLE содержит

    много полезных пунктов, поэтому следует отнестись к нему с вниманием.

    Свойства OLE

    Как наверное, читателю уже ясно, диалоговая панель дает простой путь

    для установки свойств управляющего элемента OLE. Можно их изменять также

    при помощи окна Properties или через код. (Это обязательно должно делаться

    через код, если работа с элементами OLE идет во время выполнения

    приложения).

    Свойство SizeMode позволяет устанавливать, как будет выглядеть элемент

    управления во время выполнения программы. Если надо растянуть изображение

    по размерам управляющего элемента OLE, следует установить значение этого

    свойства в I (vbOLESizeStretch). И, наконец, можно указать элементу, чтобы

    он автоматически изменял свои размеры, установив значение свойства в 2

    (vbOLESizeAutoSize).

    Появляющаяся диалоговая панель также позволяет устанавливать

    определяющее свойство Class, которое указывает на приложение, содержащее

    данные. Свойство OLETypeAction определяет тип объекта, который будет

    создаваться, т.е. будет ли он связанным, встроенным или и тем и другим

    одновременно. Свойство SourceDoc содержит имя связанного объекта или файла,

    использующегося в качестве шаблона для встроенного объекта. Свойство

    Sourceltem используется только для связанных объектов и указывает ту часть

    связанного документа приложения Visual Basic, которое будет с ним работать.

    (Например, любая часть электронной таблицы может быть задана путем

    установки этого свойства в значение типа "R1C1 :R1C10".)

    Общие методы OLE-контейнера

    И, наконец, существует ряд важных методов, которые могут быть

    применены с контейнерными элементами управления OLE и которые позволяют

    точно указать действия, которые необходимо произвести с OLE-объектом.

    Требуется ли обновить объект, создать или удалить его, сохранить информацию

    объекта в файле, считать ее из файла и многое другое. Далее мы вкратце

    расскажем о наиболее общих методах работы с OLE-объектами.

    CreateEmbed. Этот метод создает встроенный OLE-объект. Чтобы сделать

    это, сперва необходимо установить (через диалоговую панель OLE или

    посредством кода) оба свойства Class и OleTypeAllowed. Напомним, что

    свойство OleTypeAllowed равно 0 для связывания, равно 1 для встраивания и 2

    - для того и другого. Свойство Class устанавливает тип OLE-объекта. (Имя

    класса доступно из диалоговой панели OLE или через окно Properties. Можно

    использовать свойство OLEType для определения типа связи во время

    выполнения приложения.) При создании нового встроенного OLE-объекта

    необходимо, чтобы приложение, в котором он будет создаваться, было активным

    (для этого можно использовать инструкцию AppActivate) или путь к нему

    должен быть известен системе.

    CreateLink. Создает связанный OLE-объект из существующего файла. Для

    этого сперва надо установить свойства OleTypeAllowed и SourceDoc. В этом

    случае OleType Allowed может быть равным 0 (связанный объект) или 2

    (связанный и встроенный объект).

    Свойство SourceDoc содержит имя файла для связанного объекта. Если

    надо работать только с частью связанного объекта, следует установить

    соответствующим образом свойство Sourceltem.

    Точно так же, как и в случае со встраиванием документа, приложение

    должно быть активным или же его путь должен быть известен системе.

    Copy. Этот метод пересылает все данные и свойства связанного объекта в

    буфер папки обмена Windows. Как связанная, так и встроенная информация

    может быть скопирована в буфер папки обмена.

    Paste. Копирует данные из буфера папки обмена в элемент управления

    OLE. Не надо забывать установить свойство PasteOK элемента управления.

    Update. Это очень важный метод, так как именно он передает данные из

    приложения в элемент управления OLE.

    Do Verb. Этот метод позволяет управлять OLE-объектом. Для его

    использования необходимо передать параметр Verb, который указывает

    действие, которое надо произвести над объектом.

    Примечание: Если установить значение свойства AutoActivate элемента

    управления в double-click (значение=2), то элемент управления OLE

    автоматически будет активизировать текущий объект после того, как

    пользователь дважды щелкнет по нему мышкой. Если приложение

    поддерживает "In Place Activation", то можно сделать так, что

    приложение будет активизироваться всякий раз, когда элемент управления

    OLE будет получать фокус (для этого надо установить значение

    AutoActivate в 1).

    Close. Для OLE-объектов. Этот метод используется только для встроенных

    объектов, так как он закрывает OLE-объект и прекращает связь с приложением,

    которое отвечает за объект.

    Delete. Этот метод следует использовать для удаления объекта. Объекты

    OLE автоматически удаляются при закрытии формы.

    SaveToFile. Этот метод жизненно важен для встроенных объектов OLE. Так

    как данные управляющего элемента OLE принадлежат только самому OLE-объекту,

    то они могут быть потеряны, если не написать соответствующий код,

    использующий метод SaveToFile.

    ReadFromFile. Этот метод считывает данные объекта из файла после того,

    как они были там сохранены методом SaveToFile. Код, необходимый для

    использования этого метода, похож на код, предназначенный для сохранения

    данных в файле при помощи метода SaveToFile.

    InsertObjDlg. При вызове этого метода появляется диалоговая панель

    InsertObject, которую Visual Basic использует при помещении OLE-объекта на

    форму. Во время выполнения приложения можно использовать этот метод для

    обеспечения пользователю простого способа создания связанных и встроенных

    объектов.

    PasteSpecialDlg. Этот метод вызывает на экран диалоговую панель Paste

    Special. Во время выполнения приложения эта диалоговая панель дает

    пользователю возможность вставлять объекты из буфера папки обмена Windows.

    Fetch Verbs. Используется для получения списка действий,

    поддерживаемых приложением.

    SaveToOLEIFile. Этот метод следует использовать для обеспечения

    обратной совместимости с предыдущими версиями OLE.

    OLE Automation (управление другими приложениями при помощи OLE)

    Visual Basic является расширяемым языком программирования, в этом

    заключается его основное достоинство. Однако не всем нравится необходимость

    создания собственных элементов управления или библиотек динамической

    компоновки DLL, которые дублируют возможности других приложений, таких, как

    Word или Excel. В таких случаях можно воспользоваться технологией OLE

    Automation, при помощи которой можно легко управлять другими приложениями.

    При помощи Visual Basic можно создать приложение, которое будет управлять

    данными и объектами других приложений.

    Некоторые объекты, поддерживающие OLE Automation, также поддерживают

    связывание и встраивание. Если какой-либо объект из контейнерного

    управляющего элемента OLE поддерживает OLE Automation, можно получить

    доступ к его свойствам и методам при помощи свойства Object. При

    непосредственном создании объекта на форме или через код можно напрямую

    использовать его свойства и методы. Полное обсуждение возможностей OLE

    Automation выходит за рамки данной книги. Если после прочтения этой главы

    захочется узнать побольше об OLE Automation, можно обратиться к

    руководству, поставляемому с Visual Basic.

    Использование OLE Automation

    Как уже было показано раньше, можно создать ссылку на объект в коде

    программы при помощи ключевого слова New, CreateObject или GetObject без

    обращения к OLE-серверу, создавшему объект. Объекты таких приложений, как

    Microsoft Word и Microsoft Excel, могут использоваться в качестве примера

    типов объектов. Некоторые вспомогательные объекты, как, например, ячейка

    электронной таблицы Excel, могут быть доступными только через методы более

    высокоуровневых объектов.

    Например, перейдем к пункту ProjectIProperties, затем выберем

    библиотеку объектов Excel для доступа к ним через Visual Basic. Теперь

    добавим к форме поле ввода. Теперь можно написать код OLE Automation,

    который будет заполнять ячейки из второго столбца электронной таблицы Excel

    последовательными значениями, после чего эти значения будут просуммированы,

    а результирующее значение будет помещено в поле ввода на форме Visual

    Basic:

    Private Sub Form_Ciick()

    Dim obj Excel As Object

    Set obj Excel = CreateObject ("EXCEL .SHEET")

    objExcel .Application .Visible = True

    For I = I To 10

    objExcel.Cellsd, 2).Value = I

    Next I

    objExcel. Cells (11, 2) .Formula = "=sum(BI.-BIG)"

    Textl.Text=objExcel.Cells(ll, 2)

    objExcel .Application.Quit

    Set objExcel = Nothing

    End Sub

    И напоследок дадим несколько замечаний:

    * OLE Automation требует определенного уровня знакомства с объектами

    приложения, с которым надо работать. При этом очень часто

    используется хитроумный синтаксис. (В этом деле Object Browser

    поможет сэкономить много времени.)

    * На Pentium 90 с 16 мегабайтами ОЗУ представленный фрагмент

    программы выполняется примерно 0,6 секунды. А на Pentium 166 с 80

    мегабайтами ОЗУ этот фрагмент выполняется практически мгновенно. Из

    этого легко сделать вывод, что для действительно быстрой работы OLE

    Automation необходим быстрый процессор и большой размер памяти на

    компьютере.

    * В предыдущем пункте было показано, что хотя OLE Automation является

    действительно очень мощной технологией, она требует значительных

    ресурсов для быстрого выполнения. Поэтому следует очень четко все

    обдумать перед тем, как использовать OLE Automation в работе

    приложения.

    * Для определения типа аппаратного обеспечения можно использовать

    вызовы функций Windows API. При этом большее внимание необходимо

    уделить объему установленной памяти, чем типу и тактовой частоте

    процессора. Не стоит и пытаться использовать OLE Automation, если

    на компьютере пользователя установлено 4 мегабайта памяти, и

    следует хорошенько подумать, прежде чем воспользоваться

    возможностями OLE Automation на машине с 8 мегабайтами. OLE

    Automation требует для нормальной работы, как минил1ум, 16

    мегабайт, хотя предпочтительнее использовать эту технологию на

    машинах с 32 и более мегабайтами ОЗУ.

    Страницы: 1, 2, 3, 4


    Приглашения

    09.12.2013 - 16.12.2013

    Международный конкурс хореографического искусства в рамках Международного фестиваля искусств «РОЖДЕСТВЕНСКАЯ АНДОРРА»

    09.12.2013 - 16.12.2013

    Международный конкурс хорового искусства в АНДОРРЕ «РОЖДЕСТВЕНСКАЯ АНДОРРА»




    Copyright © 2012 г.
    При использовании материалов - ссылка на сайт обязательна.