Организация обмена данными работа с объектами ос windows

1. Обмен данными в приложениях Windows

2. КРАТКАЯ ХАРАКТЕРИСТИКА ОПЕРАЦИОННОЙ СИСТЕМЫ WINDOWS

Рассмотрим самую распространенную в наши дни операционную систему Windows.
Windows — это популярная, хорошо защищенная многозадачная операционная система персонального компьютера с
графическим пользовательским интерфейсом.
Операционная система обеспечивает эффективную работу в системах мультимедиа и в информационно-вычислительных сетях
(в том числе и в Интернете), электронную почтовую связь.
При работе в Windows можно использовать длинные, достаточно информативные имена файлов, в которых допускаются даже
пробелы; перемещать любые объекты в любое место экрана и в любом месте экрана, вызывать контекстное меню или получать
контекстную справку.
Отличительными чертами этой операционной системы являются:
1)встроенная сетевая поддержка,—в отличие от других ОС, Windows изначально создавалась с учетом работы в вычислительной
сети, поэтому в интерфейс пользователя встроены функции совместного использования сетевых файлов, устройств и объектов;
2)приоритетная многозадачность, позволяющая приложениям с более высоким приоритетом вытеснять менее приоритетные
приложения, что приводит, в частности, к более эффективному использованию машинного времени ввиду автоматической
ликвидации зависания системы при выполнении «сбойного» приложения;
3)присутствие достаточно мощных средств защиты файлов различных пользователей от несанкционированного доступа; наличие
многоуровневого доступа к ресурсам с назначением пользователям уровня доступа в соответствии с их компетенцией;
4)поддержка нескольких файловых систем — кроме файловой системы FAT, понимаемой всеми версиями Windows имеет
собственную файловую систему (NTFS);
5)поддержка широкого спектра компьютерных платформ, в том числе и мультипроцессорных вычислительных систем.

3. ПРИЛОЖЕНИЯ WINDOWS

Windows — включает ряд вспомогательных программ,
называемых стандартными, которые позволяют удовлетворить
многие потребности пользователя. К ним относятся: редактор
текста Блокнот и более сложный — WordPad, графический
редактор Paint, программа Калькулятор, а также другие
полезные утилиты.
Калькулятор — это простая, но полезная программа, которую
можно использовать так же, как карманный калькулятор. Она
имеет два режима работы: обычный (standard) калькулятор и
инженерный (scientific) калькулятор (Рис. 1). Обычный
калькулятор выполняет четыре арифметических
действия.Инженерный калькулятор может также вычислять
тригонометрические и логические функции, а также
переводить числа и углы в разные системы счисления и
выполнять другие операции

4. Обычные инженерные калькуляторы

5. Чтобы запустить калькулятор, выберите в меню «Пуск» пункты «Программы», «Стандартные» (Accessories), затем «Калькулятор»

Чтобы запустить калькулятор, выберите в меню «Пуск» пункты «Программы»,
«Стандартные» (Accessories), затем «Калькулятор» (Calculator).

6. Блокнот

Простейший текстовый редактор, в котором
можно создать текстовый документ,
запомнить его в файле и распечатать.
Блокнот имеет резко ограниченные
возможности обработки текста и хранения
больших текстовых документов. Это
записная книжка, ориентированная на
заметки, записки, справки небольшого
размера. Окно программы Блокнот имеет
строку меню, состоящую из разделов
«Файл», «Правка», «Поиск», «Справка».
Чтобы запустить Блокнот, выберите в меню «Пуск» пункты «Программы»,
«Стандартные», затем «Блокнот» (Notepad). Сразу после запуска программа готова к
работе. По умолчанию в Блокноте используется стандартный системный шрифт. Из
меню Правка можно настроить программу на работу с другим шрифтом. В этом же
меню находится очень важная функция «Перенос по словам», которая позволяет
переносить текст автоматически, когда заканчивается строка. Если данная функция
отключена, строка имеет 255 символов. Общий объем информации, поддерживаемый
редактором, составляет около 7 кб. Информация сохраняется в файлах текстового
формата (*.txt), или с таким расширением, которое задаст пользователь. Редактор
очень удобен для выполнения системных операций с файлами настройки системы.

7. Текстовый редактор WordPad

В числе стандартных программ
Windows имеется текстовый редактор
WordPad. Он может создавать простые
текстовые документы (ASCII-файлы) и
файлы, содержащие символьное и
абзацное форматирование, а также
открывать и сохранять документы в
нескольких форматах.

8. Текстовый редактор WordPad

Хотя WordPad не имеет столь широких возможностей, как, например, Word для Windows, он может быть
использован вместо текстовых редакторов среднего уровня. WordPad является хорошим инструментом
для написания заметок, писем, отчетов и других текстовых документов.
Это единственная программа, которая открывает текстовые файлы, подготовленные в ДОС с
использованием альтернативной русской кодировки.
Для запуска WordPad выберите в меню «Пуск» (Start) пункты «Программы» (Programs), «Стандартные»
(Accessories), затем WordPad.
Чтобы создать новый документ, наберите в окне редактора нужный текст, а затем сохраните его под
желаемым именем. При вводе текста избегайте использовать пробелы для размещения отдельных
элементов текста, например формирования абзацных отступов. Для этой цели следует использовать
параметры абзаца, которые можно открыть, выбрав из меню команды «Формат» (Format), «Абзац»
(Paragraph).
WordPad может открывать файлы, записанные в разных форматах. Для каждого из этих форматов
можно установить режим переноса слов (параметры вкладки «Внедренный объект» (Embedded)
применяются при редактировании текста, вставленного в другой документ). Для этого выберите из
меню команды «Вид» (View), затем «Параметры» (Options). При этом WordPad выведет на экран
диалоговое окно «Параметры». Щелкните на вкладке используемого вами формата и установите один
из трех переключателей в группе «Перенос по словам» (Word wrap):
«Не производится» (No wrap). В этом режиме WordPad не переносит текст на новую строку при
достижении края окна или правого поля (если оно установлено). Если продолжать набирать текст, окно
смещается вправо.
«В границах окна» (Wrap to window). Этот режим вызывает перенос текста на следующую строку, когда
конец текущей строки достигает края окна. Изменение размеров окна влияет на длину каждой строки
текста.
«В границах полей» (Wrap to ruler). Этот режим заставляет WordPad переносить текст на новую строку по
достижении им правого поля независимо от размеров окна.

9. Графический редактор Paint

• Paint позволяет
создавать или
редактировать
файлы растровых
рисунков в
формате BMP.
Формат файла
BMP является
стандартным
растровым
форматом
файлов Windows.

10. Графический редактор Paint

Можно использовать Paint для создания и редактирования растровых файлов
документов, изменения заставок Windows — и в других целях. Для обработки
фотографических изображений лучше использовать более сложные
графические редакторы, например: Photoshop, Photoeditor.
Для запуска Paint щелкните на кнопке «Пуск» (Start), затем выберите из меню
пункты «Программы» (Programs), «Стандартные» (Accessories) и Paint. Теперь
можете приступать к рисованию. В программе имеется довольно богатый
набор инструментов.
Щелкните на инструменте, который вы хотите использовать, переведите
мышь в область рисования и начинайте рисовать. При нажатой левой кнопке
мыши инструмент оставляет след основного цвета, при нажатой правой
кнопке — цвета фона. Изменить основной цвет и цвет фона можно, щелкнув,
соответственно, левой или правой кнопкой мыши на нужном цвете в палитре,
расположенной в нижней части экрана. Закончив рисунок, сохраните его.
Если допущена ошибка, выберите из меню Рисунок (Image) команду
«Очистить» (Clear image), а затем начните все сначала. Можно отменить одно
или несколько последних действий, выбрав из меню «Правка» (Edit) команду
«Отмена» (Undo).

11. ОБМЕН ДАННЫМИ МЕЖДУ ПРИЛОЖЕНИЯМИ

• В состав Windows входят приложения, предназначенные для создания
документов различного характера (текстовых, табличных,
графических). Документ, разработанный в одном приложении, может
содержать фрагменты в других приложений. Таким образом,
обмениваясь данными, приложения работают совместно, создавая
составной или интегрированный документ.
• Например, в текст, созданный в приложении WordPad, можно
включить результат вычислений, выполненный в Калькуляторе, и
рисунок, нарисованный в графическом редакторе Paint. В результате
появляется составной документ, включающий данные разного типа,
созданные в других программах. Когда открывается текстовый
документ, являющийся главным, подключаются связанные с ним
объекты из других приложений.
• Обмен данными в Windows организуется одним из следующих
способов:
• 1)через буфер обмена;
• 2)с помощью технологии OLE.

12. Буфер обмена

• При обмене данными через буфер следует выделить объект,
созданный в некотором приложении, и поместить его в буфер
командой «Правка» «Вырезать» или «Правка» «Копировать». Из
буфера обмена объект можно вставить командой «Правка»,
«Вставить» в любое приложение, имеющее доступ к буферу.
Вставленный таким обратим объект становится элементом
составного документа, теряя связь с тем приложением, которое его
создало.
• Предположим, для вставки графического объекта в текстовый
документ вы использовали обмен данными через буфер. В этом
случае рисунок теряет связь с программой, которая его создала, а для
того чтобы его отредактировать, необходимо выполнить следующие
шаги:
• 1)удалить из текста старый вариант рисунка;
• 2)запустить программу, в которой создавался рисунок, открыть файл,
содержащий рисунок;
• 3)внести в рисунок изменения;
• 4)вставить рисунок в текст.

13. Обмен данными по технологии OLE

Более гибким способом обмена данными между приложениями Windows является технология
OLE (Object Linking and Embedding, связывание и внедрение объектов). Технология OLE
позволяет установить связь объекта, вставленного в документ, с приложением, которое его
создавало.
При использовании технологии OLE объект, созданный в некотором приложении, должен быть
выделен и помещен в буфер командой «Правка», «Вырезать» или «Правка», «Копировать». Для
внедрения объекта из буфера следует использовать команду «Правка», «Специальная вставка».
В этом случае устанавливается связь объекта с приложением, которое его создало.
Приложение, в котором создан внедренный объект, запускается при необходимости
редактирования двойным щелчком по объекту. Пользователь получает возможность работать
над составным документом средствами приложения, в котором создается главный документ,
и средствами приложения, в котором создан внедренный объект.
Технологию OLE рассмотрим на примере составного документа, созданного на основе текста в
приложении WordPad, в который вставлен рисунок из приложения Paint. Рисунок необходимо
отредактировать, т. е. внести в него изменения. Программа WordPad своими средствами не
может изменять данные из другой программы. В программе Paint сделанный рисунок
выделяется и копируется. В документе WordPad устанавливается указатель мыши в то место,
куда будет интегрирован рисунок, и в меню «Правка» выполняется команда «Специальная
вставка». В открывшемся диалоговом окне выбирают способ вставки «Вставить» или «Связать»
и вид объекта «рисунок». Завершается операция нажатием кнопки «ОК».

14. Основные понятия технологии OLE

• В приведенном примере — объект OLE — рисунок; сервер
OLE — программа для создания графических изображений
Paint; клиент OLE- программа для создания текстовых
документов WordPad.
• Технология OLE позволяет внедрить документ или связать
объект OLE с приложением клиента. Рассмотрим эти
варианты.

15. Внедрить документ как объект OLE

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

16. Связать объект OLE с приложением клиентом

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

17. Презентацию сделала : Воронина Анастасия Валерьевна ГД -1501 Преподаватель : Соколовская Светлана Анатольевна

Цель урока: познакомить с понятием обмена данными через буфер обмена; познакомить с понятием обмена данными по технологии OLE.

Задачи урока:

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

Оборудование: компьютер, мультимедиапроектор.

Урок сопровождается демонстрацией презентации (Приложение_1).

ХОД УРОКА

1. Актуализация знаний. Повторение изученного ранее.

Ответить на вопросы (слайд 1):

  • Что такое компьютерный вирус?
  • Какие виды классификации компьютерных вирусов вам известны?
  • Каковы основные признаки появления вирусов на компьютере?
  • Каковы основные меры профилактики и борьбы с компьютерными вирусами?

2. Новая тема.

Сообщение темы и цели урока (слайд 2).

1. Для чего нужен обмен данными.

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

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

Составной документ – документ, в котором объединены данные, созданные в разных приложениях (слайд 3).

Например, в текст, созданный в приложении Word можно включить изображение, нарисованное в графическом редакторе Paint. В результате появляется составной документ, включающий данные разного типа, созданные в различных программах. Когда мы откроем текстовый документ, являющийся главным, подключаются все связанные с ним объекты, созданные в других приложениях.

Обмен данными в среде Windows осуществляется (слайд 4):

  • перетаскиванием объекта мышью;
  • через буфер обмена;
  • по технологии OLE.

2. Обмен данными путём перетаскивания объектов мышью.

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

Когда объекты близко расположены друг к другу можно организовать обмен данными путём перетаскивания мышью, например, страницы одного документа или окна папок.

Технология приёма:

  • выделить объект;
  • перетащить объект до места назначения, удерживая левую клавишу мыши.

Если при перетаскивании объекта удерживать клавишу <Ctrl> происходит копирование объекта.

3. Обмен данными через буфер обмена (слайд 6).

Для обмена данными в Windows выделяется область памяти, в которую можно поместить объект, а затем извлечь его оттуда. Эта область памяти называется буфером обмена (англ. Clipboard). В буфер обмена можно поместить любой объект Windows.

При обмене данными через буфер обмена (слайд 7):

  • выделяется объект;
  • помещается объект в буфер обмена с помощью команд Правка – Копировать (или Правка – Вырезать);
  • из буфера обмена объект можно вставить в любое приложение с помощью команды Правка – Вставить.

Вставить объект можно в любое количество приложение, если в буфер обмена объект попал с помощью команд Правка – Копировать (слайд 8).

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

4. Обмен данными по технологии OLE.

Более гибкий способ обмена данными между приложениями Windows является технология OLE – Object Linking and Embedding, что означает «связывание и внедрение объектов». Эта технология позволяет устанавливать связь объекта с приложением, в котором оно было создано (слайд 9).

Объект OLE – любые данные: текстовые, графические, звуковые и т. д., которые создаются каждый в своём приложении, а затем включаются с составной документ. В нашем примере – это рисунок.

Рассмотрим технологию OLE на примере создания составного документа на основе текста, созданного в приложении Word, в который вставляется рисунок из приложения Paint.

Можно ввести следующие понятия:

Источник – приложение, средствами которого создаётся объект OLE-рисунок. В нашем примере это программа для создания графических приложений Paint.

Приёмник – приложение, которое принимает объект OLE. В нашем примере это программа для создания текстовых документов Word.

Технология связывания объекта с приложением-источником (слайды 10, 11, 12):

  1. Создать объект (рисунок) в приложении-источнике, графическом редакторе Paint.
  2. Сохранить рисунок.
  3. Открыть документ в приложении-приёмнике, текстовый редактор Word, в который будет вставлен рисунок.
  4. Выполните действия Вставка – Объект.
  5. В диалоговом окне «Вставка объекта» перейти на вкладку «Создание из файла».
  6. С помощью кнопки «Обзор» найти место на диске где храниться созданный объект (файл-рисунок). Выделить файл. Нажать кнопку «Вставить».
  7. После возвращения на вкладку «Создание объекта» поставить флажок в окне «Связь с файлом». Нажать ОК.

При связывании объект OLE находится в документе-источнике, а приложение-приёмник содержит информацию о том, где следует искать объект. Поэтому при редактировании объекта OLE в исходном приложении эти изменения отражаются и в документе-приёмнике.

Подведение итогов:

  • Проанализируйте достоинства и недостатки каждой технологии.
  • Какая технология наиболее предпочтительна?
  • От чего зависит выбор технологии обмена данных?

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

3. Практическая работа.

Учащимся выдаётся инструкционная карта выполнения задания (Приложение_2). Учащиеся используют файлы – заготовки, расположенные на дисках ученических компьютеров (Приложение_3 – файл с исходными текстами загадок, Приложение_4 – файл с картинками – отгадками к загадкам).

Цель практической работы: исследовать все три технологии, сравнить их.

Используя инструкционную карту по выполнению практической работы создать составной документ «Обмен данными», в котором представьте загадки и отгадки к ним в виде рисунков. Исследовать надо все три способа обмена данными, поэтому картинок меньше, чем загадок, к одной загадке надо нарисовать картинку-отгадку с помощью графического редактора Paint. В тетради сделать вывод: в каких случаях удобно пользоваться технологией перетаскивания, когда лучше технология OLE, а когда использование через буфер обмена. Укажите достоинства и недостатки каждого метода.

Домашнее задание: § 14.7

Литература:

  1. Информатика. Методическое пособие для учителя. 7 класс / Под ред. проф. Макаровой Н. В. – СПб.: Питер, 2004.
  2. Информатика. 7-9 класс. Базовый курс. Практикум по информационным технологиям / Под ред. проф. Макаровой Н. В. – СПб.: Питер, 2001.
  3. Информатика и ИКТ. Учебник. 8-9 класс / Под ред. проф. Макаровой Н. В. – СПб.: Питер, 2008.
  4. 292 загадки. Сборник загадок для маленьких и больших. Авт.-сост. И. Жирков. – М: «Грамотей», 2005.
  5. http://aida.ucoz.ru – фон презентации.

ЧТО ТАКОЕ ОБМЕН ДАННЫМИ

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

Такими объектами могут быть
приложения, папки, документы, а
передаваемыми дан­ными — фрагменты
документов, документы, файлы, папки,
т.е. также объекты среды Windows.
Так, в результате копирования файла или
папки появляются их копии, а вслед­ствие
обмена данными между приложениями
создаются составные
документы,
собранные
из фрагментов, сформированных в разных
приложениях.

Обмен данными в среде Windows
осуществляется либо через буфер обмена,
либо без него перетаскиванием выделенного
объекта мышью. Обмен данными через буфер
выпол­няется с помощью стандартных
команд Вырезать (Cut),
Копировать (Сору) и Вставить (
Paste).
Команда Специальная
вставка (
Paste
Special)
позволяет выбрать
формат, в котором передаются данные.
Большинство приложений Windows
содержат перечисленные команды в
структуре своих меню, а также включают
их в контекстные меню.

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

ПОНЯТИЕ СОСТАВНОГО ДОКУМЕНТА

При создании документа
часто возникает необходимость вставить
в него фрагмент из доку­ментов,
созданных в других программных средах.
Такой фрагмент по отношению к доку­менту,
в который он вставляется, может иметь
иной тип данных. Например, в текст,
соз­данный в текстовом редакторе
WordPad,
включается растровый рисунок из
графического редактора Paint,
а также таблица из табличного процессора
Excel.
В результате появляется документ,
включающий данные разного типа, созданные
в разных приложениях.

Такая же ситуация может
возникнуть и при использовании одного
приложения. На­пример, текст и векторные
рисунки можно сделать в среде текстового
процессора Word,
объединив их затем в одном документе.
Налицо фрагменты разного типа данных
— текст и рисунки, и хотя они созданы в
одном приложении, для их создания
использовались разные инструменты.
Поэтому их объединение легче строить,
считая, что они созданы в разных средах.

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

любые данные, даже если с
этими данными оно и не может работать.
Эту универсальность обеспечивает
технология OLE,
о которой подробнее речь пойдет далее.
Документ, содер­жащий разнотипные
данные, ничем не отличается от обычных
документов. Его можно пе­чатать,
хранить и производить с ним любые другие
действия. Подобный документ получил
название составного
или интегрированного
документа.

Составной (интегрированный) документ
— документ, в котором объе­динены
данные разного типа, созданные в разных
приложениях.

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

Часто при создании составного документа
используют такую терминологию:

  • источник или
    сервер
    приложение, откуда производится вставка
    фрагмента в составной документ;

  • приемник или
    клиент (адресат)
    — приложение, где находится главная
    часть со­ставного документа и куда
    вставляются объекты из других приложений
    (источников).

Замечание. Учитывая, что понятия
«сервер» и «клиент» также
широко исполь­зуются в контексте
сетей, в дальнейшем для приложения будем
использовать понятия «источник»
и «приемник».

Рис. 12.13. Формирование составного
документа

Понятие составного документа
иллюстрируется рис. 12.13, где в качестве
источника (сервера) служат два приложения
(например, Paint,
в котором создан рисунок, и Excel,
в котором подготовлена таблица), а в
качестве приемника (клиента) используется
одно при­ложение (например, им может
быть текстовый процессор Word).

ОБМЕН ДАННЫМИ ПЕРЕТАСКИВАНИЕМ ОБЪЕКТА
МЫШЬЮ

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

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

  • выбирается перемещаемый объект, для
    чего на этом объекте нужно установить
    указа­тель мыши. Можно выбрать группу
    объектов (например, фрагмент текста),
    протащив мышь при нажатой левой кнопке;

  • при нажатой левой кнопке мыши выделенный
    объект перетаскивается до места
    назна­чения.

Копирование осуществляется
аналогично перемещению при одновременно
на­жатой клавише <Ctrl>.
При этом перемещаемый объект будет
обозначен дополнительно знаком «плюс».

Замечание. В
среде Windows
нажатие управляющей клавиши учитывается,
как правило, в момент отпускания кнопки
мыши. Поэтому можно сначала перета­щить
объект, затем, не отпуская кнопки мыши,
оценить ситуацию и при необ­ходимости
нажать <Cui>,
<Shift>
или какую-либо другую комбинацию
управляющих клавиш.

ОБМЕН ДАННЫМИ ЧЕРЕЗ БУФЕР

Роль буфера обмена

Буфер обмена (clipboard)
играет важнейшую роль при организации
обмена данными. Это часть виртуальной
памяти, которая служит неким перевалочным
пунктом при обмене дан­ными. При
небольших объемах передаваемых данных
для буфера обмена выделяется часть
оперативной памяти.

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

Основные приемы работы с буфером обмена
поддерживаются большинством про­граммных
продуктов. Его широко используют:

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

  • при создании и редактировании составного
    документа, когда необходимо использо­вать
    объекты из разных приложений;

  • при перемещении или копировании объектов
    файловой системы (файлов и папок);

  • для сохранения в файле выделенного
    фрагмента документа.

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

Буфер обмена обслуживается операционной
системой и характеризуется следующими
свойствами:

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

  • в буфере обмена объект хранится до тех
    пор, пока не будет помещен в него новый
    объект;

  • буфер обмена доступен из любого
    приложения;

  • содержимое буфера обмена можно
    просмотреть или сохранить в файле с
    помощью приложения. Просмотр буфера
    обмена;

  • буфер обмена очищается при перезагрузке
    операционной системы либо специальной
    командой;

  • объект в буфере обмена хранится в
    формате, определяемом приложением-источни­ком,
    но при его вставке в составной документ,
    как правило, предоставляется возмож­ность
    преобразования в другой формат.

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

Для вставки объекта из
буфера обмена можно воспользоваться
командой Вставить, вызвав ее любым
способом, например из контекстного
меню. После выполнения этой ко­манды
объект становится частью документа,
создаваемого в приложении-приемнике.
При этом объект вставляется в составной
документ, как правило, как OLE-объект,
сохраняющий связь с приложением-источником.
Его можно редактировать непосредственно
в составном документе, вызвав
приложение-источник. Отметим, что по
технологии OLE
2.0 вызывается не само приложение-источник,
а лишь необходимые инструменты
редактирования: при двойном щелчке на
OLE-объекте
пользователь остается в среде
приложения-приемника, но меню и панели
инструментов этого приложения меняются.

Пользователь может в
определенных пределах изменять способ
вставки объекта из буфера обмена. Для
этого нужно использовать команду
Специальная вставка, которая во многих
приложениях располагается в меню Правка
(Edit).

Технология обмена данными через буфер

Обмен данными через буфер выполняется
в следующей последовательности (рис.
12.14):

  • выделяется объект, подлежащий копированию
    или перемещению;

  • выделенный объект переносится в буфер
    обмена с помощью команды. Копировать
    или Вырезать (например, через контекстное
    меню);

  • указатель мыши устанавливается в место
    вставки объекта;

  • объект вставляется в указанное место
    командой Вставить или командой
    Специаль­ная вставка (через контекстное
    меню или меню Правка).

Рис. 12.14. Схематичное представление
обмена данными через буфер

ТЕХНОЛОГИЯ ВНЕДРЕНИЯ И
СВЯЗЫВАНИЯ ОБЪЕКТОВ
OLE

Представление о технологии
OLE

Появление технологии OLE
обусловлено необходимостью формирования
документов из данных разного типа.
Основное достоинство технологии OLE,
которая была разработана фирмой
Microsoft,
состоит в том, что она не имеет ограничений
и позволяет организовать передачу
данных практически между любыми
приложениями. Технология OLE
определя­ется правилами (протоколом)
взаимодействия Windows-приложений.
Базовый вариант технологии OLE
был впоследствии расширен до версии
OLE
2.0, которая в настоящее время является
наиболее употребительной.

Примечание. Аббревиатура
OLE
означает Object
Linking
and
Embedding,
что переводится как
связывание и внедрение
объекта.

Технологию OLE
полностью поддерживают не все
Windows-приложения,
а только те, которые предназначены для
разработки составных документов. Одни
приложения можно использовать только
в качестве приемника, другие — только
в качестве источника, но есть приложения,
которые могут выступать и в той, и в
другой роли.

Например, текстовый редактор
WordPad
полностью обеспечивает работу по
техноло­гии OLE,
так как он предназначен для создания
текстовых документов, в которых могут
быть рисунки, звуки, таблицы, видеоклипы
и др. Графический редактор Paint
предназначен для подготовки несложных
рисунков, он не может работать по
технологии OLE
только как приложение-источник. Текстовый
процессор Word
представляет собой сложный комплекс и
фактически включает в себя несколько
приложений: редактор рисунков, редактор
фор­мул, текстовый редактор и др. Эти
приложения по-разному используют
технологию OLE.
Редактор формул действует только как
приложение-источник (OLE-сервер),
а текстовый редактор может выступать
как в роли источника, так и в роли
приемника (OLE-клиента).
Просмотреть список действующих в системе
OLE-серверов
можно, выполнив команду Вставить
объект
(в среде Word
эта команда включена в меню Вставка).

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

Технология OLE
предусматривает два варианта обмена
данными:

  • внедрение объекта, при
    котором в документ-приемник вставляется
    сам объект. Для отображения на экране
    или распечатки документа OLE-объект
    не использует средств приложения-источника.
    Например, при переносе составного
    документа на другой компьютер OLE-объект
    будет отображаться нормально, даже
    если на этом компьютере нет соответствующего
    приложения-источника Однако OLE-объект
    сохраняет связь с приложением-источником,
    которая позволяет обеспечить
    редакти­рование OLE-объекта
    внутри составного документа;

  • связывание объекта, при
    котором в документ-приемник помещается
    не сам объект, а лишь ссылка на
    документ-источник. В этом случае
    OLE-объект
    будет связан не с приложением-источником,
    а с документом-источником, в котором
    находится этот объект. Эта связь
    позволяет изменить представление
    объекта в документе-прием­нике, как
    только этот объект будет изменен в
    документе-источнике.

Внедрение объекта

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

Внедрить объект в документ можно
несколькими способами:

  • из открытого документа (с помощью команд
    Вставить и Специальная вставка);

  • из файла (специальной командой вставки
    файла или импорта файла);

  • непосредственным вызовом
    OLE-сервера
    (командой Вставить объект). Внедрение
    объекта из открытого документа
    выполняется следующим образом:

  • в приложении-источнике вьщеляется
    объект, который будет внедряться;

  • выделенный объект копируется в буфер
    обмена с помощью команды Копировать
    или Вырезать;

  • осуществляется переход в приложение-приемник,
    где формируется составной доку­мент,
    и указатель мыши устанавливается в
    место вставки объекта;

  • вставляется объект с помощью команды
    Вставить или Специальная вставка;

  • при использовании команды Специальная
    вставка на экране появляется диалоговое
    окно «Специальная вставка» (рис. 12.15),
    в котором необходимо выбрать способ
    вставки данных как объекта, отметить
    кнопку выбора <Вставить> и нажать
    кнопку <ОК>. Данные можно вставлять
    в составной документ также в виде
    значка, для чего в диалоговом окне
    «Специальная вставка» следует отметить
    соответствующий пере­ключатель.

Технология внедрения
содержимого файла, которая рассматривается
на примере при­ложения Word,
состоит в следующем:

  • в составном документе указывается
    место внедрения;

  • вводится команда Файл из управляющего
    меню Вставка;

  • в диалоговом окне «Вставка файла» (рис.
    12.16) устанавливаются необходимые
    па­раметры и выбирается имя файла
    При этом не следует устанавливать
    переключатель <Связь с файлом>, чтобы
    содержимое файла оказалось внедренным;

  • нажать кнопку <ОК>.

Рис. 12.15. Окно
«Специальная вставка» в текстовом
процессоре Word

Рис. 12.16. Окно
«Вставка файла» в текстовом процессоре
Word

Для других приложений технология
аналогична, отличие состоит в конкретных
назва­ниях команд.

В составной документ новый объект
внедряется следующим образом:

  • в составном документе указывается
    место внедрения;

  • вводится команда Вставить
    объект
    (в среде Word
    — пункт Объект
    управляющего меню
    Вставка);

  • в диалоговом окне «Вставка объекта»
    (рис. 12.17) выбирается тип внедряемого
    объекта, т.е. приложение-источник. Флажок
    <Связь с файлом> устанавливать не
    следует, для того чтобы объект оказался
    внедренным;

  • нажимается кнопка <ОК>;

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

Рис. 12.17. Окно «Вставка объекта» в
текстовом процессоре Word

Объект, внедренный по
технологии OLE,
можно редактировать средствами
приложе­ния-источника следующими
способами:

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

  • дважды щелкнуть левой кнопкой мыши на
    внедренном объекте.

Отметим, что если один и тот же объект
внедряется в несколько документов, то
в каждом документе будет храниться своя
копия объекта. В этом случае хранение
объекта и всех его копий требует
дополнительного расхода внешней памяти.
Кроме того, не сохра­няется никакой
связи между копиями объекта, изме­нение
одной из копий никак не влияет на
остальные копии объекта.

Связывание объекта

При просмотре или распечатке составного
документа связанный объект ничем не
отличается от внедренно­го. Различие
проявляется лишь при редактировании
объекта. Связанный объект всегда
находится в доку­менте-источнике, а
в составном документе-приемнике хранится
ссылка (указание местонахождения) на
файл с этим документом (рис. 12.18).

Таким образом, при связывании объекта
в доку­ментах-приемниках указываются
ссылки на объект, а сам объект хранится
в единственном экземпляре в
до­кументе-источнике. Любые изменения
объекта, прово­димые в документе-источнике,
обязательно отражают­ся на представлении
объекта в составных документах. При
открытии составного документа необходимо
поза­ботиться о том, чтобы присутствовали
все файлы, в которых хранятся связанные
с ним объекты, причем в точности в тех
папках, в которых они находились при
связывании.

Рис.12.18. Процедура связывания
объектов по технологииOLE

Технологией связывания объекта
целесообразно пользоваться в следующих
случаях:

  • объект вставляется в несколько разных
    документов, и необходимо, чтобы любые
    из­менения этого объекта отражались
    в этих документах;

  • объект занимает слишком много места и
    затрудняет работу с составным документом;

  • при недостатке внешней памяти.

Создание связанных объектов в составном
документе возможно двумя способами:

  • из открытого документа. При этом в
    составной документ можно включить лишь
    неко­торый фрагмент из документа-источника;

  • из файла. При этом документ-источник
    полностью включается в составной
    документ.

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

Связывание объекта из открытого документа
выполняется следующим образом:

  • в приложении-источнике выделяется
    объект, который будет связываться;

  • выделенный объект переносится
    в буфер обмена с помощью команды
    Копировать;

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

  • вводится команда Специальная
    вставка;

  • в диалоговом окне «Специальная вставка»
    отмечается кнопка выбора <Связать>,
    указывается способ вставки объекта (в
    обычном виде или в виде значка) и
    нажимается кнопка <ОК>.

Связывание с файлом (на
примере текстового процессора Word)
состоит в следую­щем:

  • в составном документе указывается
    место вставки;

  • вводится команда Файл
    из меню Вставка;

  • в диалоговом окне «Вставка
    файла» (см. рис.
    12.16) устанавливаются флажок <Связь с
    файлом> и другие

  • необходимые параметры, затем выбирается
    документ, в котором хранится объект;

▪ нажимается кнопка <OK>.

Изменить связанный объект можно,
отредактировав документ-источник, в
котором он размещен. Это можно осуществить
одним из двух способов. Первый способ
— открыть документ-источник непосредственно
в среде приложения-источника, второй
способ — открыть документ-источник из
составного документа, где находится
связанный объект. Открытие можно
осуществить либо с помощью контекстного
меню, либо двойным щелч­ком кнопки
мыши на этом объекте.

Поскольку связанные объекты
хранятся отдельно от составного документа
в своих до­кументах-источниках, важно
иметь сведения о связях составного
документа. Просмотреть, обновить и
изменить связи составного документа
можно в диалоговом окне «Связи» («Links»),
которое, например, в приложении Word
вызывается командой Связи
из меню Правка
(рис. 12.19). Это диалоговое
окно содержит информацию о связях
данного объекта:

  • спецификацию (путь) файла;

  • тип или формат объекта;

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

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

Рис. 12.19. Диалоговое окно «Связи» в
текстовом процессореWord

Уровень сложностиПростой

Время на прочтение9 мин

Количество просмотров476

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

  1. Открытие файлов через ассоциацию с приложением

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

  2. Реализация собственного протокола в системе

    Этот механизм позволяет приложениям обрабатывать специфические ссылки. Например, при установке мессенджера Telegram в Windows регистрируется протокол tg://. Когда пользователь нажимает на такую ссылку в браузере или документе, система понимает, что ее должен обработать клиент Telegram, поскольку информация о протоколе хранится в реестре Windows. Такая возможность реализуется по аналогии с типовыми протоколами, такими как http://, mailto: или ftp://, — разработчики могут создавать собственные, кастомные протоколы для запуска приложений и передачи в них данных.

  3. Механизм Drag & Drop (перетаскивание файлов)

    Drag In (перетаскивание внутрь) — когда пользователь перетаскивает файл в окно приложения, то программа его открывает.

    Drag Out (перетаскивание наружу) — приложение позволяет пользователю «вытянуть» объект за пределы окна приложения, передав его в другую программу или создав файл-ярлык в Windows.

  4. Копирование и вставка данных через буфер обмена

    Буфер обмена Windows позволяет приложениям передавать данные между собой с помощью копирования и вставки. Информация в буфере может храниться в разных форматах: простой текст, изображения, файлы, специальные ссылки и даже структурированные данные в виде XML или JSON. Возможна регистрация и использование своего уникального формата данных.

Поскольку я сейчас работаю над проектами, связанными с ЛОЦМАН:PLM, на примере десктопного приложения ЛОЦМАН:PLM Клиент покажу, где применяются эти механизмы. А в примерах кода более подробно продемонстрирую, как можно реализовать их в приложениях, написанных в Lazarus IDE.

ЛОЦМАН:PLM — это решение для управления инженерными данными и жизненным циклом изделий, разрабатываемое компанией АСКОН. Система предоставляет инструменты для работы с данными на всех этапах жизненного цикла продукта.

2022-Схема.png

Модули ЛОЦМАН:PLM

Десктопный клиент ЛОЦМАН:PLM — это классическое Windows-приложение, которое позволяет пользователю работать с базой данных комплекса PLM, управляя проектами и информационными объектами. В зависимости от своей роли пользователь может взаимодействовать с определёнными типами объектов, обеспечивающих поддержку различных этапов жизненного цикла изделия. Это могут быть объекты системной инженерии, а также конструкторской или технологической подготовки производства.

рис 2.png

Различные варианты структур

ЛОЦМАН:PLM Клиент работает с понятием информационного объекта, который имеет идентификационные данные, позволяющие ссылаться на него. Для передачи этих данных и последующего поиска соответствующего объекта в приложении реализованы специальные функции.

Примеры функций работы с объектом в ЛОЦМАН:PLM Клиент

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

Для анализа содержимого буфера обмена можно воспользоваться утилитой Free Clipboard Viewer, она позволит увидеть как там хранится информация скопированная в него. Утилита покажет, что в записи LoodsmanBuffer хранится информация в виде JSON-объекта следующего содержания:

CB.png

Просмотр содержимого буфера обмена

Сам формат LoodsmanBuffer поддерживается только ЛОЦМАН:PLM, вставить такие данные в другие приложения не получится.

Однако, для передачи информации о конкретных объектах во внешние программы или пересылки ее пользователям, реализован механизм создания специальных ссылок. Выделив объект в дереве, можно воспользоваться командой «Инструменты → Ссылки → Копировать ссылку», после чего в буфер обмена будет помещена строка следующего вида: ask:Loodsman.URL?Action=Navigate,params=NTF8REJfTkFNRXw0ODR8NDg1fHw0ODV8NDU4fDQ3OXw1MDR8NTA1

Здесь можно видеть что эта ссылка зарегистрированного протокола, которая имеет специальный формат, в которой ask: — это имя протокола, который обрабатывает ЛОЦМАН:PLM Клиент. Параметр Action=Navigate говорит приложению о том, что нужно перейти в дереве объектов на определенный объект, а params= содержит закодированную в Base64 строку, содержащую идентификационные данные.

Декодированная строка имеет следующий вид: 51|DB_NAME|484|485||485|458|479|504|505, Здесь в строке, через разделитель | указаны имя базы данных и уникальные идентификаторы объектов: выбранного и его родительского.

Ссылка может быть вставлена в текст и будет обрабатываться как гиперссылка. При переходе по этой ссылке система автоматически запустит ЛОЦМАН:PLM Клиент, и передаст ему ее в качестве параметра. Клиент в свою очередь обработает полученные данные, найдет в дереве и выделит требуемый объект.

Помимо копирования в буфер обмена, имеется еще один способ создания ссылки на объект — это перетаскивание объекта за пределы приложения. В этом случае ЛОЦМАН:PLM Клиент генерирует специальный файл-ярлык (.lnk), который сохраняется в том месте, где пользователь отпустит кнопку мыши после перетаскивания.

Внутри файла хранится информация в следующем виде:

[InternetShortcut]
URL=ask:Loodsman.URL?Action=Navigate,params=MHxBS19QbG0wMXwyODk4fDEwMTI=
IconIndex=0
IconFile=C:\Program Files (x86)\ASCON\Loodsman\Client\Loodsman.exe

При двойном клике по ярлыку, как и при щелчке по ссылке вида ask: автоматически запускается ЛОЦМАН:PLM Клиент, или активируется уже запущенный экземпляр. А далее он получает из ярлыка необходимые данные и отображает окно с нужным объектом.

Файл-ярлык с расширением .lnk — это стандартный ярлык в системе Windows, предназначенный для быстрого доступа к программам, файлам, папкам или сетевым ресурсам. Его обработку выполняет сама система. Однако, помимо этого, ЛОЦМАН:PLM может работать с собственными ярлыками, поскольку при установке регистрируются следующие типы файлов, которые открываются с помощью приложения:

  • .lnd -Loodsman.LinkDocument (Ссылка на документ ЛОЦМАН:PLM)

  • .lnf — Loodsman.LinkFile (Ссылка на файл ЛОЦМАН:PLM)

  • .lno — Loodsman.LinkObject (Ссылка на объект ЛОЦМАН:PLM)

Выше были приведены примеры применения системных механизмов на примере ЛОЦМАН:PLM,  а далее будет приведена информация для реализации этих механизмов в собственном приложении.

Реализация механизмов в собственном приложении

В качестве примеров буду использовать код из заглушки, которая была написана для партнёров, разрабатывающих механизм интеграции с ЛОЦМАН:PLM. Заглушка позволяла протестировать нужный функционал без установки и развёртывания всего комплекса PLM на машинах разработчиков. Конечно, после отладки основных взаимодействий между приложениями, комплекс PLM был развернут на отдельной машине и уже там тестировалась совместная работа в полном объёме.

Открытие файла на двойной клик

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

Файл приложения

Для внесения в заглушку тестовых данных, которые были сгенерированы с помощью отчета из базы данных ЛОЦМАН:PLM, они были помещены в файл с расширением .lpf. Данные внутри файла представляют собой JSON массив объектов.

Добавление записи в реестр

Обычно все действия, связанные с добавлением записей в реестр Windows, прописываются в установщике приложения. Однако возможен и вариант создания REG-файла, который нужно было импортировать вручную. При составлении параметров записи важно учитывать, для какого пользователя вносятся изменения: если запись добавляется только для текущего пользователя, то используется ветка HKCU (HKEY_CURRENT_USER). Если же требуется реализация изменений для всех пользователей системы, то необходимо работать с веткой HKLM (HKEY_LOCAL_MACHINE), но это требует административных прав.

В установщиках приложений для указания пути до приложения обычно используются макросы, а в файле REG приходится указать полный путь до приложения заранее. В приведённом ниже примере предполагается, что приложение будет расположено в папке C:\tmp\loo_plug\, а иконка для файла будет браться из ресурса 1.

Пример добавления записей в реестр:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Classes\.lpf]
@="loo_plug_file"

[HKEY_CURRENT_USER\Software\Classes\loo_plug_file]
@=""
"EditFlags"=dword:00000000
"BrowserFlags"=dword:00000008

[HKEY_CURRENT_USER\Software\Classes\loo_plug_file\DefaultIcon]
@="\"C:\\tmp\\loo_plug\\loo_lpug.exe\",1"

[HKEY_CURRENT_USER\Software\Classes\loo_plug_file\shell]

[HKEY_CURRENT_USER\Software\Classes\loo_plug_file\shell\open]
@=""

[HKEY_CURRENT_USER\Software\Classes\loo_plug_file\shell\open\command]
@="\"C:\\tmp\\loo_plug\\loo_lpug.exe\" \"%1\""

Обработка передаваемых параметров командной строки

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

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

procedure TForm1.FormCreate(Sender: TObject);
var
  i: Integer;
  param: string;
begin
  for i := 1 to ParamCount do
  begin
    param := ParamStr(i);
    if LowerCase(ExtractFileExt(param)) = '.lpf' then
    begin
      // Найден параметр с расширением .lpf
      // Выполняется загрузка данных ...
    end;
  end;
end;

Открытие файла перетаскиванием

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

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

Для того чтобы обрабатывать собственный протокол, как и в случае с ассоциацией типа файла, необходимо внести записи в реестр. Для обработки протокола ASK приложением заглушкой, которое будет находиться по пути C:\tmp\loo_plug\, необходимо добавить в реестр следующие записи:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Classes\ask]
"URL Protocol"=""

[HKEY_CURRENT_USER\Software\Classes\ask\DefaultIcon]
@="C:\\tmp\\loo_plug\\loo_lpug.exe,0"

[HKEY_CURRENT_USER\Software\Classes\ask\Shell]

[HKEY_CURRENT_USER\Software\Classes\ask\Shell\Open]

[HKEY_CURRENT_USER\Software\Classes\ask\Shell\Open\Command]
@="\"C:\\tmp\\loo_plug\\loo_lpug.exe\" \"%1\""

Поскольку ранее мы реализовали обработку только аргументов, оканчивающихся на «.lpf«, теперь необходимо добавить поддержку строк, начинающихся с «ask:«, и передавать такие строки в функцию, которая вернёт ИД объекта.

Пример кода функции, для сборки нужно включить в uses модуль base64

function ExtractAndDecode(const input: string; out ObjectID: Integer; out DatabaseName: string): Boolean;
var
  paramsStart, paramsEnd: Integer;
  paramsValue, decodedString: string;
  elements: TStringArray;
begin
  ObjectID := 0;
  DatabaseName := '';

  paramsStart := Pos('params=', input);
  if paramsStart = 0 then Exit(False);

  paramsStart := paramsStart + Length('params=');
  paramsEnd := Length(input);

  paramsValue := Copy(input, paramsStart, paramsEnd - paramsStart + 1);

  decodedString := DecodeStringBase64(paramsValue);
  if decodedString = '' then Exit(False);

  elements := decodedString.Split(['|']);
  if Length(elements) &lt; 4 then Exit(False);

  DatabaseName := elements[1];
  try
    ObjectID := StrToInt(elements[3]);
  except
    Exit(False);
  end;

  result:=True;
end;

Чтобы для каждой новой ссылки не запускался свой экземпляр приложения, нужно организовать передачу информации от вновь запускаемого дубликата в уже запущенное приложение. Такой вариант можно реализовать, используя связку Mutex и Named Pipes, но об этом расскажу в следуюoщей статье.

Создание ярлыка со ссылкой «вытягиванием» объекта

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

Модуль был найден на форуме Lazarus в ветке, где участник форума под псевдонимом ASerge, представил этот модуль в ответ на запрос другого пользователя, желающего реализовать перетаскивание файлов из приложения Lazarus в другие программы, поддерживающие WM_DROPFILES.

Основная идея состоит в следующем:

  • На основе данных приложения создается временный файл.

  • С помощью функции DragandDropCopyComplete из модуля uShellDragDrop.pp этот файл передается в целевую директорию.

Файл, который мы создаём, представляет собой обычный INI-файл с расширением .URL, содержащий ссылку на нужный ресурс или действие. Пример содержимого такого файла:

[InternetShortcut]
URL=ask:Loodsman.URL?Action=Navigate,params=MHxBS19QbG0wMXwyODk4fDEwMTI=
IconIndex=1
IconFile=C:\tmp\loo_plug\loo_lpug.exe

Что записано внутри файла:

  • URL указывает на специальный протокол ask:, который будет обработан соответствующим приложением.

  • IconFile задаёт путь к иконке, которая будет использоваться для ярлыка.

После выполнения функции DragandDropCopyComplete, в целевой директории появится копия временного .URL-файла — полноценный ярлык. При его запуске будет автоматически вызвано приложение, ответственное за обработку протокола ask:.

Заключение

Надеюсь, приведенные выше примеры пригодятся вам для понимания того, как организовать взаимодействие между пользователем, системой и вашим приложением. А в следующем материале я продолжу эту тему и расскажу, как организовать передачу данных между экземплярами приложения с помощью Mutex и Named Pipes, чтобы избежать запуска дублирующихся копий клиента и обеспечить «бесшовную» обработку новых запросов.

Технология и способы обмена данными

Выполнив задания этой
темы, вы научитесь:

ð
обмениваться
данными через буфер обмена;

ð
обмениваться
данными по технологии
OLE;

ð создавать составные документы.

Задание 1

Создайте текстовый
документ Набор.
rtf. Рассчитайте с помощью программы
Калькулятор стоимость товаров, перечисленных в тексте. Результат вычислений
вставьте в текст через буфер обмена.

Технология работы

1.    
Запустите
программу
WordPad, выбрав в меню Пуск команду Все
программы
à Стандартные à WordPad, и разверните его на весь экран.

2.    

Создайте текстовый документ
по образцу на рис. 1.

3.    
Запустите
программу Калькулятор; расположите окно Калькулятора так, чтобы оно не
закрывало данные для расчетов в текстовом документе.

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

·     
используя программу
Калькулятором, вычислите общую стоимость тетрадей, перемножив их цену (4 р.) на
количество (5 шт.);

·     
занесите
результат вычислений в память Калькулятора, щелкнув на кнопке М+;

·     
наберите цену
альбома для рисования (32 р.) и добавьте ее к числу, хранящемуся в памяти
Калькулятора, щелкнув на кнопке М+ (операцию умножения на количество (1) можно
пропустить);

·     
аналогичным
образом вычислите стоимость остальных принадлежностей, и каждый раз добавляйте
результат к сумме, хранящейся в памяти, щелкая на кнопке М+;

·     
посмотрите
общую стоимость принадлежностей, щелкнув на кнопке
MR; результат должен быть равен 114 р.

5.    
Вставьте
результат вычислений в текстовый документ через буфер обмена:

·      
скопируйте
результат вычислений в буфер обмена, выбрав в меню программы Калькулятор
команду Правка
à Копировать (рис.2);

·      
перейдите в
окно программы
WordPad;

·      
установите
курсор на место вставки текста, щелкнув мышью перед вопросительными знаками
напротив слова Итого:

·      
выберите в
меню команду Правка
à Вставить — данные из буфера обмена будут вставлены в текст (рис.2);

·      
удалите
вопросительные знаки.

6.    


Сохраните сделанные
изменения, выбрав команду меню Файл
à Сохранить, задав имя Haбop. rtf

Задание
2

Запустите
графический редактор
Paint, создайте и сохраните любой
рисунок, например букву (рис. 3).

Графический
редактор
Paint также является стандартным
приложением
Windows. Эта программа предназначена для
создания и редактирования на экране графических объектов.

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

Технология работы

1.    
Создайте
графический объект, например букву Н, используя инструменты Кисть, Распылитель
и палитру цветов.

2.    
Сохраните
рисунок:

·      
выберите в
меню команду Файл
à Сохранить как;

·      
выберите в
списке папок необходимую папку;

·      
в поле Имя
файла введите название Буква;

·      
в поле Тип
файла оставьте предложенное автоматически значение;

·      
нажмите кнопку
ОК;

·      
закройте
программу
Paint.

Задание 3

Создайте составной (интегрированный)
документ, используя технологию
OLE
для внедрения объекта. Для этого выполните внедрение фрагмента рисунка или
всего рисунка из файла Буква.
bmp
в текстовый файл Набор. rtf и сохраните его.

Технология работы

1.    
Запустите
приложение-источник — программу
Paint.

2.    
Откройте
файл Буква.
bmp, созданный при выполнении предыдущего
задания:

3.    
Скопируйте
фрагмент рисунка, который надо поместить в текстовый файл:

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

·      
выберите
команду меню Правка
à Копировать.

4.    
Запустите
приложение-приемник — программу
WordPad.

5.    
Откройте текстовый
документ
Набор. Rtf.

6.    
Вставьте
скопированный фрагмент рисунка в текстовый документ через буфер обмена:

·      

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

·      
выберите
команду меню Правка
à Специальная
вставка;

·      
в открывшемся
диалоговом окне (рис. 4) выберите значение Вставить — Точечный рисунок;

·      

щелкните на кнопке ОК —
рисунок будет внедрен в текстовый документ (рис. 5).

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

7.    
Сохраните
документ в формате
RTF, выбрав команду меню Файл à Сохранить как и указав в поле Тип файла
значение Файл
RTF.

8.    
Измените
внедренный рисунок:

·       дважды щелкните на рисунке в
тексте: интерфейс программы
WordPad изменится на интерфейс
приложения-источника — программы
Paint
(рис. 6);

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

·      
используя
инструменты программы
Paint, внесите изменения в рисунок;

·      
по окончании
редактирования щелкните левой кнопкой мыши в любом месте за пределами окна
редактирования рисунка — интерфейс программы
WordPad примет обычный вид, причем все сделанные изменения рисунка будут
сохранены в документе.

9.    
Переключитесь
в программу
Paint и обратите внимание на то, что
изменения, сделанные в текстовом документе, не нашли отражения в исходном файле
Буква.
bmp.

Задание 4

Создайте в
программе
WordPad составной (интегрированный)
документ, используя технологию
OLE
для внедрения и связывания объектов. Для этого выполните внедрение и связывание
файла Буква
.bmp. с файлом, созданным в WordPad.

Технология работы

1.    
Запустите
программу
WordPad, выбрав в меню Пуск команду Все
программы
à Стандартные
à WordPad.

2.    
Откройте
документ
Набор.rtf:

3.    
Вставьте в
документ Набор.
rtf связь с файлом Буква.bmp:

·       выберите команду меню Вставка à Объект — откроется диалоговое
окно, позволяющее либо создать новый объект
OLE при
помощи любого из приложений-источников, установленных на вашем компьютере и
перечисленных в поле Тип объекта (рис. 7), либо вставить объект
OLE, уже сохраненный на компьютере;

·      

в открывшемся окне выберите
переключатель Создать из файла и щелкните на кнопке Обзор;

·      
в диалоговом
окне выбора файла откройте нужную папку, щелкните на файле Буква.
bmp и нажмите кнопку Открыть — полный путь к выбранному файлу
С: \………\Букв
a.bmp
будет отображен в поле Файл (рис. 8);

·      

установите флажок Связь и
щелкните на кнопке ОК.

4.    
Закройте
приложение
WordPad, сохранив при выходе изменения,
сделанные в файле Набор.
rtf.

5.    
Отредактируйте
файл Буква.
bmp средствами приложения-источника:

·      
запустите
программу
Paint;

·      
откройте файл
Буква.
bmp;

·      
внесите
изменения, используя инструменты программы
Paint.

6.    
Посмотрите,
отразились ли сделанные изменения в документе Набор.
rtf:

·      
запустите
приложение
WordPad;

·      
откройте
документ
Набор.rtf;

·      
убедитесь, что
изменения, сделанные в файле Буква.
bmp,
отражены в документе Набор.
rtf.

7.    
Закройте
приложения
WordPad и Paint.

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Как создать виртуальный диск на windows 7 для iso образов
  • Как сбросить виртуальную память windows 10
  • Asus x200la windows 7
  • Можно ли играть в роблокс на windows 7
  • Steam windows 7 решение