ActiveX в Delphi

       

В пятую версию Delphi вошли



В пятую версию Delphi вошли следующие новые технологии и возможности:
- ADO (ActiveX Data Object). Является альтернативной технологией по отношению к BDE (Borland Database Engine), позволяющей получать доступ к данным различного формата;
- средство проектирования Data Module Designer (Редактор модулей данных). Позволяет создавать и работать с модулями данных;
- компоненты подсистемы InterBase Express. Позволяют пользоваться серверами InterBase удобным способом. При этом использование BDE не требуется;
- расширение MIDAS. В новой версии Delphi технология MIDAS поддерживает удаленные модули данных;
- изменения в CORBA. CORBA теперь может работать с VisiBroker для C++ ORB версии 3.32. Существенно уменьшено количество сообщений между клиентом CORBA и сервером;
- новые возможности отладки программ. Встроенный отладчик имеет новые характеристики, включая способность устанавливать отладку параметров для специфических процессов;
- расширения VCL (Visual Component Library). VCL теперь содержит несколько новых объектов, свойств и событий, в том числе новые компоненты для работы с Web и связью;
- фреймы (Frames). Это специальный тип форм, которые могут размещаться в пределах других форм или фреймов;
- возможность настройки рабочего стола и сохранение нескольких вариантов настроек;
- список To-Do. Содержит список задач, которые необходимо выполнить для завершения проекта;
- категории свойств в инспекторе объектов. Инспектор объектов позволяет фильтровать свойства и события по категориям;
- изображения на выпадающих списках инспектора объектов. В инспектор объектов добавлена возможность просмотра в выпадающих списках небольших рисунков, таких как изображения курсоров;
- новые возможности менеджера проектов (Project Manager). Менеджер проектов упрощает управление проектами. Теперь можно свободно оперировать файлами различных проектов, перегруппировывать их, добавлять любой файл к проекту. Файлы ресурсов, которые добавляются к проекту, компилируются в файлы с расширением RES и присоединяются к проекту;
- расширение возможностей ActiveX. Импортируемые серверы СОМ могут быть использованы как компоненты для визуальной разработки;
- новые мастера (Wizards). Два новых мастера помогают создавать приложения для Панели управления Windows и консольных приложений;
- улучшения редактирования. Предпочтения по редактированию теперь централизованы и вызываются отдельной командой Tools/Editor Options (Средства/Настройки редактора);
- новое окно просмотра проекта
- сохранение файлов форм в виде текста. Файлы форм (DFM) теперь по умолчанию сохраняются в виде текста, а не в двоичном виде, как раньше. Имеется возможность сохранения форм и в бинарном файле;
- новые возможности автоматического создания форм. В прежних версиях Delphi, при создании новых форм, они все, за редким исключением, помещались в список автоматически создаваемых форм (Autocreated Forms). В новой версии Delphi разработчик может самостоятельно выбрать, помещать ли вновь создаваемые формы в этот список, либо в список доступных форм (Available Forms), в данном случае в список автоматически создаваемых форм поместится только главная форма проекта;
- параметры в командной строке IDE. В новой версии Delphi можно запускать IDE из командной строки с использованием нескольких новых параметров, особенно полезных для отладки. Например, параметры, позволяющие отображать, сколько оперативной памяти занято в настоящий момент, выводить все сообщения в log-файл и др.;
- международные инструментальные средства. Новый блок инструментальных средств, называемый встроенной средой перевода (Integrated Translation Environment), предназначен для упрощения программной локализацией и одновременной разработки разноязычных версий;
- компоненты NetMaster. Компоненты NetMaster размещаются на отдельной вкладке палитры компонентов, которая называется FastNet.
Все вышеперечисленное вошло в версию Delphi Enterprise, в других версиях какие-то из описанных нововведений могут отсутствовать. Рассмотрим некоторые из перечисленных нововведений более подробно.
Новый редактор модулей данных (Data Module Designer) представляет собой одно из средств визуализации разработки приложений. Модуль данных выглядит как полноценное представление модели данных, используемой в разрабатываемом приложении (рис. 1.1). Редактор модулей данных можно открыть с помощью команды главного меню File/New/Data Module (Файл/Новый/Модуль данных).
Если посмотреть на страницу диаграммы данных (Data Diagram), то можно увидеть диаграмму, внешне напоминающую диаграмму "сущность-связь", которая обычно изображается при проектировании данных с помощью CASE-средств. Редактор модулей данных предоставляет разработчику простое визуальное средство проектирования баз данных. В частности, при соединении изображений компонентов-наследников TDataSet с помощью мыши будут автоматически добавлены новые необходимые компоненты (например, TDataSource), будут установлены значения свойств для обеспечения этой связи. Тип устанавливаемой связи можно указать, нажав соответствующую кнопку на вертикально расположенной панели инструментов, находящейся слева от диаграммы. Кроме компонентов TDataset, на странице диаграммы данных могут быть отображены и другие компоненты, с которыми можно работать таким же образом.
Начиная с пятой версии, Delphi поддерживает так называемый список То-Do - список действий, которые необходимо выполнить для завершения текущего проекта.


Рис. 1.1. Редактор модулей данных
Задания списка To-Do могут относиться не только целиком к проекту, но и к отдельному модулю. Список действий можно получить, выбрав в главном меню Delphi команду View/To-Do List (Просмотр/Список действий). В появившемся окне (рис. 1.2) можно добавлять задания в список, отмечать выполненные, редактировать их и менять приоритет выполнения заданий.


Рис. 1.2. Список То-Do
Добавление задания в список можно осуществить с помощью контекстного меню, либо с помощью комбинации клавиш <Ctrl>+<Shift>+<T>. При этом появляется окно создания нового задания (рис. 1.3).
Задания, внесенные в список To-Do для отдельного модуля, хранятся в качестве комментариев в исходном тексте модуля:
{ TODO 1 : Изменить название кнопке ОК }


Рис. 1.3. Создание нового задания
Задания для всего проекта хранятся в файле с расширением TODO. В списке To-Do задания для отдельного модуля и всего проекта отображаются разными значками. Если модуль, к которому относится задание в списке, не загружен в редактор кода, то данное задание будет выделено серым цветом. Каждое задание может иметь приоритет, имя исполнителя, категорию, текст задания и отметку о выполнении:
{ DONE 1 : Изменить название кнопке ОК }
По всем из вышеперечисленных параметров список To-Do может быть отсортирован.
Новая версия Delphi позволяет создавать многоязыковые приложения. Причем позволяет это делать параллельно. Например, когда создается одновременно русская и английская версия приложения. Рассмотрим, как, используя новые средства Delphi, под общим названием встроенная среды перевода (Integrated Translation Environment), можно создать одновременно русскую и английскую версию приложения. Для этого создадим новый проект, который состоит из одной формы, на которой расположим две кнопки. Затем в главном меню Delphi выберем команду Project/Languages/Add (Проект/Языки/Добавить), после чего запустится мастер (рис. 1.4), выдающий последовательность диалоговых окон, в которых нужно выбрать поддерживаемые приложением языки, в нашем случае - это русский и английский (США).
После выполнения всего вышеописанного, будет автоматически запущен менеджер перевода (Translation Manager) (рис. 1.5).
Менеджер перевода представляет собой редактор строковых ресурсов, которые могут присутствовать в форме. В менеджере перевода имеются сведения о тех свойствах элементов интерфейса, которые могут отличаться в разноязычных версиях. В число этих свойств входят не только такие, как caption или text, но и другие визуальные характеристики. Изменим для каждой версии названия кнопок (Buttoni. Caption и Button2. Caption): в английской версии на "Yes" и "No" и "Да", "Нет" для русской версии. Сменим в русской версии название формы (Formi. caption) на "Приложение". Теперь дадим через главное меню Delphi команду Project/Language/Set Active (Проект/Язык/ Сделать активным) и выберем русский или английский язык. Откомпилируем проект, и мы получим нужную языковую версию (рис. 1.6).


Рис. 1.4. Мастер создания многоязычных приложений Add Languages


Рис. 1.5. Окно Translation Manager


Рис. 1.6. Версии разноязычных приложений
В библиотеку визуальных компонентов (VCL) Delphi также были внесены значительные изменения. Среди них:
- компонент TApplicationEvents. В ранних версиях Delphi для создания обработчика событий объекта TAppiication необходимо было сначала создать процедуру, а затем присвоить имя этой процедуры обработчику события TAppiication. В пятой версии Delphi появился новый невизуальный компонент. Можно поместить его на форму приложения и в окне инспектора объектов (описание инспектора объектов см. далее в этой главе) станет возможным обрабатывать все события TAppiication, причем работать привычным образом, так же, как и с другими компонентами Delphi;
- класс TAppietAppiication. Специально для создания приложений для панели управления Windows, имеющих расширение CPL, в Delphi 5 был введен новый класс TAppietAppiication. Приложение подобного типа может иметь в своем составе несколько модулей - потомков класса TAppletModuie, каждый из которых будет отображен в панели управления Windows. Для создания такого приложения необходимо выбрать пункт главного меню Delphi File/New/Control Panel Application (Module) (Файл/Новый/Приложение панели управления);
- новые события компонентов TTooiBar и TListview. Для этих компонентов был добавлен ряд событий (onAdvancedCustomDrawItem, OnAdvancedCustomDraw,
и др.). Обработчики этих событий имеют дополнительный параметр, указывающий, на какой стадии перерисовки изображения наступает данное событие;
- введены новые классы контейнерного типа. Это классы-потомки класса TList: TObjectList, TComponentList и TciassList. Данные классы предна-значены для хранения ссылок на объекты, компоненты и классы соответственно. Также в Delphi 5 введены новые классы TObjectQuery и TObjectstack, которые предназначены для хранения ссылок на объекты в виде очередей и стеков.
Одним из очень полезных нововведений в Delphi 5 стали фреймы (frames). Фреймы - это визуальные контейнеры, которые можно создавать, размещать на них различные компоненты (так же, как и на формах) и, в дальнейшем, использовать их в формах. Создать новый фрейм можно с помощью пункта главного меню Delphi File/New Frame (Файл/Новый фрейм). После того как все необходимые фреймы будут созданы, их можно размещать на формах вашего приложения с помощью компонента Frames в стандартной палитре компонентов. Важным фактором является то, что при размещении фрейма на форме Delphi создает наследника класса выбранного фрейма. То есть, при изменении свойств компонентов в исходном фрейме эти изменения автоматически происходят в фреймах-наследниках. При желании, можно зарегистрировать часто используемый фрейм в палитре компонентов.
Для этого достаточно выполнить стандартную процедуру регистрации компонента.
Среда программирования Delphi изначально была ориентирована на работу с базами данных. Поэтому от версии к версии происходили улучшения старых и создание новых механизмов работы с базами данных. В Delphi 5 расширился набор компонентов для работы с базами данных. В палитре компонентов появилась новая вкладка InterBase Express. На ней расположены компоненты, предназначенные для доступа к серверу баз данных IB Database версии 5.5 или выше. При этом все компоненты данной вкладки используют его клиентский API, что полностью избавляет от необходимости использовать BDE.
Еще одно новое средство для работы с базами данных - это ADO (ActiveX Data Objects). Компонентам ADO выделена одноименная вкладка палитры компонентов. ADO - представляют собой СОМ-серверы, использующие OLE DB для работы с данными. СОМ-серверы входят в состав многих продуктов фирмы Microsoft. ADO-компоненты для своей работы также не требуют наличия BDE. В Delphi 5, в связи с поддержкой ADO, введены новые классы-потомки TFields, разработанные для поддержки типов данных, которые характерны для ADO.
Естественно, не обошлось без изменений компонентов, поддерживающих BDE. Начиная с пятой версии Delphi, у компонента TDatabase появился новый метод Execute, который позволяет выполнять SQL-запросы без использования специального компонента TQuery.
Ну и, конечно, не осталась без внимания разработчиков Delphi такая технология, как COM. Delphi 5, при импорте библиотек типов в приложениях, позволяет установить СОМ-серверы в палитру компонентов. Полученные в результате компоненты являются наследниками класса TOLEServer и обладают событиями, которые имеются у данного объекта. Это позволяет создавать обработчики событий СОМ-серверов с помощью инспектора объектов. Свойства СОМ-серверов доступны только на этапе выполнения приложения, поэтому в инспекторе объектов они не отображаются. Поддержку СОМ-серверов мы подробно рассмотрим в главе 3.

Содержание раздела