Совместное использование приложений windows обеспечивается за счет

Автор статьи

Дмитрий Михайлович Беляев

Эксперт по предмету «Информатика»

Предложить статью

ОС Windows позволяет включать в файл одного приложения результаты работы других приложений. Этими результатами могут быть таблицы, графика, тексты, звуковые и даже видеоматериалы. Это называется интеграцией приложений. Файл, в который требуется поместить данные, называется файлом-приемником, файл из которого требуется эти данные взять – файлом-источником. Существует два основных механизма интеграции приложений:

  • Буфер обмена.
  • Связывание по протоколу OLE (Object Linking and Embedding – связывание и внедрение объектов).

Использование буфера обмена

Определение 1

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

Помимо целых файлов, буфер обмена можно использовать для интеграции приложений. Эту операцию можно рассмотреть на примере вставки рисунка в текстовый файл. Пусть имеется два файла. Файл-приемник Документ.docx ( текстовый документ) и файл-источник Рисунок.png ( графический файл). Необходимо вставить рисунок внутрь текстового файла после имеющегося там текста. С этой целью нужно:

  1. Скопировать рисунок в буфер обмена командой «Копировать» в контекстном меню графического файла.
  2. Открыть текстовый документ.
  3. Установить курсор туда, где должен быть рисунок.
  4. Нажать кнопку «Вставить» на панели инструментов (или выбрать команду «Вставить» в контекстном меню).

Рисунок 1.

В этом примере файл-источник целиком вставлялся в файл-приемник. Возможен также вариант, когда из файла-источника берется фрагмент. Если есть необходимость отредактировать фрагмент, вставленный через буфер обмена, то это можно сделать только в том приложении, где создавался файл-источник.

«Совместная работа приложений Windows» 👇

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

В ОС Windows XP имеется возможность просматривать текущее состояние буфера обмена. Для этого предусмотрена стандартная программа clipbrd.exe. Ее можно запустить либо через меню Пуск (Пуск > Программы > Стандартные > Служебные > Буфер обмена). Либо через утилиту «Выполнить» запустить программу clipbrd.exe.

Рисунок 2.

В ОС Windows 7 программа clipbrd.exe была исключена разработчиками. Но если есть необходимость, то ее можно скопировать с компьютера работающего под управлением ОС Windows XP и поместить по адресу \Windows\system32\clipbrd.exe на компьютер с ОС Windows 7.

Пользователи, которые часто работают с буфером обмена, обычно предпочитают при этом не пользоваться мышкой и контекстными меню, а работать с одной клавиатурой. Для этого предусмотрены удобные сочетания клавиш:

  • Ctrl+C или Ctrl+Insert – копирование выделенных данных в буфер.
  • Ctrl+X или Shift+Del – вырезание выделенных данных и сохранение их в буфере
  • Ctrl+V или Shift+Insert – вставка содержимого из буфера в файл-приемник.

Связывание и внедрение объектов (OLE)

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

  • Связывание позволяет поддерживать постоянную связь между файлом-приемником и файлом-источником. Если в файле источнике внесены изменения, то они автоматически отражаются в файле-приемнике.
  • Внедрение позволяет создать независимую копию объекта в файле-приемнике. Если на этой независимой копии выполнить двойной щелчок мышкой, то откроется приложение, где можно провести редактирование внедренного объекта. Но такое редактирование не будет затрагивать файл-источник, так как связь между источником и приемником не поддерживается.

Большинство Windows-приложений поддерживают протокол OLE, а, значит, имеют на своих панелях инструментов команды для реализации связывания и внедрения.

Рисунок 3.

Для выполнения связывания нужно:

  1. Открыть файл-источник и скопировать необходимый фрагмент в буфер обмена.
  2. Открыть файл-приемник и установить курсор в нужное положение.
  3. Выполнить команду Вставить-> Специальная вставка.
  4. В открывшемся окне «Специальная вставка» выбрать переключатель «Связать» и выбрать тип вставляемого объекта.

Для выполнения внедрения используется команда «Специальная вставка». Внедрение выполняется по следующему алгоритму:

  1. Открыть файл-источник и скопировать необходимый фрагмент в буфер обмена.
  2. Открыть файл-приемник и установить курсор в нужное положение.
  3. Выполнить команду Вставить-> Специальная вставка.
  4. В открывшемся окне «Специальная вставка» нужно выбрать, с каким приложением следует ассоциировать внедряемый объект.

Рисунок 4.

Находи статьи и создавай свой список литературы по ГОСТу

Поиск по теме

Windows XP это многозадачная, многооконная
операционная система, поэтому можно
одновременно запустить несколько
приложений для параллельной работы.
При запуске приложение открывается в
стандартном окне Windows, на Панели
задач
появляется соответствующая
ему кнопка. Чтобы вернуться к работе с
одним из запущенных приложений, достаточно
лишь щелкнуть по его кнопке на панели
задач. Окно этого приложения выводится
на передний план. Остальные приложения
также остаются доступными и продолжают
выполняться (в фоновом режиме). Для
перехода к нужному приложению в Windows
имеются и другие способы:

  1. Одновременно
    нажмите клавиши ALT+TAB, и не отпускайте
    их до тех пор, пока на экране не высветится
    название нужного окна.

  2. Одновременно
    нажимайте клавиши ALT+ESC до тех пор, пока
    на экране не появится нужное окно.

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

  1. С помощью
    двойного щелчка по заголовку окна.

  2. С помощью
    кнопок РазвернутьилиВосстановитьв строке заголовка.

  3. С помощью мыши,
    для этого следует установить указатель
    мыши на границе окна до появления
    разнонаправленных стрелок и затем
    перетащить границу в нужном направлении.

Задание 10.1:

  1. Открыть окна
    графического редактора Paint, текстовых
    редакторовWordPadиNotePad. Загрузите
    программуПроводник. Вызвать
    контекстное менюПанели задачи
    выполнить поочередно команды
    расположения окон на экране. Свернуть
    одновременно все открытые окна кнопкойСвернуть все, расположенной в левой
    частиПанели задач. Затем развернуть
    все свернутые окна щелчком по той же
    кнопке Свернуть все.

  2. Выполнить
    переход между приложениями, используя
    все изученные выше способы.

  3. Закрыть NotePadиПроводник.Окна приложенийWordPad
    иPaintрасположить рядом без
    перекрытия. Открыть в них созданные в
    предыдущих заданиях файлыF1.docиFLAG.

  4. Продемонстрировать
    результат работы преподавателю.

11. Технология связывания и встраивания объектов в Windows Обмен данными через буфер

Передача фрагмента данных от одного
документа в другой представляет собой
простейший способ обмена данными между
приложениями. Выполняется эта операция
через буфер обмена Windows. Зачастую данная
операция является исходной для реализации
долговременного связывания.

Буфер обмена можно представить как
некоторое динамическое пространство
оперативной памяти для временного
размещения данных обмена. Каждое
последующее занесение в буфер какой бы
то ни было информации уничтожает
предыдущее содержимое.

Для занесения информации в буфер обмена
и ее извлечения оттуда приложения
Windows имеют в своих меню команды Копировать,Вырезать,Вставить.

Для последующей работы с данными,
занесенными в буфер обмена, в Главном
меню Windows в группеПуск|Выполнитьможно выполнить командуClipbrd. При
этом стартует приложение\WINDOWS\System32\Clipbrd.exe,
которое позволяет просмотреть содержимое
буфера, сохранить его в файле, очистить
буфер или поместить его содержимое вПапку Обмена. Объект данных с
содержимым очередного буфера получает
название страницы вПапке Обмена.
Пользователь сам выбирает имя для
очередной страницы, а Windows сохраняет ее
в файле с расширением .CLP.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #

    09.02.201510.69 Mб21Организация ЭВМ.pdf

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

В этом посте показаны шаги для учащихся и новых пользователей, чтобы включить или отключить общий доступ к приложениям между устройствами в Windows 11. Когда вы используете Windows со своей учетной записью Microsoft, вы можете включить общий доступ к нескольким устройствам, чтобы вы могли продолжать совместно использовать приложения Windows на других устройствах, подключенных к ваш счет.

Чтобы использовать функцию общего доступа между устройствами в Windows, вам нужно включить ее и включить для всех устройств, запуск которых вы хотите разрешить». Общий опыт «или» Кросс-девайс . Параметр по умолчанию позволит совместно использовать ваши приложения на устройствах, на которые вы вошли с учетной записью Microsoft.

У большинства людей есть несколько устройств, и они часто начинают действие на одном, а заканчивают на другом. Чтобы приспособиться к этому, приложения должны масштабироваться на разных устройствах и платформах, и именно здесь на помощь приходит совместное использование нескольких устройств.

Есть три параметра, которые можно указать для общего доступа между устройствами в Windows 11. Вы можете выбрать, какие функции общего доступа к приложениям включены. отили поделитесь им с  Только мои устройства или с ней  Все поблизости.

  • выключать Отключите функцию, чтобы она не использовалась.
  • Только мои устройства Это позволит использовать приложение на всех ваших устройствах, на которых вы вошли в свою учетную запись Microsoft.
  • Все вокруг Это даст всем, кто находится рядом, разрешение использовать функцию обмена между устройствами, чтобы поделиться с вами.

Вот как использовать общий доступ между устройствами в Windows 11.

Как изменить настройки общего доступа между устройствами в Windows 11

Как упоминалось выше, в Windows 11 есть функция, которая позволяет совместно использовать приложения на устройствах, подключенных к вашей учетной записи Microsoft. Когда эта функция включена, по умолчанию вы предоставляете общий доступ к приложениям, работающим на всех ваших устройствах, на которых вы вошли в свою учетную запись Microsoft.

Вот как изменить настройки общего доступа между устройствами в Windows 11.

Windows 11 имеет центральное расположение для большинства настроек. От конфигурации системы до создания новых пользователей и обновления Windows — все можно сделать из  Настройки системы Раздел.

Для доступа к системным настройкам вы можете использовать  Клавиша Windows + i Ярлык или щелчок  Start ==> Настройки  Как показано на изображении ниже:

ويندوز 11 ابدأ الإعدادات

В качестве альтернативы вы можете использовать  поисковая строка  на панели задач и выполните поиск  Настройки . Затем выберите, чтобы открыть его.

Панель настроек Windows должна выглядеть примерно так, как показано на рисунке ниже. В настройках Windows нажмите  Apps, затем на правой панели установите флажок Приложения и возможности أو Расширенные настройки приложенийполе, чтобы расширить его.

ميزات تطبيقات تطبيقات Windows 11

в части Приложения и функции أو Расширенные настройки приложенийчасть, установите флажок « Поделиться на разных устройствахчтобы расширить его.

مشاركة Windows 11 عبر الأجهزة للتطبيقات

В настройках общего доступа к нескольким устройствам выберите параметр «Настройки» для ваших устройств.

  • выключать Отключите функцию, чтобы она не использовалась.
  • Только мои устройства Это позволит использовать приложение на всех ваших устройствах, на которых вы вошли в свою учетную запись Microsoft.
  • Все вокруг Это даст всем, кто находится рядом, разрешение использовать функцию обмена между устройствами, чтобы поделиться с вами.

مشاركة windows عبر خيارات إعدادات الأجهزة

Чтобы поделиться своим приложением на нескольких устройствах, вам нужно убедиться, что вы выбрали вариант по умолчанию ( Только мои устройства) для всех устройств.

Вы должны это сделать!

Заключение :

В этом посте показано, как изменить настройки общего доступа между устройствами в Windows 11. Если вы обнаружите какую-либо ошибку выше или вам есть что добавить, воспользуйтесь формой комментариев ниже.

Статьи по теме

كيفية إيقاف تشغيل الملفات عند الطلب في OneDrive

كيفية تثبيت وتحديث برامج التشغيل في نظام التشغيل Windows 10

ماذا تفعل إذا بدأت شاشة الكمبيوتر في الوميض- وكيفة اصلاحة

أفضل 8 خطوط لأجهزة MIUI

أفضل اختصارات لوحة المفاتيح لنظام التشغيل Windows 11 لزيادة الإنتاجية

كيفية إنشاء تقرير أداء النظام على ويندوز 11

كيفية فتح صور HEIF في نظام التشغيل Windows

كيفية إيقاف تشغيل الخلفية في العرض دائمًا على iPhone 14 Pro

أنواع Windows 11: كيفية اختيار الإصدار المناسب

Совместное использование приложений

В Windows XP Professional можно совместно использовать не только файлы, папки и принтеры. Сюда можно также отнести и приложение Windows Messenger, входящее в пакет программ Windows XP Professional и бесплатно доступное на сайте компании Microsoft. Это приложение обычно используется для организации чатов в интернете. Однако оно включает в себя несколько функций, позволяющих реализовывать совместное использование приложений как в локальных сетях, так и в интернете.

Для работы с Windows Messenger вы должны иметь учетную запись .NET Passport. При первоначальном запуске Windows Messenger мастер паспорта .NET (.NET Passport Wizard) создаст такую учетную запись.

Мы не будем слишком глубоко погружаться в механизм работы Windows Messenger, а только покажем, как совместно пользоваться приложениями с помощью этой программы, а точнее, одного из ее инструментов — Application Sharing (Общий доступ к приложению). Он позволяет использовать приложение в то время, когда другие наблюдают за вашими действиями, или, наоборот, другие пользователи из сети управляют приложением, а вы наблюдаете. Более того, этот инструмент обеспечивает совместную работу с приложением, не требуя от всех участников общения наличия приложения.

Примечание. Несмотря на то, что каждому участнику дискуссии не обязательно использовать для этого приложение, у них должна быть версия Windows Messenger, которая осуществляет поддержку общего пользования приложением. Мы советуем посетить сайт http://www.microsoft.com, чтобы приобрести последнюю версию Windows Messenger.

Подключение общего доступа к приложению

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

Для реализации совместного использования приложения в окне Windows Messenger Conversation (рис. 11.3) выберите Actions\Start Application Sharing (Действия\Запуск общего доступа к приложению).

После этого Windows Messenger посылает приглашения всем участникам дискуссии для совместного использования приложения. Если они щелкнут на Accept (Принять), то откроется окно сеанса общего доступа (рис. 11.4).

В появившемся окне выберите приложение для совместного использования с другими участниками. Например, если вы хотите совместно использовать электронную таблицу Excel, то нужно открыть Excel и загрузить электронную таблицу. Затем следует щелкнуть на Share. Это заставит приложение появиться на экранах всех участников дискуссии.

Примечание. Убедитесь, что экран совместно используемого приложения является активным. В противном случае он может быть заблокирован другим окном. Заблокированный вид будет передаваться всем пользователям приложения.

Окно Windows Messenger Conversation

Рис.
11.3.
Окно Windows Messenger Conversation

Окно сеанса общего доступа программы Windows Messenger

Рис.
11.4.
Окно сеанса общего доступа программы Windows Messenger

Если вы решите совместно использовать приложение, то неплохо убедиться в том, что у всех пользователей установлено одинаковое разрешение экрана. Это предохранит экран от подергивания при движении курсора мыши. В локальных сетях не возникает проблем со скоростью при совместном использовании приложения. Однако при совместном использовании приложения с пользователями, подключенными по dial-up-соединению, загрузка экрана приложения на их рабочие столы потребует некоторого времени.

Разрешение другим пользователям контролировать приложение

После того как вы установили сеанс совместного использования приложения, можно передать контроль над ним другому пользователю, переключившись в окно Sharing и щелкнув на Allow Control (Разрешить управление) (см. рис. 11.5).

Подключение пользователя для управления приложением

Рис.
11.5.
Подключение пользователя для управления приложением

Если пользователь дважды щелкнет на окне, в котором отображается приложение, то у вас на экране появится окно Request Control (Запрос на управление), указывающее, кто именно желает управлять приложением. Вы можете нажать либо на Accept (Принять), либо на Reject (Отклонить) в зависимости от того, нужно ли передавать управление или нет.

Если вы укажете Accept, то у этого пользователя появляется возможность управления приложением с помощью мыши и клавиатуры. Вы можете прервать его, нажав любую клавишу. Когда вы закончите совместное управление приложением, то перейдите в окно Sharing и щелкните на кнопке Prevent Control (Запретить управление). По окончании сеанса совместного использования приложения просто закройте приложение.

Можно управлять правилами контроля над приложением, отметив флажок Automatically accept requests for control (Автоматически принимать запросы на управление). После этого вас не будут отвлекать запросы на разрешение управления. Если вы не хотите, чтобы вас донимали запросами об управлении и не намерены прекращать управление, отметьте флажок Do not disturb with requests for control right now (В данный момент не беспокоить запросами на передачу управления).

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

Принципы обмена информацией между
приложениями Windows

Совместная работа нескольких
приложений

Система Windows исходно задумывалась как
многозадачная. Это означает, что в ней одновременно могут работать несколько
задач. Это действительно так. Например, на ПК с процессором
Pentium/233 и достаточным объемом ОЗУ (64
Мбайт) можно запустить интенсивную вычислительную задачу и одновременно
продолжать работу в редакторе
Word или
электронной таблице
Excel,
ожидая результаты расчетов,
выполняющихся в фоновом режиме. А в системе
Windows NT такие
возможности значительно расширены и к ним добавлены специальные средства
управления выполняющимися программами.

Однако запускать несколько задач
одновременно не всегда имеет смысл. Чаще всего требуется, чтобы такие задачи
взаимодействовали между собой, обменивались информацией, причем на основе
стандартного механизма, не требующего от программиста дополнительных усилий по
определению способа такого взаимодействия.

Программы, обменивающиеся
информацией, как правило, не равноправны. Одна из них выступает в роли
сервера, рассылающего обработанную
информацию (по аналогии с сервером баз данных), другая (или несколько других) —
в роли
клиента (по аналогии с клиентской
программой, получающей наборы данных по запросу к СУБД). Однако в большинстве
случаев приложения
Windows
могут работать и
как серверы, и как клиенты.

Технология DDE

В Windows имеется
несколько технологий, позволяющих организовать эффективное взаимодействие
группы приложений. Еще в первых 16-разрядных версиях
Windows была реализована технология DDE (Dynamic Data Exchange,
динамический обмен данными).
С ее помощью программа-сервер может обмениваться информацией  (текстовыми строками) с
программами-клиентами, подключенными к этому серверу с помощью протокола
DDE, Абсолютное большинство приложений
корпорации
Microsoft
поддерживают этот
протокол, что позволяет обращаться к ним из других программ, передавать и
получать информацию.

В системе Delphi 7 для поддержки технологии DDE созданы четыре компонента, расположенные
на панели System (Системные).

TDdeClientConv     Устанавливает связь с серверам DDE

TDdeClientltem        Конкретный объект, содержимое которого
передается (или  принимается) за один
сеанс связи с сервером DDE. Обеспечивает транэакционную работу по обмену
информацией

TDdeServerConv  Сервер DDE

TDdeServerltem       Объект стороны сервера, содержимое которого
предназначено для обмена

Компонент TDdetLientConv обладает
двумя важнейшими свойствами, лежащими в основе протокола
DDE. Свойство DdeService описывает
серверное приложение, с которым устанавливается связь, а свойство DdeTopic —
так называемый «топик» (topic), хараЕстеризует имя серверного объекта,
непосредственно участвующего в обмене информацией.

С помощью компонентов
TDdeServerConv/TDdeServerltem можно включить в свою программу богатые
возможности обмена данными, хотя для этих целей компания
Microsoft предлагает значительно более мощную
и гибкую технологию
OLE.
Тем не менее
поддержка механизма
DDE
в
продуктах
корпорации сохраняется, и в некоторых случаях использовать этот протокол обмена
значительно проще, чем вес остальные.

Сервером DDE является, например, электронная
таблица
Excel. Написав несколько строк кода, можно
организовать простой обмен содержимым между программой и ячейками страниц Excel
97.

Разместим на форме текстовое поле,
две кнопки (Поспатьи Принять) — и компонентTDdeQientConv.

Основная задача при использовании
компонентов
DDE — установить связь между сервером

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

всего сделать это так. Запустите
программу-сервер (в нашем случае —
Excel 97), выберите

произвольную ячейку и скопируйте ее
содержимое в буфер обмена
Windows.
Затем перейдите к
Инспектору объектов и для любого из свойств DdeService/DdeTopIc вызовите
редактор

связи с сервером DDE Info, щелкнув
на кнопке  вызова в соответствующей
строке Инспектора.

Если программа, данные из которой
были скопированы в буфер, способна работать как сервер
DDE, то кнопка Paste Link (Установить
связь) доступна. В противном случае она окажется в сером «отключенном» состоянии.

После щелчка на этой кнопке в поля
DdeServke/QdeTopic будут внесены названия сервера
(Excel) и объекта — первого листа таблицы
[Книга1]Лист1, если в программе
Excel был
открыт новый файл. Теперь надо подтвердить связь щелчком на кнопке ОК.

Обмен данными может происходить в
обе стороны: как в сторону электронной таблицы, так и от нее к клиентскому
приложению. Это приложение управляет работой сервера, отдавая ему
соответствующие команды.

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

function
PokeData (Item; string,- Data: PChar) : Boolean;

Первый параметр описывает
принимающий объект стороны сервера (этот объект обычно выделен или имеет
фокус). Для некоторых программ можно указать принимающий элемент явно. В
частности, для программы
Excel
можно указать
номер ячейки в формате ≪RnCm≫. Здесь где п — номер строки, начиная
с 1, a m
— номер столбца, начиная с 1. Например, ячейка с координатами (5,12)
обозначается как R5C12.

Второй параметр — передаваемая
строка в формате PChar.

Сделаем так, чтобы по щелчку на
кнопке Послать с помощью этого метода в ячейку электронной таблицы с
координатами (2,3) (программа Excel должна быть запущена заранее) записывалось
содержимое поля Editl нашей программы (рис. 8.1):

procedure
TForml.ButtonlClick(Sender: TObjecti;

var
ToExcel: array [0 .. 100] of char;

begin

StrPCopy(ToExcel,
Editl.Text);

DDEClientConvl.PokeDatal
‘R2C3’ , ToExcel) ,-

end;

Puc. 8.1. Содержимое ячейки
электронной таблицы передано из внешнего приложения

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

function
RequestData(const Item: string]: PChar;

Единственный параметр — объект
сервера, содержащий принимаемые данные (в нашем случае — ячейка таблицы).

Функция возвращает в формате PChar
указатель на строку, которая хранит данные, полученные от сервера.

Для отображения в поле Editl нашей
программы содержимого ячейки (1,1) надо сформировав следующий обработчик щелчка
на кнопке Принять.

procedure
TForml.Button2ClickfSender: TObject);

var
FromExcel: PChar;

begin

FromExcel
:= DDEClientConvl.ReguestData(‘R1C1’) ;

Editl.Text
:= StrPas(FromExcel);

end;

Как видим, использование технологии
DDE не вызывает особых сложностей.

С помощью компонентов TDdeServerConv
и TOdeServerltem можно расширить возможности своего приложения, чтобы оно также
было способно работать как сервер
DDE. К
недостаткам технологии D/M: надо отнести отсутствие единого подхода к работе с
различными серверами
DDE.
Например, чтобы
узнать, как обращаться к ячейкам электронной таблицы
Excel, надо основательно покопаться в
документации. То же относится и ко многим другим стандартным программам.

Технология OLE

Технология Object Linking and Embedding
(Связывание и внедрение объектов)
обладает значительно большими возможностями, нежели механизм DDE. Типичный пример использования этой
технологии — добавление рисунка в документ текстового процессора
Word (Вставка > Рисунок > Из файла). Это действие можно
выполнить двумя способами.

1. В ходе выбора рисунка в
диалоговом окне устанавливается флажок Связать с файлом. В этом случае в
документ физически добавляется только ссылка на рисунок (место его хранения и
используемый графический формат). При внесении изменений в исходный файл с
рисунком эти изменения отображаются в документе, а если этот файл удалить, то
программа
Wordue сможет ничего отобразить. Такой
способ объединения двух объектов называется
связыванием,

2. Если флажок Связать с файлом
сброшен, то рисунок копируется из исходного файла и вставляется в документ.
Теперь, если оригинальный файл изменен или удален, копия рисунка останется в
документе в неизменном виде. Такой подход называется
внедрением.

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

В случае внедрения существенно
увеличивается объем документа, так как изображение хранится внутри него.

Объект, который встраивается в
документ или связывается с ним, называется
контейнером OLE (OLE Container). В нашем случае это рисунок. В системе Delphi 7 на панели System (Системные)
имеется компонент TDleContainer, позволяющий встраивать объекты в программу или
связывать их с ней.

Технология OLE обладает и множеством других
возможностей. В частности, это
автоматизация OLE (OLE Automation), позволяющая программно управлять другими
приложениями, вызывая их методы, доступные через интерфейс
OLE. При этом, конечно, требуется, чтобы
приложение поддерживало автоматизацию
OLE.

Технология OLE расширяет технологию DDE. Если ранее можно было только
обмениваться данными и понятия «объект» не существовало, то в рамках технологии

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

Практически все офисные приложения Windows поддерживают автоматизацию OLE. Например, к таковым относится
браузер
Internet
Explorer,
работой
которого несложно управлять программно.

Основные недостатки при
использовании технологии
OLE
необходимость
знать (как и в случае
DDE)
описание доступных
свойств и методов обрабатываемых объектов, которые в браузере и редакторе
отличаются, и отсутствие общего программного интерфейса.

Эта проблема была полностью снята в
технологии
COM
(Component Object Model,
объектная
модель компонента), основанной на технологии
OLE. Технология
СОМ подробно рассматривается в
последующих главах.

Однако вернемся к объектам OLE и посмотрим, как можно использовать
компонент TOleContainer. После размещения компонента на форме в его контекстном
меню доступны, в частности, два пункта: Insert Object (Вставить объект) и Paste
Special (Специальная вставка). С помощью первого пункта определяется объекг
OLE, который размещается на форме (рис.
8.2).

В списке указываются все типы объектов
OLE, которые зарегистрированы в
конкретной версии
Windows.
Например, если
выбрать пункт Диаграмма Microsoft Excel (при условии, что в системе установлена
электронная таблица
Excel),
то в окне компонента
отображается некая начальная диаграмма (рис. 8.3).

Если дважды щелкнуть на ней, то в
рамках границ компонента TOleContainer запускается программа
Excel. С ее помощью можно выполнить
редактирование этой диаграммы (рис. 8.4).

Можно также вставить готовый объект
из файла. Тогда в диалоговом окне вставки объекта надо установить переключатель
Создать из файла и указать нужный файл. Флажок Связь определяет режим
добавления документа в программу (связывание или внедрение).

Динамически подключаемые библиотеки
(DLL)

Что такое DLL

Самый простой способ обмена информацией
между программами — это использование библиотек -DLL. Строго говоря, библиотека
.DLL — это не программа, а хранилище программного кода (например, функций) и
ресурсов (например, форм). Она подключается к программе
динамически, после того как программа запущена.

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

Создадим пользовательский
интерфейс, а сам алгоритм расчета прогноза (достаточно сложный) выделим в
отдельную функцию и поместим в библиотеку .DLL, подключаемую к программе.

Теперь, если разработчик улучшит
алгоритм прогнозирования, то пользователям достаточно поменять только
библиотеку .DLL, а вносить изменения в код, ответственный за интерфейс, вообще
не придется. По такому принципу, в частности, устроен браузер
Netscape Navigator.

Создание библиотеки DLL

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

function Sum(X,Y: integer): integer;

Выполним команду File >• New > Other >• DLL Wizard (Файл >•
Создать
> Другое >• Мастер DLL). При этом
создается пустая заготовка библиотеки. Текст модуля начинается не со слова
unit, а со слова library. Добавим в нее описание функции Sum,
а в конец модуля библиотеки — ключевое слово exports, после которого приводится
список
экспортируемых
функций — функций
данной библиотеки, которые доступны другим приложениям.

ВНИМАНИЕ Подпрограммы, названии которых
не указаны а директиве exports, не могут вызываться из других программ и
используются только внутри программы.

Целиком модуль запишется следующим
образом,

library
Projectl;

uses

SysUtils,

Classes,-

{SR *-RSS}

function Sum(X,Y: integer): integer;

begin

Result ;= X+Y

end;

exports Sum;

begin

end.

Вызов библиотеки DLL

Добавим в текущую группу проектов
новый проект (обычное приложение), разместим на форме два текстовых поля,
кнопку и одну надпись для вывода результата,

(рис, 8.5).

В разделе interface опишем
импортируемую функцию с ключевым словом external, за которым указывается строка
— имя файла (библиотеки .DLL).

function Sum(X,Y: integer): integer;

external ‘Projectl.dll1;

Рис. 8.5. Форма для приложения,
которое будет обращаться к внешней библиотеке DLL

Обработчик щелчка на кнопке
запишется следующим образом.

procedure
TForml.ButtonlClick(Sender: TObject};

begin

Labell.Caption
:=

InCToStrtSum(StrToInt(Edit1.Text).StrToInt(Edit2.Text)))

end;

Теперь можно запустить приложение
(предварительно надо откомпилировать библиотеку Projectl.dll). После щелчка на
кнопке выполняется суммирование введенных чисел с помощью функции, программный
код которой хранится в динамической

библиотеке (рис. 8.6).

Добавление ресурсов в библиотеку

В библиотеке -DLL можно хранить не
только программный код, но и ресурсы, в частности, формы
Delphi 7, что значительно повышает полезность
таких библиотек.

Сделаем активным проект
Projectl.dll и выполним команду File >• New x Form (Файл
>Создать > Форма). В текущем
проекте появится новая форма (рис. 8.7). Добавим на нее одну кнопку, а
обработчик нажатия сделаем таким.

procedure
TForm2 . ButtonlClicMSender : TObject) ;

begin

ShowMessage!’DLL!’)

end;

Чтобы вызвать форму из другого
приложения, ее надо создать динамически, так как обычные механизмы
Delphi 7 в библиотеках .DLL не работают. Для
этого опишем новую процедуру.

procedure
ShowMyFormfAOwner: TComponent);

var
MyForm: TForm2;

begin

MyPorm
:= TForm2.CreatefAOwner);

MyForm.ShowModa1;

MyForm. Free,-

end;

Эта процедура должна иметь параметр
типа TComponent, необходимый для конструктора формы. Включим созданную
процедуру в список экспорта.

exports Sum, ShowMyForm;

Далее переключимся на проект
Project2.exe и укажем новую импортируемую процедуру.

procedure
ShowMyFormfAOwner: TComponent);

external
‘Projectl.dll’;

Добавим на форму еще одну кнопку и
создадим такой обработчик щелчка.

procedure
TForml.Button2Click(Sender: TObject];

begin

ShowMyForm(Self);

end;

По щелчку на этой кнопке появится
работающая форма, взятая из библиотеки -DLL

(рис. 8.8).

Работа с потоками

Что такое поток

В предыдущей главе была рассмотрена
возможность загрузки и выполнения функций из внешних библиотек. Теперь
рассмотрим обратный случай — «одновременное» выполнение нескольких функций в
одной программе.

Слово ≪одновременное≫
не зря взято в кавычки. В реальности, параллельно выполнять несколько программ
можно, очевидно, только при наличии у компьютера двух и более процессоров.
Однако система
Windows
позволяет
имитировать такую одновременную работу: каждой программе операционная система
выделяет небольшой квант времени (несколько миллисекунд), в течение которого
выполняется данная программа, а затем происходит переключение к следующей
программе. Так как квант времени очень мал, для человека такое мгновенное
переключение незаметно.

В результате создается иллюзия одновременной
работы нескольких программ. Псевдопараллельно могут выполняться не только
обычные программы, но и так называемые
потоки — код,
который входит в состав программы, пользуется ее ресурсами и выполняется в ее
адресном пространстве. Строго говоря, любая программа —это всегда один главный
поток и ноль или более вспомогательных.

Использовать потоки удобно для
самых разных целей. Они дают возможность выполнять задачи в фоновом режиме и
позволяют пользователю сосредоточиться на главной работе. Например, бухгалтер
может вводить хозяйственные проводки,

а в фоновом режиме в это время
выполняется расчет баланса.

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

ЗАМЕЧАНИЕ Корпороция Borland не рекомендует
создавать в одной программе более 16 процессов, если эта программа работает но
однопроцессорном компьютере.

Создание многопоточного приложения

Далее мы рассмотрим пример, в
котором в рамках программы, содержащей формы с двумя областями рисования
(TPaintBox), запускаются два потока, каждый из которых выполняет рисование в
своей области и со своей скоростью.

Создадим новое приложение командой
File >• New
>
Application (Файл
>• Создать
>Приложение). Подготовим форму с
двумя областями рисования TPaintBox размером 100×100 пикселов. Разместим также
на форме кнопку, по щелчку на которой запускаются потоки (рис. 8.9).

Добавим в проект класс-поток
командой File > New > Other > Thread Object (Файл >• Создать >•
Другое > Потоковый объект). В диалоговом окне ввода названия класса укажем
TMyThread. Этот класс будет наследником базового класса-потока TThread.
Возникнет файл с пустым описанием этого класса.

Перейдем к модулю главной формы и
опишем в классе TForml новый метод CPaint, который получит в качестве параметра
холст и нарисует на нем квадрат размером 10×10 пикселов. Место расположения
квадрата и его цвет выбираются случайным образом.

procedure TForml .CPaint ( Cv:
TCanvas )
;

var b: byte,-

C: TColor;

r: TRect;

begin

Cv.Brush.Style := bsSolid;

с := random(256);

b := random(256);

с := с or (b ehl 8);

b := random(256);

с := с or {b shl 16);

Cv.Brush.Color := c;

r.left := random(90);

r.top := random(90),•

r.right := r.left+10;

r.bottom := r.top+10;

Cv.Rectangle(r);

end;

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

Добавим еще два метода (процедуры
без параметров), которые будут обращаться
к процедуре CPaint для вывода квадрата либо на холст объекта PaintBoxl,
либо на
холст объекта
PaintBox2.

procedure TForml.Paintl;

begin

CPaint( PaintBoxl.Canvas );

продолжение &

15 3ar.MB

procedure TForml.Paint2;

begin

CPaintf PaintBox2.Canvas );

end;

Эти процедуры необходимы, чтобы
вызывать их из класса-потока, причем специальным образом. Дело в том, что,
когда методы
классов
Delphi 7
(в нашем
случае —метод Rectangle) одновременно вызываются из нескольких потоков, это
может приводить к самым неожиданным конфликтам между потоками. Например,
проблемы могут быть связаны со слишком быстрым чередованием обработки процесса
вывода на экран, когда системе требуется обрабатывать объекты классов

Процесса вывода на экран, когда
системе требуется обрабатывать объекты классов TBrush, ТРеп.

Эти классы давно известны как
источники ошибок, вызванных неаккуратным обращением с ними. Поэтому в классе
TThread имеется метод гарантированно безопасного выполнения таких методов. Этот
метод выполняет синхронизацию работы всех потоков.

type TThreadMethod = procedure of
object;

procedure Synchronize (Method:
TThreadMethod) ,-

В качестве параметра он получает
название метода без параметров. Для этого нам и понадобилось создать процедуры
Paintl и Paint2. А как определить внутри потока, какой из этих методов надо
вызывать? Добавим в класс TMyThread переменную Boxl.

public

Boxl: boolean;

end;

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

procedure Execute;

Нам надо переопределить этот метод
следующим образом.

procedure TMyThread.Execute;

begin

while not Terminated do

if Boxl then Synchronise (Forrnl.Paintl)

else Synchronize(Forml.Paint2)

end;

Свойство класса Terminated автоматически примет
значение True, когда программа получит команду на завершение. В зависимости от
значения переменной Boxl выполнится отрисовка одного квадрата (вызов
соответствующего метода класса TForml),после чего продолжится цикл произвольной
длительности.

Теперь надо добавить в описание класса
TForm 1 две новые переменные — два будущих

потока.

Tl, T2: TMyThread;

Опишем обработчик щелчка на кнопке
Buttonl. .

procedure TForml. ButtonlClick
(Sender: TObjectl ,-

begin

Tl := TMyThread.Create (true) ,-

Tl.Boxl := true;

Tl. Priority := tpLower;

T2 := TMyThread.Create(true);

T2.Boxl := false;

T2-Priority := tpLowest;

Tl.Resume;

T2.Resume;

end;

Поток создается с помощью
конструктора Create, который имеет один параметр.

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

В противном случае (False) поток
начнет работу сразу же после создания.

Далее задаются значения переменной
Boxl и свойства Priority — приоритета выполнения потока. Приоритет определяет,
как часто
Windows выделяет процессу кванты времени,
то есть фактически задает быстродействие этого процесса.

Свойство Priority имеет тип
TThreadPriority и может принимать одно из следующих значений.

Таблица 8.2. Значения свойства Priority

Значение Приоритет потока

tpldle Поток выполняется, только
когда системе Windows больше нечего делать

tpLowest Приоритет на два пункта
ниже нормального

tpLower Приоритет на один пункт
ниже нормального

tpNormal Нормальный приоритет

tpHigher Приоритет на один пункт
выше нормального

tpHighest Приоритет на два пункта
выше нормального

tpTimeCritical Максимальный
приоритет

В раздел interface модуля Unitl
нужно добавить ссылку на модуль Unit2, где описан класс

TMyThread, а в раздел
implementation модуля Unit? — ссылку на модуль Unitl. Программу

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

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

исходить заметно медленнее.

Использование
объектов СОМ

Что такое технология СОМ

Технология СОМ описывает модель объекта и способы
взаимодействия таких объектов и программ. Объект
СОМ напоминает компонент Delphi 7. Он представляет собой законченный
объект со своими свойствами и методами, который может легко встраиваться в
приложения или распространяться как отдельный программный продукт. Здесь надо
сделать следующее замечание. СО
M-объект представляет собой либо DLL-библиотеку,
либо
£ХЕ-приложение Windows, которые можно создавать

в любой системе программирования,
способной поддерживать нужный формат представления. Ранее мы считали объектом
любой экземпляр класса, подготовленного с помощью системы
Delphi. СОМ-объект (а также объект любой из
рассматриваемых далее схожих технологий распределенного взаимодействия,
например
CORBA или СGI) отличается от таких объектов.
СОМ-объект дополнительно обладает интерфейсом — внешним формальным описанием
своих свойств и методов, которые могут использоваться другими СО
M-объектами. Таким образом, СОМ-объект напоминает скорее компонент Delphi. Из таких объектов, как из готовых кубиков,
можно складывать приложения и крупные системы, работающие в компьютерной сети.
Операционная система
Windows
базируется на
технологии
СОM и ее сетевых расширениях (DCOM, COM+ — они обеспечивают работу и взаимо

действие объектов, физически
выполняющихся на разных компьютерах).
СОМ-объекты
выполняют самые разные функции, причем создаются и уничтожаются системой
автоматически (по мере возникновения запросов от пользователей, других программ
и выполнения нужных действий), что значительно облегчает их использование.
Достаточно только описать интерфейс СО
M-объекта и запрограммировать его реализацию, все остальное
выполнят компилятор и
Windows.

ВНИМАНИЕ Готовящаяся к выпуску в ближайшие
годы платформа Windows .NET полностью переработана в архитектурном плане и
предлагает качественно новую обьектную модель — модель .NET-объекта.

Массовое внедрение группы
технологий .NET начнется, по прогнозам ведущих аналитических компаний, в
2004-2005 годах. В это же время предполагается резкий спад популярности
СОМ-подходо,Поэтому если планируется создание распределенной системы на базе Windows,
надо решить, на какой срок эксплуатации она рассчитана. Если предполагается ее
существенная переработка в течение ближайших пяти лет, то можно использовать
СОМ-подход как наиболее простой и эффективный. Если же задумывается значительно
более долгосрочный проект, то лучше основываться на таких подходах, как CORBA,
Интернет-технологии (все они далее рассматриваются в данной книге). Выглядит
очень перспективной и .NET-архитектура, но на момент выхода Delphi 7 она
существовала только в бета-версии. Ее поддержка ожидается в следующих версиях
продуктов Borland

Одна из важных составляющих .NET — служба Web Services, реализация которой уже отдельно
осуществлена корпорацией
Microsoft.
Создавать
приложения
Web Services
можно и с помощью Delphi 7 — этому вопросу посвящен
соответствующий раздел, и хочется порекомендовать: обратите на
Web Services самое серьезное внимание, как на
одну из альтернатив подходу
СОМ\ На
основе технологии
СОМ
был создан ряд
расширений, например серверы автоматизации (как в примере с автоматизацией
OLE), активные серверные страницы ASP (Active Server Pages) и др. Одно из наиболее известных
расширений технологии
СОМ
элементы ActiveX, первоначально создававшиеся для
использования в Интернете.

Основное различие технологий СОМ и OLE — возможность автоматического общения
между компонентами
СОМ
и приложениями и
наличие базового интерфейса, с помощью которого программа может выяснить,
поддерживает ли конкретный объект
СОМ функцию,
нужную приложению (например, вычисление синуса или формирование определенного
набора данных).

Составные части
технологии СОМ

При создании приложения СОМ используются следующие понятия.

Таблица 8-3. Понятия технологии СОМ

Понятие Что это такое

Интерфейс
СОМ

Описывает методы и свойства,
доступные программам, обращающимся к объекту. Объект СОМ может иметь один или
несколько интерфейсов СОМ и содержит их описание и реализацию

Сервер
СОМ

Законченный модуль кода (ЕХЕ или
DLL), в котором хранится программный
код одного или нескольких объектов СОМ

Клиент
СОМ

Программный код в котором
происходит обращение к интерфейсу СОМ с запросом на выполнение услуг сервера
СОМ. Клиент СОМ знает, что ему надо получить от сервера СОМ, но не знает, как
сервер будет это реализовывать и, вообще, где сервер физически расположен.
Некоторая аналогия для клиента СОМ — рассмотренный ранее гример контейнера OLE

Интерфейс СОМ

Интерфейс СОМ позволяет клиентам СОМ общаться с
сервером
СОМ на основе стандартного механизма публикации интерфейса. После того как
интерфейс
СОМ опубликован (стандартным способом
зарегистрирован в операционной системе), изменять его нельзя, что гарантирует
одинаковую работу объекта
СОМ
в
любых условиях.

 ЗАМЕЧАНИЕ Идея интерфейсов СОМ аналогично идее реализации интерфейсной части
(interface) в модулях Паскаля, когда другим разработчикам доступен для
использования закрытый код и открытое описание его возможностей.

Базовый интерфейс IUnknown, который имеется у любого
объекта СОМ, позволяет  узнать, какие еще
интерфейсы СОМ доступны для клиента СОМ Все эти интерфейсы наследуют характеристики
интерфейса I
Unknown.

ЗАМЕЧАНИЕ Название каждого интерфейса
начинается
с заглавной буквы I(Interface).

Уникальность интерфейса обеспечивается его
глобальным идентификатором
Globally
Unique Identifier (GUID)
длиной
16 байтов, а каждый объект СОМ имеет
идентификатор интерфейса 1Ю {Interface Identifier) на основе GUID.
Идентификатор GUID требуется, чтобы избежать проблем
при появлении интерфейсов СОМ
с
одинаковыми именами. Например, многие
разработчики могут
независимо друг
от
друга создать интерфейс СОМ с именем IGame, однако в каждом конкретном

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

Благодаря наличию стандартных
интерфейсов объект СОМ может быть реализован на любом языке программирования (в
том числе и в системе
Delphi
7).

Интерфейс IUnknown содержит метод
Querylnterface, возвращающий ссылку на другие
доступные интерфейсы, атакже методы AddRef и Release, которые
увеличивают и уменьшают счетчик ссылок на конкретный интерфейс, когда к нему
происходит обращение
клиента
СОМ. Например, пусть сервер СОМ содержит объект СОМ, имеющий интерфейс ICos, в котором
содержится метод, вычисляющий косинус. При каждом обращении из разных программ
к этому интерфейсу для вычисления косинуса счетчик увеличивается, а когда
интерфейс освобождается (косинус вычислен и его значение

передано клиенту СОМ), счетчик
уменьшается. Как только значение счетчика становится равным нулю, то есть к
интерфейсу больше нет обращений, соответствующий
объект СОМ может быть удален из памяти до следующего запроса к его
интерфейсу.

Сервер СОМ

Когда клиент СОМ обращается к
серверу
СОМ, он передает ему идентификатор класса CLSID, представляющий собой GUID, который ссылается на подходящий объект СОМ. Сервер СОМ создает
специальный объект — фабрику классов
(Кlass Factoгу), — который занимается непосредственно созданием и
загрузкой (производством) экземпляра нужного объекта СОМ, выполняющего
конкретные действия его интерфейса, указанные в запросе клиента
СОМ.

Фабрика классов «выпускает» объект СОМ, реализующий один или несколько интерфейсов
СОМ, а также экземпляр специал ьного
класса CoClass, который обеспечивает возможность обращения к объекту СОМ на
основе интерфейсов
СОМ.

ЗАМЕЧАНИЕ В реальной работе этот класс
называется так же, как класс создаваемого объекта (например, TTestObj), только
вместо начальной буквы Т будет использована приставка Со — CoTestObj.

Серверы COM реализуются тремя способами.

1. В виде библиотеки .DLL. При этом
объект СО
M/
выполняется в адресном пространстве обратившегося к нему приложения.

2. Б виде приложения .ЕХЕ, которое
выполняется в собственном адресном пространстве, но на одной машине с клиентом
СОМ.

3. Б виде библиотеки .DLL или
приложения .ЕХЕ, которые загружаются и работают на иной машине, нежели клиент
СОМ (технология DCOM).

Расширения технологии СОМ

Ниже описаны некоторые расширения
технологии
СОМ.

Таблица 8.4. Расширения технологии
СОМ

Тип расширения                                                            Что
это такое

Серверы
автоматизации

Объекты СОМ, которые могут
программно управляться из Других приложений. Например, большинство офисных
приложений Windows, а также браузер Microsoft Internet Explorer, валяются
серверами автоматизации

Контроллеры
автоматизации

Так называются клиенты СОМ, которые
управляют серверами автоматизации И имеют дополнительные возможности настройки
такого управления

Элементы
ActiveX

Серверы СОМ, встраиваемые в
приложения и содержащие средства для своей визуальной настройки. В некоторой
степени аналогичны компонентам Delphi 5, которые можно настраивать с помощью Инспектора
объектов и собственных редакторов

Библиотеки
типов

Библиотеки, хранящие описание
объектов и их интерфейсов

Активные
серверные страницы (ASP)

Компоненты ActiveX, которые
предназначены для создания Web-страниц, активно взаимодействующих с
пользователем

Активные
документы

 Объекты СОМ, которые поддерживают технологию
OLE, методику перетаскивания и визуальное редактирование. Таковы,
например,документы редактора Word

Визуальные
мультипроцессные объекты

Объекты СОМ, которые могут
использоваться в одновременно

выполняющихся процессах объекты.

  • Совместная работа linux и windows
  • Совместимые процессоры amd с windows 11
  • Совместимость драйверов windows 7 и windows 2008
  • Совместимость процессоров windows 11 amd
  • Совместимость принтера canon с windows 10