Delphi 2005. Для профессионалов


Кэнту М.

- СПб: "Питер", 2006 г, 416 стр.

Последний релиз Borland Delphi подвергся значительным изменениям и вобрал в себя множество новых возможностей. Delphi 2005 позволяет создавать как традиционные Win32-приложения, так и программы для платформы .NET. Эта книга поможет вам идти в ногу со временем, независимо от уровня владения программной средой. Автор книги, признанный во всем мире экперт по Delphi, рассказывает о том, как наилучшим образом использовать преимущества новой программной среды: ее простой язык, быстрые методы разработки, переносимость кода и дополнительный инструментарий, созданный сторонними фирмами. Книга будет одинаково полезна как начинающим программистам, впервые сталкивающимся с Delphi, так и профессионалам, в совершенстве владеющим предыдущими версиями борландовского продукта.

Краткое содержание

Введение

Девять версий

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

Бесплатный исходный код в Сети

Глава 1. Знакомство с Borland Developer Studio 3.0

Обзор IDE

Среда разработки для .NET и ALM

Запуск Delphi 2005

Структура IDE

Конфигурация рабочего стола

Меню

Список задач

Результаты расширенного поиска

Редактор Delphi

Свертка кода в Delphi 2005

Кодировка файлов с исходным кодом

Фрагменты кода

Code Insight

Другие новые возможности редактора

Визуальные конструкторы

Object Inspector

Окно структуры для конструкторов

Копирование и вставка компонентов

Управление проектами

Файлы проектов

Мастер обновления проектов Delphi 2005

Файлы групп проектов

Параметры проекта

Файлы с исходным кодом

Что далее?

Глава 2. Платформы: Win32 и Microsoft .NET

Win32 API

Библиотеки классов

COM приходит на помощь

Что такое Microsoft .NET?

⌠Маркетинговые■ цели .NET

Почему .NET?

VES

CIL

CLS

CLR

Цикл компиляции .NET и модель JIT

Модель управляемого выполнения и уборка мусора

CTS

CTS: структурные типы

CTS: ссылочные типы

Пространства имен и сборки

Что такое сборка?

Привязка и загрузка сборок

Контроль версий сборок и GAC

Динамическая загрузка сборок

Что далее?

Глава 3. Язык программирования Delphi

Основные возможности языка

Классы и объекты

Дополнительно о методах

Динамическое создание компонентов

Инкапсуляция

Private, Protected и Public

Полноценная приватность

Свойства как элемент инкапсуляции

Инкапсуляция и формы

Конструкторы

Деструкторы и метод Free

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

Присваивание объектов

Объекты и память

Наследование от существующих типов

Защищенные поля и инкапсуляция

Наследование и совместимость типов

Позднее связывание и полиморфизм

Переопределение методов

Виртуальные и динамические методы

Абстрактные методы

Закрепленные классы и финальные методы

Вложенные типы и вложенные константы

Безопасное понижающее преобразование

Использование интерфейсов

Обработка исключений

Последовательность обработки исключений и блок finally

Классы исключений

Регистрация ошибок

Исключения и конструкторы

Ссылки на классы

Создание компонентов с использованием ссылок на классы

Цикл for..in

Подстановка кода

Что далее?

Глава 4. Язык Delphi для .NET

Язык Delphi для Microsoft .NET

Традиционные модули

Глобальные имена и фиктивные классы модулей

Модули как пространства имен

Инициализация модулей и конструкторы классов

Идентификаторы

Уточнение идентификаторов

Поддержка Юникода в идентификаторах

Основные типы данных

Примитивные типы

Упаковка примитивных типов

Множества и перечисляемые типы Delphi

Новый облик записей

Записи или классы?

Новые стандартные записи в Delphi

Ссылочные типы

Строки

Небезопасные типы

Записи с переменными типами

Нетипизованные параметры

Выделение памяти функцией New

Тип PChar

Безопасные преобразования типов

Новые возможности классов

Спецификаторы доступа

Трюк с обходом protected по-прежнему работает!

Данные классов и статические методы

Конструкторы классов

Абстрактные классы

Помощники

Свойства

Применение конструкторов к экземплярам

Вызов унаследованных конструкторов

Освобождение памяти и уничтожение объектов при уборке мусора

Ссылки на классы и метаклассы

Поддержка ⌠чистых■ интерфейсов

Новые возможности операторов

Атрибуты

Объявление пользовательских атрибутов

Рефлексия и чтение атрибутов

Групповые события

Что далее?

Глава 5. Библиотека времени выполнения Delphi Win32

Модули RTL

Модуль System в Win32

Модули SysUtils и SysConst

Модуль Math

Модули ConvUtils и StdConvs

Модуль DateUtils

Модуль StrUtils

Новый модуль WideStrUtils

Модуль Types

Модули Variants и VarUtils

Модули DelphiMM и ShareMem

Работа с файлами средствами SysUtils

Класс TObject

Вывод информации о классе

Класс TPersistent

Ключевое слово published

Обращение к свойствам по имени

Списки и контейнерные классы

Списки

Контейнерные классы

Контейнеры и списки, безопасные по отношению к типам

Потоки данных

Класс TStream

Конкретные потоковые классы

Использование файловых потоков

Классы TReader и TWriter

Потоки данных и устойчивость

Сжатие потоков

Что далее?

Глава 6. Архитектура VCL

Класс TComponent

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

Свойство Name

Удаление полей форм

Скрытие полей форм

Передача произвольных данных в свойстве Tag (в Win32 и .NET)

Класс TComponent в VCL для .NET

События

События в Delphi

Указатели на методы

События как свойства

Традиционное строение VCL

TControl и производные классы

TControl и производные классы в .NET

Свойство Parent и элементы

Свойства, относящиеся к позиции и размеру элемента

Свойства активации и видимости компонентов

Шрифты

Цвета

Класс TWinControl

Основные компоненты

Компоненты ввода текста

Выбор вариантов

Списки

Диапазоны

Команды

Приемы работы с элементами

Фокус ввода

Привязка элементов

Компонент Splitter

Использование подсказок

Прорисовка элементов владельцем и стили

Элементы ListView и TreeView

Графический список ссылок

Иерархическое представление данных

Настройка узлов дерева

Что далее?

Глава 7. Работа с формами

Класс TForm

Простые формы

Стиль формы

Стиль границы

Установка дополнительных стилей окон

Прямой ввод на формах

Ввод с клавиатуры

Ввод с мыши

Рисование мышью

Позиция, размер, прокрутка и масштабирование

Позиция формы

Пристыковка к краям экрана

Размер формы и клиентская область

Ограничения размеров

Прокрутка формы

Создание и закрытие форм

События при создании формы

Закрытие формы

Диалоговые окна и другие вторичные формы

Добавление в программу второй формы

Создание вторичных форм во время выполнения

Создание диалогового окна

Диалоговое окно из примера RefList

Немодальное диалоговое окно

Стандартные диалоговые окна Windows

Объект Application

Активация приложений и форм

Активация мышью в Delphi 2005

Отслеживание форм при помощи объекта Screen

Создание приложений MDI

Рамочные и дочерние окна в Delphi

Пример MdiDemo

Визуальное наследование форм

Наследование от базовой формы

Полиморфные формы

Фреймы

Фреймы и страницы

Множественные фреймы без страниц

Базовые формы и интерфейсы

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

Интерфейсы

Что далее?

Глава 8. Построение пользовательского интерфейса в VCL (для Win32 и .NET)

Многостраничные формы

Компоненты PageControl и TabSheet

Программа просмотра изображений с нестандартной
прорисовкой корешков

Пользовательский интерфейс мастера

Панели инструментов

Пример RichBar

Меню и поле со списком на панели инструментов

Простая строка состояния

Темы Windows XP

Архитектура ActionList

Предопределенные действия

Практическое применение действий

Панель инструментов и компонент ActionList редактора

Контейнеры панелей инструментов

Меню в контейнере ControlBar

Поддержка стыковки в Delphi

Стыковка панелей инструментов в контейнерах ControlBar

Стыковка с компонентом PageControl

Новые компоненты стыковки в Delphi 2005

Архитектура ActionManager

Простая демонстрационная программа

Вывод сокращенных меню

Адаптация существующих программ

Действия со списками

Что далее?

Глава 9. Библиотека времени выполнения .NET и FCL

Библиотека времени выполнения Delphi для .NET

Модуль System в Delphi для .NET

Borland.Delphi.DLL

Borland.VclRtl

Классы Borland.VclRtl

BCL

Класс System.Object

Класс StringBuilder

Регулярные выражения

Потоки данных в .NET

Класс Component

WinForms

Только код, без DFM-файлов

⌠Двойники■ и другие различия

Элементы WinForms

От GDI к GDI+

Класс Forms

Возможности VCL, отсутствующие в WinForms

Что далее?

Глава 10. Переработка и модульное тестирование

За пределами RAD

Гибкие методологии

Экстремальное программирование

Переработка кода

Модульное тестирование

Переработка кода в Delphi 2005

Новые объявления

Преобразование строк в ресурсы

Переименование

Извлечение методов

Поиск модулей

Поиск ссылок

Модульное тестирование в Delphi 2005

DUnit

NUnit

Что далее?

Глава 11. Библиотеки, пакеты и сборки

DLL в Win32

Что такое ⌠динамическая компоновка■?

Для чего нужны DLL?

Правила написания DLL в Delphi

Вызов функций существующих DLL

Построение Win32 DLL в Delphi

Экспорт строк из DLL

Вызов функции Delphi DLL

Изменение имен библиотек

Вызов функции DLL во время выполнения

Win32 DLL в памяти: код и данные

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

Пакеты Delphi

Пакеты времени выполнения

Написание и компиляция пакетов

Контроль версий пакетов

Динамические пакетные архитектуры

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

Загрузка пакетов на стадии выполнения

Использование интерфейсов в пакетах

Структура пакета

От пакетов к сборкам

Написание и использование управляемой DLL

Динамическая загрузка управляемых DLL

Загрузка локальная и сетевая

Динамическая архитектура на базе сборок

Анализ сборок

Что далее?

Глава 12. Взаимодействие COM и .NET

Краткая история COM и .NET

Реализация IUnknown

Глобально-уникальные идентификаторы

Роль фабрик классов

Первый сервер COM

Интерфейсы COM и объекты

Инициализация объекта COM

Тестирование сервера COM

Свойства интерфейсов

Автоматизация

Диспетчеризация

Написание сервера Автоматизации

Редактор Type Library Editor

Код сервера

Регистрация сервера Автоматизации

Написание клиента для сервера

Область видимости объектов Автоматизации

Сервер в компоненте

Типы данных COM

Взаимодействие с .NET

Использование COM в .NET

Что далее?

Глава 13. Архитектура баз данных Delphi

Работа с базами данных в Win32

Библиотека dbExpress

BDE

InterBase Express

MyBase и компонент ClientDataSet

dbGo для ADO

Пользовательские компоненты наборов данных

MyBase: автономный компонент ClientDataSet

Подключение к существующей локальной таблице

От MIDAS DLL к модулю MidasLib

Форматы XML и CDS

Определение новой локальной таблицы

Индексирование

Фильтрация

Поиск записей

Элементы управления, работающие с данными

Данные в компоненте DBGrid

DBNavigator и действия, связанные с наборами данных

Текстовые элементы для работы с данными

Списковые элементы для работы с данными

Подстановочные элементы

Графические элементы для работы с данными

Класс TDataSet

Состояние набора данных

Поля набора данных

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

Иерархия классов полей

Добавление вычисляемого поля

Подстановочные поля

Обработка неопределенных значений полей

Перемещение внутри набора данных

Суммирование столбцов таблиц

Использование закладок

Редактирование столбца таблицы

Настройка элемента DBGrid

Нестандартная прорисовка DBGrid

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

Перетаскивание в сетку

Стандартные элементы управления в приложениях баз данных

Имитация стандартного поведения Delphi

Пересылка запросов в базу данных

Группировка и агрегатные значения

Группировка

Определение агрегатных значений

Главные и подчиненные таблицы

Связи между главными и подчиненными таблицами
в компонентах ClientDataSet

Обработка ошибок в приложениях баз данных

Что далее?

Глава 14. Клиент-серверное программирование
и компоненты баз данных VCL

Архитектура ⌠клиент-сервер■

Элементы проектирования баз данных

Сущности и отношения

Правила нормализации

От первичных ключей к идентификаторам объектов OID

Дополнительные ограничения

Однонаправленные курсоры

Знакомство с InterBase

Использование IBConsole

InterBase: программирование на стороне сервера

Библиотека dbExpress

Работа с однонаправленными курсорами

Платформы и базы данных

Проблемы с версиями драйверов

Компоненты dbExpress

Компонент SQLConnection

Компоненты наборов данных dbExpress

Компонент SimpleDataSet

Компонент SQLMonitor

Примеры использования dbExpress

Использование одного компонента или нескольких компонентов

Внесение изменений в базу данных

Отслеживание подключения

Доступ к метаданным с использованием SetSchemaInfo

Параметризованные запросы

Печать отчетов

Пакеты и кэш

Операции с обновлениями

Обновление данных

Транзакции

Использование InterBase Express

Наборы данных IBX

Административные компоненты IBX

Пример ипользования IBX

Построение редактируемого запроса

Анализ работы InterBase Express

Получение дополнительной системной информации

Задачи из реального мира

Генераторы и идентификаторы

Поиск текста без учета регистра символов

Обработка информации об адресах и людях

Построение пользовательского интерфейса

Оплата учебных курсов

Диалоговое окно подстановки

Форма с редактируемым запросом SQL

Что далее?

Глава 15. Технология ADO

MDAC (Microsoft Data Access Components)

Провайдеры OLE DB

Использование компонентов dbGo

Практический пример

Компонент ADOConnection

Файлы связи с данными

Динамические свойства

Получение информации о схеме

Механизм Jet

Доступ к Paradox через Jet

Доступ к Excel через Jet

Доступ к текстовым файлам через Jet

Импорт и экспорт

Работа с курсорами

Расположение курсора (свойство CursorLocation)

Тип курсора (свойство CursorType)

Комбинации местоположений и типов курсоров

Отсутствие счетчика записей

Клиентские индексы

Клонирование

Обработка транзакций

Вложенные транзакции

Атрибуты компонента ADOConnection

Типы блокировки

Обновление данных

Пакетные обновления

Оптимистическая блокировка

Разрешение конфликтов, связанных с обновлением данных

Автономные наборы записей

Пулы подключений

Сохранение наборов записей

Модель Briefcase

Что далее?

Глава 16. ADO.NET

Архитектура ADO.NET

Работа в подключенном режиме

Обобщенный доступ к данным с использованием интерфейсов

Работа в автономном режиме

Использование компонента OleDbDataAdapter

Создание таблицы на стадии конструирования

Отсутствие данных на стадии конструирования

Компоненты содержания

Прямой доступ к данным наборов

Главные/подчиненные таблицы в классе DataSet

Поддержка XML в классе DataSet

Сортировка и фильтрация средствами класса DataView

Создание пользовательских классов DataSet

Управление кэшированными данными и обновлениями

Сравнение с ClientDataSet

BDP

Настройка BDP

Визуальная разработка в BDP

Другие возможности BDP

Работа со схемами в BDP

Использование ADO.NET в приложениях VCL

Что далее?

Глава 17. Многозвенные архитектуры

Технические основы DataSnap

Интерфейс IAppServer

Протокол подключения

Пакеты данных

Вспомогательные компоненты Delphi (на стороне клиента)

Вспомогательные компоненты Delphi (на стороне сервера)

Построение демонстрационного приложения

Первый сервер приложений

Первая версия тонкого клиента

Построение клиента для платформы .NET

Добавление серверных ограничений

Ограничения полей и наборов данных

Свойства полей

События полей и таблиц

Расширение функциональности на стороне клиента

Последовательность обновления

Обновление данных

Дополнительные возможности DataSnap

Параметризованные запросы

Вызов методов сервера

Отношения ⌠главные/подчиненные данные■

Брокер подключений

Другие параметры провайдера

Компонент SimpleObjectBroker

Пулы объектов

Настройка пакетов данных

Разработка многозвенных приложений в Microsoft .NET

Архитектура .NET Remoting

Практическое использование .NET Remoting

ADO.NET Remoting и компоненты Delphi

Практическое применение ADO.NET Remoting

Что далее?

Глава 18. ECO

Модель

Классы

Атрибуты

Операции

Ассоциации

Производные атрибуты: OCL

Производные атрибуты: код

Производные ассоциации

Классы ассоциаций

ECOSpace

Пользовательский интерфейс

Манипуляторы

ECO в программном коде

Создание объектов, часть 1

Получение ссылки на текущий выделенный объект

Создание объектов, часть 2

Выполнение OCL на программном уровне

Что далее?

Глава 19. Программирование для HTML и HTTP

Создание сокет-приложений

Основы программирования сокетов

Использование TCP-компонентов Indy

Работа с протоколом HTTP

Сохранение HTTP-содержания

WinInet API (Win32)

Класс WebClient в FCL (.NET)

Простой HTTP-сервер

Генерирование кода HTML

Компоненты Delphi для работы с HTML

Создание страниц HTML

Создание страниц данных

Построение таблиц HTML

Использование стилей

Динамические страницы на собственном сервере

Динамические веб-страницы

Обзор CGI

Использование динамических библиотек

Технология WebBroker среды Delphi

Отладка с использованием Web App Debugger

Построение многоцелевого веб-модуля

Динамическое построение отчетов

Запросы и формы

Работа с Apache

Работа с IIS

Практические примеры

Графический счетчик обращений

Работа с поисковой системой

Что далее?

Глава 20. WebSnap и IntraWeb

WebSnap

Управление страницами

Серверные сценарии

Адаптеры

Размещение файлов

Использование DataSetAdapter

Веб-интерфейс для DataSetAdapter

Сеансы, пользователи и разрешения

Использование сеансов

Запрос на вход в систему

IntraWeb

От веб-сайтов к веб-приложениям

Заглянем за кулисы

Исходный код IntraWeb-приложения

Построение IWSimpleApp на платформе Delphi для .NET

Архитектуры IntraWeb

Построение IntraWeb-приложений

Написание многостраничных приложений

Управление сеансами

Интеграция с WebBroker (и WebSnap)

Управление макетом страницы

Веб-приложения баз данных

Связь с подчиненными данными

Передача данных клиентской стороне

Диспетчер размещения в Delphi 2005

Что далее?

Глава 21. Архитектура ASP.NET

Основные концепции ASP.NET

ASP.NET и веб-серверы

Пустая страница в Delphi

Технология сценариев

Модель Code behind

Управление состоянием

Построение страниц ASP.NET

Класс Control

HTML-элементы

WebControls

Класс Page

Проверка содержимого элементов

Работа с данными в ASP.NET

Работа с базами данных

Компоненты DBWeb

Построение приложений ASP.NET

Передача данных между страницами

Управление сеансами

Аутентификация с применением форм

Кэширование в ASP.NET

Размещение приложений ASP.NET

Что далее?

Глава 22. Технологии XML

Знакомство с XML

Основной синтаксис XML

Хорошо сформированный XML

Работа с XML

Обработка XML-документов в Delphi

Программирование с использованием DOM

Документ XML в элементе TreeView

Использование компонента XMLDocument в .NET

Создание документов с использованием DOM

Интерфейсы привязки данных

Низкоуровневая поддержка XML DOM в .NET

Разбор XML-кода

Использование SAX API

Разбор XML-кода в .NET

Использование XSLT

Использование XPath

Практическое использование XSLT

Обработка XSLT с использованием WebSnap

Прямые преобразования XSL с использованием DOM

XSLT в ASP.NET

Преобразования XML-кода

Обработка больших документов XML

Из ClientDataSet в XML-документ

Из XML-документа в ClientDataSet

Что далее?

Глава 23. Веб-службы и SOAP

Технологии веб-служб

Поддержка SOAP в Delphi для Win32

Клиент SOAP: биржевые котировки

Построение веб-служб в Delphi для Win32

Отладка заголовков SOAP

Доступ к существующему классу как к веб-службе

Веб-службы в .NET

Клиент веб-службы в .NET

Построение сервера .NET

Работа с базами данных через SOAP

Передача XML-документов

Клиентская программа

DataSnap через SOAP

Построение сервера DataSnap SOAP

Построение клиента DataSnap SOAP

Сравнение SOAP с другими подключениями DataSnap

Обработка вложений

Что далее?

Приложение. Дополнительный инструментарий Delphi

новостикнигигде нас найтисотрудничествонаши анонсы