Главная страница
 Каталог книг
 Расширенный поиск
 Об издательстве
 Контакт
 Для авторов
 Вакансии
 Подписка на новости
 Издательство
 "Диалектика"

Рекомендуемые книги

книга "Внутренний мир Borland Delphi 2006"
Внутренний мир Borland Delphi 2006


книга "Программирование в Borland Delphi 2006 для профессионалов"
Программирование в Borland Delphi 2006 для профессионалов



Книга для всех

Веб-аналитика: анализ информации о посетителях веб-сайтов
Веб-аналитика: анализ информации о посетителях веб-сайтов



Комиксы для детей

книга Почему? Человек. Цветной комикс для детей
Почему? Человек. Цветной комикс для детей



Разработка COM-приложений в среде Delphi

Эрик Хармон
Delphi COM Programming
книга "Разработка COM-приложений в среде Delphi"




Введение
Файлы к книге

Книга посвящена методике разработки приложений на базе модели составных объектов (COM) в среде Delphi. В первых пяти главах детально рассматриваются основные идеи модели COM и способы ее реализации в среде Delphi. Здесь же достаточно подробно описаны два распространенных программных продукта, которые могут служить основой для создания разнообразных прикладных COM-приложений - Microsoft ADO и Microsoft Agent. В последующих четырех главах возможности COM-технологии рассматриваются более углубленно. Читатель знакомится с методикой создания сетевых взаимодействующих приложений, средствами хранения структурированных данных в едином файле, наборами свойств и контейнерами OLE, использованием модели COM для расширения возможностей оболочки Windows.
Книга рассчитана на читателей, имеющих опыт работы в среде Delphi.

464 стр., с ил.; ISBN 5-8459-0074-3, 1-57870-221-6; формат 70х100/16; серия Circle; 2000, 2 кв.; Вильямс.


Книги, рекомендуемые вместе с этой книгой:




Об авторах

Эрик Хармон (Eric Harmon) уже более 15 лет занимается программированием. С 1985 года он разрабатывает программы на языке Pascal — сначала в среде Turbo Pascal, а затем в Delphi. Эрик — член группы квалифицированных специалистов TPX, добровольно оказывающих помощь компании TurboPower Software Company в обслуживании ее групп новостей. Ему принадлежит множество статей, опубликованных в журнале Visual Developer Magazine.

Эрик Хармон живет во Флориде со своей женой Тиной и домочадцами — кошкой Принцессой и псом Оскаром. Если Эрик не занят программированием, его можно застать за чтением книг, игрой в карты (по-научному), прослушиванием музыкальных записей (если только он не умчался куда-нибудь на мотоцикле). С Эриком можно связаться по адресу: Eric.Harmon@tpx.turbopower.com.

О технических рецензентах

Все программы и иллюстративные материалы, включенные в книгу Разработка COM-приложений в среде Delphi, были тщательно проверены в процессе рецензирования. Рецензенты подключились к работе над книгой еще на стадии обсуждения ее содержания и компоновки отдельных разделов и проверяли материал на протяжении всего процесса подготовки книги к печати. Такая обратная связь стала надежнейшей гарантией того, что в книгу включен материал, в полной мере удовлетворяющий потребности самого взыскательного читателя и предлагающий техническую информацию самого высокого качества.

Уэйн Ниддери (Wayne Niddery) — независимый разработчик программного обеспечения. Для него, работающего уже более 16 лет в самых разнообразных областях, Delphi с первых дней появления на свет стала предпочтительным инструментом в работе. Член группы TeamB с сентября 1998 года, он регулярно представляет свои материалы в группе новостей Delphi. Уэйн является соавтором популярного издания Borland Delphi How-To (1995, The Waite Group) и техническим редактором Delphi 3 Super Bible (1997, The Waite Groupie). Уэйн обитает в Торонто (Канада) вместе с женой Соней, сыном Кертисом и другом семьи псом Пэтчем.

Дэнни Торп (Danny Thorpe) — ведущий инженер по части Delphi и C++ Builder в группе разработчиков компании Inprise Corporation. В настоящее время занимается программным ядром библиотеки VCL, графическими классами, системой управления потоками, библиотекой времени выполнения RTL, классами табличных форм, редакторами свойств в процессе разработки и архитектурой построителя форм. Через его руки прошли все программные продукты на базе языка Pascal, разработанные в Borland/Inprise, начиная с Turbo Pascal 6.0, который был создан в 1990 году. Дэнни также принимал участие в качестве научно-технического редактора в издании более сорока книг, касающихся программирования в среде Delphi. Кроме того, он — автор книги Delphi Component Design (1997, Addison Wesley).

Посвящение

Посвящается памяти миссис Мак, моей школьной учительницы английского языка, которая подталкивала нас к знаниям чуть жестче, чем прочие.

Введение

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

Для кого предназначена эта книга

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

Если ранее вы уже читали какие-либо материалы о COM — статьи или более обширные руководства — но не знаете, с какой стороны начать освоение технологии COM применительно к приложениям, создаваемым в среде Delphi, не отчаивайтесь! Среда предоставит в ваше распоряжение множество языковых средств и мастеров, которые значительно облегчат или даже возьмут на себя большинство забот, вызывающих у большинства головную боль при упоминании о традиционных приемах программирования технологии COM.

Эта книга предполагает, что читатель довольно хорошо освоил основные приемы работы в среде Delphi, так что я не буду останавливаться на их подробном описании. Если вы чувствуете потребность освежить в памяти знания о Delphi, к вашим услугам Приложение, в котором приведен довольно внушительный список книг о Delphi для читателей самого различного уровня подготовки, — от новичков до специалистов высокого класса.

Структура книги

Эта книга состоит из девяти глав. В главах с 1 по 5 детально рассматриваются основные идеи технологии COM и способы ее реализации в среде Delphi. Хотя материал последующих глав базируется на изложенном в этих первых, одно из прекрасных качеств технологии COM в том и состоит, что можно пользоваться отдельными ее компонентами, не вдаваясь глубоко в детали функционирования остальных. Естественно, чем глубже вы постигнете основы, тем более высокого уровня мастерства в программировании в Delphi достигнете, но можно начать программировать и после изучения материала любой из начальных глав не дожидаясь остальных из этой части книги.

Концепции, изложенные в первых главах, используются в последующих — с шестой по девятую, — где рассматриваются более специальные вопросы программирования COM. Например, в главе 9 показано, как расширить возможности оболочки Windows посредством COM разработав приложения, которые позволяют использовать системный лоток (tray).

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

  • В главе 1 Использование интерфейсов в Delphi вводится понятие интерфейса. Интерфейсы представляют собой базовые структурные блоки модели COM. Из материала главы вы узнаете, что интерфейсы — это удобные в использовании языковые компоненты со своими собственными правами в среде Delphi. Будет продемонстрировано, как создавать приложения Delphi на базе интерфейсов, даже не касаясь, по существу, модели COM.
  • В главе 2 Интерфейсы и COM изложены те аспекты интерфейсов, которые были опущены в главе 1, и объясняется, как создать сервер COM в среде Delphi. Вы научитесь обновлять ранее разработанные серверы COM без вмешательства в фрагменты существующего программного кода, которые зависят от прежней версии этого сервера.
  • В главе 3 Библиотеки типов рассматривается концепция библиотеки типов. Вы узнаете, что библиотеки типов представляют собой средство, с помощью которого серверы COM могут быть использованы практически любым конкретным компилятором, доступным сегодня на рынке программных продуктов.
  • Глава 4 Автоматизация аккумулирует сведения, изложенные в предыдущих главах, применительно к клиентам и серверам автоматизации. Автоматизация обеспечивает функционирование механизма, посредством которого одно приложение может управляться изнутри другого.
  • В главе 5 Элементы управления ActiveX и активные формы рассматриваются элементы управления и активные формы ActiveX. Вы научитесь без особого труда использовать в среде Delphi существующие элементы управления ActiveX и создавать свои собственные, которые можно представлять на рынке и рекомендовать не только программистам, работающим в Delphi, но и тем, кто работает с Visual C++, Visual Basic и другими языками.
  • Глава 6 DCOM посвящена использованию изложенных в предыдущих главах концепций в сети. Будет показано, как разработать распределенные приложения, которые смогут взаимодействовать друг с другом как через локальную сетевую среду, так и через глобальную.
  • В главе 7 Хранение структурированных данных изложены вводные сведения о хранении структурированных данных как средстве сохранения множества данных различных типов в одном файле. Вы увидите, какую роль при этом играют интерфейсы COM и как они позволяют без особого труда использовать файлы хранения структурированных данных в приложениях Delphi.
  • Глава 8 Хранение структурированных данных и OLE продолжает материал предыдущей главы, в ней рассматриваются также наборы свойств OLE и контейнеры OLE. Наборы свойств OLE представляют собой универсальное средство сохранения специфической информации в файлах хранения структурированных данных. Например, одно приложение может сохранить имя автора в документе, а какое-либо другое, если оно имеет доступ к набору свойств OLE, может прочесть имя автора из файла документа, не имея никакого представления о структуре файла.
  • В главе 9 Программирование оболочки Windows описано, как разработать некоторые из средств общего назначения, расширяющих возможности оболочки Windows, в частности программы работы с контекстными меню, отслеживания операций копирования, настройки системного лотка.

Компоненты, разработанные в книге

Хотя эта книга и не является специальным пособием по разработке компонентов, в тексте есть несколько разделов, в которых имело смысл разработать специальные компоненты Delphi, инкапсулирующие методы реализации описанных идей. По этой простой причине исходный текст сопроводительных программ включает пакет DCP (аббревиатура от Delphi COM Programming). Пакет предлагается в трех вариантах: DCP3 для версии Delphi 3, DCP4 для версии Delphi 4 и DCP5 для тех, кто программирует в среде версии Delphi 5. Пакет включает следующие компоненты:

  • EventSink — средство для упрощения формирования реакции на события, происходящие в клиенте автоматизации (используется в главе 4);
  • PropertySet — считывает и записывает набор свойств OLE (используется в главе 8);
  • TrayIcon — управляет пиктограммами системного лотка (используется в главе 9).

Приложения

Каждая глава книги включает несколько программ, которые помогут вам быстрее освоить методику программирования COM. Большинство примеров написано для Delphi 4, а затем повторно откомпилировано в Delphi 5.

За небольшим исключением все примеры, представленные в книге, компилируются в версиях Delphi 3, Delphi 4 и Delphi 5. В некоторых случаях будут представлены директивы компилятора, которые необходимы для специальной настройки Delphi 3. Несколько примеров не могут быть реализованы в версии Delphi 3, поскольку в них используются расширения языка, внедренные только в последующих версиях. Эти примеры особо отмечены в тексте книги.

Исходный программный код всех приложений из этой книги можно загрузить, обратившись по адресу http://www.newriders.com/delphi.

Ниже приведен список по главам приложений, которые включены в текст книги.

Глава 1

  • GUIDDemo — наглядно показывает, как формировать глобальные уникальные идентификаторы (Globally Unique Identifiers — GUID);
  • IntfDemo — демонстрирует концепцию интерфейсных ссылок для подсчета и управления жизненным циклом объектов COM;
  • SortDemo — на конкретном примере демонстрирует, как реализовать порождающий алгоритм (подпрограмму сравнения/сортировки), используя интерфейсы;
  • GrphDemo — реализация ряда более сложных функций интерфейса, таких как множественный интерфейс отдельного класса, разрешение имен методов и т.п. Эта программа демонстрирует, как использовать интерфейс для создания иерархии классов.

Глава 2

  • Bin1Srv — демонстрирует, как создать простой сервер COM, который реализует одномерную оптимизацию (проблема NP-полноты);
  • Bin1Cli — демонстрирует работу клиента, который получает доступ к серверу Bin1Srv;
  • Bin1Srv2 — показывает, как обновить существующий сервер COM без изменения существующего программного кода клиента;
  • Bin1Cli2 — обновленная версия Bin1Cli, которая позволяет использовать новые функции Bin1Srv2.

Глава 3

  • TIViewer — демонстрирует считывание и интерпретацию содержимого библиотеки типов.

Глава 4

  • UnitSrv — демонстрирует функционирование сервера, действующего изнутри вызывающего процесса, который выполняет взаимное преобразование размерностей (пересчитывает дюймы, футы, метры и т.п.);
  • UnitCli — приложение-клиент для сервера UnitSrv;
  • MemoDemo — простое приложение, которое используется в качестве базового для демонстрации методики добавления средств автоматизации в существующее приложение;
  • MemoSrv — приложение MemoDemo с использованием автоматизации;
  • MemoCli — приложение-клиент для сервера MemoSrv;
  • EventSrv — простое приложение, которое демонстрирует, как сгенерировать события изнутри сервера автоматизации;
  • EventMultSrv — модифицированная версия EventSrv, которая позволяет сообщить о событии сразу нескольким клиентам;
  • EventMultCli — приложение-клиент для сервера EventMultSrv;
  • EventCli5 — приложение-клиент для сервера EventMultSrv, в котором использованы специфические средства версии Delphi 5;
  • IntfSrv — демонстрирует реализацию интерфейсов с обратным (callback) вызовом в серверах COM;
  • IntfCli — приложение-клиент для сервера IntfSrv;
  • ADO — демонстрирует, как получить из среды Delphi доступ к Microsoft Active Data Object (ADO).

Глава 5

  • AgentTest — демонстрирует, как использовать в среде Delphi существующий элемент управления ActiveX;
  • AgentDemo — расширенный пример, который демонстрирует некоторые возможности элемента управления ActiveX Microsoft Agent;
  • ActiveX — показывает, как преобразовать визуальный компонент Delphi в элемент управления ActiveX;
  • ActiveForm — показывает, как создать активную форму.

Глава 6

  • DCOMServer — простой сервер DCOM, который используется для тестирования установки DCOM на вашем компьютере;
  • DCOMClient — приложение-клиент для сервера DCOMServer;
  • PartServer — приложение-сервер DCOM, которое может быть использовано для обслуживания склада деталей. Этот сервер демонстрирует методы доступа к удаленной базе данных без использования таких дорогостоящих средств, как MIDAS;
  • PartAdmin — одно из двух приложений-клиентов для PartServer. Это приложение позволяет пользователю выполнять администрирование базы данных деталей — обновление цен или добавление записей о новых деталях в базу данных;
  • PartStoc — другое приложение-клиент для PartServer. Это приложение позволяет пользователю просматривать и частично модифицировать текущую ведомость наличия деталей.

Глава 7

  • CarDemo — показывает, какие преимущества имеет использование файлов хранения структурированных данных в приложениях Delphi;
  • SSView — демонстрирует, как переходить от одного объекта к другому в файле хранения структурированных данных. Также показывает, как уплотнить такие файлы и устранить характерное для них "разбухание".

Глава 8

  • PropDemo — показывает, как считывать и записывать набор свойств OLE в приложении Delphi;
  • FindProp — служебная программа поиска файлов на жестком диске, которая использует при этом данные, сохраненные в наборе свойств OLE;
  • OLECont — демонстрирует, как разработать приложение-контейнер OLE в среде Delphi.

Глава 9

  • CtxDemo — демонстрирует методику разработки программы работы с контекстным меню;
  • CHDemo — демонстрирует работу программы отслеживания операций копирования;
  • LinkDemo — демонстрирует, как создавать и обновлять связи оболочки (средства ускоренного вызова);
  • TrayDemo — демонстрирует процесс создания приложения, которое помещает пиктограмму в системный лоток;
  • PropDemo — показывает, как в среде Delphi разработать программу работы с вкладкой свойств.

В следующем разделе будет приведен краткий обзор технологии COM.

Модель составных объектов COM

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

Назначение COM

COM — это сокращение от Component Object Model (модель составных объектов). COM создавалась с прицелом на решение двух проблем, с которыми повсеместно сталкиваются программисты, работающие в операционной среде Windows.

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

Краткая история развития COM

Технология COM начала развиваться как технология OLE — Object Linking and Embedding (связывание и внедрение объектов). В свою очередь, OLE появилось как одно из направлений развития технологии динамического обмена данными (Dynamic Data Exchange — DDE). Эти технологии позволяли клиентскому приложению получать и сохранять данные от приложения-сервера, а также получать информацию о самом приложении-сервере, чтобы при необходимости, по запросу пользователя, запустить это приложение — как правило, после двойного щелчка на пиктограмме, представляющей соответствующие данные.

По мере совершенствования технологии OLE фирма Microsoft включала в ее состав все новые функциональные возможности, такие как Automation — автоматизация (эта функция рассматривается в главе 4), OLE-элементы управления (за ними закрепилась аббревиатура OCX; рассматриваются в главе 5). В результате сам термин "связывание и внедрение объектов" устарел, и Microsoft объявила, что впредь за этим термином ничего не стоит и она может использовать его по своему усмотрению.

Если придерживаться точности в терминологии, то COM — это техническая реализация OLE, хотя четкой границы между этими терминами не существует и большинство пользователей полагает, что это одно и то же. Термин OLE, в принципе, относится к функциональным возможностям высокого уровня, как бы "надстроенным" над COM, в число которых входят "погружение", "запуск на месте", хранение структур и т.п.

Дальнейшее развитие COM

Хотя на сегодняшний день COM представляет собой законченную технологию, ее развитие на этом этапе не прекратилось. Сейчас Microsoft работает над следующим поколением этой технологии — COM+. В новой версии будут реализованы два наиболее существенных усовершенствования:

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

Хочу обратить ваше внимание — обе эти возможности уже реализованы в Delphi. Как вы узнаете из главы 3, в настоящее время Delphi позволяет реализовать автоматический подсчет ссылок для COM-объектов в большинстве ситуаций. Кроме того, Delphi позволяет инспектировать объекты VCL-классов во время выполнения посредством информации о типе времени выполнения (Runtime Type Information — RTTI).

Можете быть вполне уверены — независимо от того, в каком направлении будет развиваться технология COM, специалисты фирмы Borland обязательно обеспечат, чтобы в Delphi можно было в полной мере использовать все самые последние достижения этой технологии.

Соглашения, принятые в этой книге

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

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

Как связаться с автором

Если у вас возникнет желание связаться со мной по поводу возникших вопросов, пожеланий и замечаний касательно содержания книги, пожалуйста, без всякого стеснения присылайте свои сообщения электронной почтой по адресу: Eric.Harmon@tpx.turbopower.com. Обещаю вам ответить настолько срочно, насколько это будет в моих силах.


Copyright © 1992-2009 Издательская группа "Диалектика-Вильямс"

Rambler  Top100