Delphi 7 для профессионалов


         

Delphi 7 для профессионалов

Несколько лет назад книгу по Delphi 2 или 3 надо было начинать с азов объектно-ориентированного программирования (ООП). Многие только переходили к Delphi из DOS, многие использовали Borland Pascal for Windows и работали с Windows API напрямую. Объекты еще были в диковинку, и полное разъяснение новых принципов было просто обязательно.
Но и сейчас писать об этом вполне актуально. Конечно, выросло поколение программистов, которые "с молоком матери" впитали новые понятия. Но от понимания объектов до их грамотного использования — дистанция огромного размера. Для создания более или менее сложных приложений нужны навыки объектно-ориентированного дизайна, а для приложений в свою очередь — четкое знание возможностей вашей среды программирования. Поэтому в данной главе мы постараемся акцентировать внимание читателя на применение ООП в среде Delphi 7.
По сравнению с традиционными способами программирования ООП обладает рядом преимуществ. Главное из них заключается в том, что эта концепция в наибольшей степени соответствует внутренней логике функционирования операционной системы (ОС) Windows. Программа, состоящая из отдельных объектов, отлично приспособлена к реагированию на события, происходящие в ОС. К другим преимуществам ООП можно отнести большую надежность кода и возможность повторного использования отработанных объектов.

Объектно-ориентированное программирование
Несколько лет назад книгу по Delphi 2 или 3 надо было начинать с азов объектно-ориентированного программирования (ООП). Многие только переходили к Delphi из DOS, многие использовали Borland Pascal for Windows и работали с Windows API напрямую. Объекты еще были в диковинку, и полное разъяснение новых принципов было просто обязательно.

Области видимости
Области видимости - 2
Области видимости - 3
Области видимости - 4
Объект изнутри
Объект изнутри - 2
Объект изнутри - 3
Резюме
Объект и класс
Объект и класс - 2

Библиотека визуальных компонентов VCL и ее базовые классы
Все классы библиотеки визуальных компонентов произошли от группы базовых классов, которые лежат в основе иерархии VCL. Самый общий предок компонентов — это класс TObject, инкапсулирующий простейший объект. Как известно (см. гл. 1), каждый объект наследует свойства и методы родительского класса. К объекту можно добавить новые свойства и методы, но нельзя удалить унаследованные. Объект-наследник в свою очередь может стать родительским для нового класса, который унаследует возможности всех своих предков.

Класс TWinControl
Класс TWinControl - 2
Класс TCustomControl
Класс TGraphicControl
Резюме
Иерархия базовых классов
Иерархия базовых классов - 2
Класс TObject
Класс TObject - 2
Класс TObject - 3

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

Функция Assert
Резюме
Исключительная ситуация как класс
Исключительная ситуация как класс - 2
Исключительная ситуация как класс - 3
Исключительная ситуация как класс - 4
Защитные конструкции языка Object Pascal
Блок try..except
Блок try..except - 2
Блок try...finally

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

Кросс программирование для Linux
Кросс программирование для Linux - 2
Проект CLX
Проект CLX - 2
Объектная концепция кросс программирования
Библиотека компонентов CLX
Сходства визуальных компонентов CLX и VCL
Сходства визуальных компонентов CLX и VCL - 2
Особенности программирования для Linux
Приложения баз данных для Linux

Элементы управления Win32
Элементы управления составляют суть пользовательского интерфейса Windows. Всеми программами нужно управлять более или менее единообразно, поэтому в составе ОС имеется набор типовых кнопок, редактирующих элементов, списков выбора и т. п., которыми вы можете "украсить" свои разработки. Перечень этот постоянно пополняется. Во-первых, не дремлет фирма Microsoft. С новыми версиями ее продуктов (главным образом с MS Internet Explorer) поставляются новые элементы управления; содержатся они в библиотеке ComCtl32.dll. Во-вторых, на ниве их создания подвизаются многочисленные сторонние фирмы, оформляющие свои элементы управления в виде элементов ActiveX (файлов OCX). И. в-третьих, достаточное количество элементов написано прямо в Delphi — как в фирме Borland, так и независимыми разработчиками.

Элементы управления Win32
Панель состояния TStatusBar
Комбинированный список TComboBoxEx
Новый компонент из библиотеки ComCtl32
Новый компонент из библиотеки ComCtl32 - 2
Новый компонент из библиотеки ComCtl32 - 3
Новый компонент из библиотеки ComCtl32 - 4
Новый компонент из библиотеки ComCtl32 - 5
Новый компонент из библиотеки ComCtl32 - 6
Резюме

Элементы управления Windows XP
В Delphi 7 впервые появилась возможность настраивать пользовательский интерфейс приложений для использования в Windows XP. Для этого в состав ресурсов приложения должен включаться манифест Windows XP. Это дополнение призвано обеспечить корректное взаимодействие элементов управления приложения с системной библиотекой ComCtl32.dll версии 6, используемой в Windows XP. Собственно все особенности работы приложений под управлением Windows XP вызваны именно появлением новой версии этой библиотеки. Впрочем, об этом подробно рассказывается ниже.

Пользовательский интерфейс Windows XP
Манифест Windows XP
Компонент TXPManifest
Включение манифеста Win XP в приложение
Визуальные стили и темы оформления
Визуальные стили в Delphi
Визуальные стили в Delphi - 2
Theme API
Theme API - 2
Компоненты настройки цветовой палитры

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

Класс TCollectionltem
Резюме
Список строк
Класс TStrings
Класс TStringList
Класс TStringList - 2
Класс TStringList - 3
Класс TStringList - 4
Класс TStringList - 5
Класс TStringList - 6

Действия (Actions) и связанные с ними компоненты
С давних пор повелось, что стандарты на пользовательский интерфейс Windows-приложений Microsoft задает "явочным порядком". Первая громкая история на эту тему связана с появлением в 1994 г. Excel 2.0 for Windows, когда разработчики из Редмонда впервые применили интерфейс со многими документами (впоследствии широко известный как MDI) и даже не подумали задокументировать и опубликовать его. После справедливого возмущения широких кругов программистской общественности Microsoft исправился и теперь новые возможности интерфейса публикуются если не до выхода продукта, то, по крайней мере, ненамного позже. Вспомним, с Internet Explorer появилась панель CoolBar и кнопки, картинки, которые подсвечивались при прохождении над ними курсора мыши. Большинство же новинок связано с флагманским продуктом Microsoft — Office.

Категория File
Категория Dialog
Категория Window
Категория Tab
Категория List
Категория Internet
Категория Format
Категория Dataset
Категория Tools
Компонент TActionManager

Файлы и устройства ввода/вывода
Большинство приложений создаются для того, чтобы обрабатывать данные — это прописная истина. С развитием программных технологий мы имеем возможность получать и посылать все более крупные и сложные массивы данных; однако до сих пор 90% из них хранятся в файлах.

Класс TFileStream
Класс TMemoryStream
Класс TStringStream
Оповещение об изменениях в файловой системе
Использование отображаемых файлов
Использование отображаемых файлов - 2
Использование отображаемых файлов - 3
Резюме
Использование файловых переменных
Операции ввода/вывода

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

Класс Tlcon
Класс TBitmap
Класс TBitmap - 2
Класс TBitmap - 3
Класс TBitmap - 4
Класс TBitmap - 5
Графический формат JPEG. Класс TJPEGImage
Графический формат JPEG. Класс TJPEGImage - 2
Графический формат JPEG. Класс TJPEGImage - 3
Компонент TImage

Архитектура приложений баз данных
Приложение баз данных, как следует уже из его названия, предназначено для взаимодействия с некоторым источником данных — базой данных (БД). Взаимодействие подразумевает получение данных, их представление в определенном формате для просмотра пользователем, редактирование в соответствии с реализованными в программе бизнес- алгоритмами и возврат обработанных данных обратно в базу данных.

Архитектура приложений баз данных
Архитектура приложений баз данных - 2
Как работает приложение баз данных
Как работает приложение баз данных - 2
Модуль данных
Подключение набора данных
Подключение набора данных - 2
Настройка компонента TDataSource
Отображение данных
Отображение данных - 2

Набор данных
Любое приложение баз данных должно уметь выполнять как минимум две операции. Во-первых, иметь информацию о местонахождении базы данных, подключаться к ней и считывать имеющуюся в таблицах БД информацию. Эта функция в значительной степени зависит от реализации конкретной технологии доступа к данным.

Описание индекса
Использование описаний индексов
Параметры запросов и хранимых процедур
Параметры запросов и хранимых процедур - 2
Класс TParams
Класс TParam
Состояния набора данных
Состояния набора данных - 2
Резюме
Абстрактный набор данных

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

Объектные поля
Типы данных
Типы данных - 2
Ограничения
Ограничения - 2
Ограничения - 3
Резюме
Объекты полей
Статические и динамические поля
Статические и динамические поля - 2

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

Быстрый переход к помеченным записям
Быстрый переход к помеченным записям - 2
Диапазоны
Резюме
Связанные таблицы
Отношение "один- ко- многим"
Отношение "один- ко- многим" - 2
Отношение "многие- ко- многим"
Поиск данных
Поиск по индексам

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

Компонент TDBRadioGroup
Компонент TDBListBox
Компонент TDBComboBox
Компонент TDBMemo
Компонент TDBImage
Компонент TDBRichEdit
Синхронный просмотр данных
Механизм синхронного просмотра
Механизм синхронного просмотра - 2
Компонент TDBLookupListBox

Процессор баз данных Borland Database Engine
Любое приложение баз данных имеет в своем составе или использует сторонний механизм доступа к данным, который берет на себя подавляющее большинство стандартных низкоуровневых операций работы с базами данных. Например, любое такое приложение при открытии таблицы БД должно выполнить примерно одинаковый набор операций.

Компонент TQuery
Компонент TStoredProc
Резюме
Архитектура и функции BDE
Архитектура и функции BDE - 2
Архитектура и функции BDE - 3
Псевдонимы баз данных и настройка ВDЕ
Псевдонимы баз данных и настройка ВDЕ - 2
Псевдонимы баз данных и настройка ВDЕ - 3
Псевдонимы баз данных и настройка ВDЕ - 4

Технология dbExpress
Одной из проблем различных технологий доступа к данным, используемым в приложениях Delphi, является трудность распространения готовых приложений. Для BDE требуется отдельная установка, которая занимает порядка 15 Мбайт дискового пространства, а также специальная настройка псевдонимов (см. гл. 16). ADO предустановлена в операционной системе, но нуждается в настраиваемых провайдерах данных (см. гл. 19). При необходимости обновить версию ADO, дистрибутив вашего приложения "потяжелеет" более чем на 2 Мбайт.

Технология dbExpress
Технология dbExpress - 2
Компонент TSQLQuery
Компонент TSQLStoredProc
Компонент TSimpleDataSet
Компонент TSimpleDataSet - 2
Способы редактирования данных
Способы редактирования данных - 2
Способы редактирования данных - 3
Интерфейсы dbExpress

Сервер баз данных InterBase и компоненты InterBase Express
С точки зрения разработчика, за исключением нескольких новых свойств, методика использования этих компонентов в приложениях БД не отличается от стандартной методики (см. часть III). Любой новый компонент, инкапсулирующий набор данных, совершенно обычным образом через компонент TDataSource можно подключить к любому стандартному компоненту отображения данных.

Компонент TIBStoredProc
Компонент TIBDataSet
Компонент TIBSQL
Обработка событий
Информация о состоянии базы данных
Компонент TiBDatabaseinfo
Компонент TIBSQLMonitor
Резюме
Механизм доступа к данным InterBase Express
Компонент TIBDatabase

Использование ADO средствами Delphi
Технология ADO завоевала популярность у разработчиков, благодаря универсальности — базовый' набор интерфейсов OLE DB имеется в каждой современной операционной системе Microsoft. Поэтому для обеспечения доступа приложения к данным достаточно лишь правильно указать провайдер соединения ADO и затем переносить программу на любой компьютер, где имеется требуемая база данных и, конечно, установленная ADO.

Реализация ADO в Delphi
Компоненты ADO
Механизм соединения с хранилищем данных ADO
Компонент TADOConnection
Настройка соединения
Настройка соединения - 2
Настройка соединения - 3
Управление соединением
Управление соединением - 2
Управление соединением - 3

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

Провайдеры данных
Провайдеры данных - 2
Провайдеры данных - 3
Компоненты — брокеры соединений
Компонент TSimpleObjectBroker
Компонент TLocalConnection
Компонент TSharedConnection
Компонент TConnectionBroker
Резюме
Структура многозвенного приложения в Delphi

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

Главный удаленный модуль данных
Дочерний удаленный модуль данных
Регистрация сервера приложения
Резюме
Структура сервера приложения
Интерфейс IAppServer
Интерфейс IAppServer - 2
Интерфейс IProviderSupport
Удаленные модули данных
Удаленный модуль для сервера Автоматизации

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

Работа с данными типа BLOB
Представление данных в формате XML
Агрегаты
Объекты-агрегаты
Агрегатные поля
Группировка и использование индексов
Вложенные наборы данных
Свойства полей клиентского набора данных
Обработка ошибок
Обработка ошибок - 2

Компоненты Rave Reports и отчеты в приложении Delphi
Компоненты QReport по-прежнему доступны разработчику — пакет DCLQRT70.BPL все так же занимает прочное место в папке \Delphi7\Bin и может быть установлен в Палитру компонентов обычным способом. Да и было бы странно ожидать другого от фирмы Borland, которая бдительно следит за обратной совместимостью приложений. Посмотрите к примеру на страницу Win 3.1 Палитры компонентов — новые поколения программистов никогда не видели "прабабушку" Windows XP, и все же исторические компоненты занимают свое исконное место!

Компоненты Rave Reports и отчеты в Delphi
Генератор отчетов Rave Reports 5.0
Компоненты Rave Reports и их назначение
Отчет в приложении Delphi
Компонент отчета TRvProject
Компонент отчета TRvProject - 2
Компонент управления отчетом TRvSystem
Резюме

Визуальная среда создания отчетов
Визуальная среда создания отчетов входит в состав генератора отчетов Rave Reports 5.0. В отличие от генератора отчетов Quick Report, который поставлялся с Delphi 6 и более ранними версиями, визуальная среда в Rave Reports значительно облегчает самый трудоемкий этап в процессе создания отчета и его включения в состав приложения — постраничную разработку шаблона отчета.

Штрихкоды
Обработка событий
Внешние источники данных в отчете
Соединение с источником данных и просмотры
Безопасность доступа к данным
Отображение данных в отчетах
Структурные элементы отчета
Структурные элементы отчета - 2
Элементы отображения данных
Резюме

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

Компонент TRvNDRWriter
Компонент TRvNDRWriter - 2
Преобразование форматов данных
Резюме
Этапы создания отчета в приложении
Простой отчет в визуальной среде Rave Reports
Нумерация страниц отчета
Использование элемента FontMaster
Добавление страниц к отчету
Отчет в приложении

Отчеты для приложений баз данных
Генератор отчетов Rave Reports позволяет создавать отчеты, отображающие данные из различных источников данных. Для этого используются средства визуальной среды и компоненты со страницы Rave Палитры компонентов Delphi.

Аутентификация пользователя в отчете
Типы отчетов
Простой табличный отчет
26.5.
Отчет "один-ко-многим"
Отчет "один-ко-многим" - 2
Группирующий отчет
Использование вычисляемых значений
Вычисляемые значения по одному источнику
Значения по нескольким источникам

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

Интерфейс переноса Drag-and-Drop
Интерфейс переноса Drag-and-Drop - 2
Интерфейс переноса Drag-and-Drop - 3
Интерфейс переноса Drag-and-Drop - 4
Интерфейс присоединения Drag-and-Dock
Интерфейс присоединения Drag-and-Dock - 2
Интерфейс присоединения Drag-and-Dock - 3
Интерфейс присоединения Drag-and-Dock - 4
Усовершенствованное масштабирование
Управление фокусом

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

Инициализация и завершение работы DLL
Инициализация и завершение работы DLL - 2
Инициализация и завершение работы DLL - 3
Вызов DLL
Неявный вызов
Явный вызов
Явный вызов - 2
Ресурсы в DLL
Ресурсы в DLL - 2
Ресурсы в DLL - 3

Потоки и процессы
Работая с Delphi, нужно иметь в виду: этот замечательный продукт не только упрощает разработку сложных приложений, он использует при этом все возможности операционной системы. Одна из возможностей, которую поддерживает Delphi, — это так называемые потоки (threads) или нити.

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

Многомерное представление данных
Помимо стандартных компонентов отображения данных в VCL Delphi имеются дополнительные компоненты, которые позволяют представлять данные в виде кросстаба. При этом заставить работать кросстаб с двумя и более полями почти так же просто, как и обычный компонент TDBGrid. Эти компоненты расположены на странице Decision Cube Палитры компонентов.

Компонент TDecisionGraph
Управление данными
Пример многомерного представления данных
Резюме
Понятие кросстаба
Взаимосвязь компонентов представления данных
Подготовка набора данных
Подготовка набора данных - 2
Подготовка набора данных - 3
Компонент TDecisionQuery

Использование возможностей Shell API
Разобравшись с механизмами СОМ, вам наверняка захочется "испытать радость общения" с объектами, имеющимися в составе ОС. Microsoft уверенно идет к тому, чтобы все составные части своих операционных систем, как и прочих продуктов, превратить в СОМ-объекты. В этом направлении сделаны большие шаги, и оболочка Windows, и ее файловая система предоставляют интерфейсы СОМ. В Windows 2000, судя по заверениям представителей фирмы, все новые возможности представлены и доступны в виде интерфейсов.

Понятие пространства имен
Размещение значка приложения на System Tray
Размещение значка приложения на System Tray - 2
Размещение значка приложения на System Tray - 3
Размещение значка приложения на System Tray - 4
Интерфейс IShellLink
Интерфейс IShellLink - 2
Интерфейс IShellLink - 3
Интерфейс IShellFolder
Интерфейс IShellFolder - 2

Психология и технический анализ - перейти
Тайм менеджмент - перейти
Время личности и время жизни - перейти
Можно ли научиться планировать время - перейти
Искусство успевать - перейти
10 способов сократить количество бумаг - перейти
Пригодность к бизнесу - перейти
Психоанализ –прошлое, настоящее, будущее - перейти
Вычисление сумм последовательностей - перейти
Анализ функций и полиномов - перейти
Основные операции с выражениями - перейти
Типовые средства построения графиков - перейти
Общая характеристика пакета plots - перейти
Основные средства решения диф. уравнений - перейти
Кибернетический подход к эволюции - перейти