Часть I. Приступаем к работе
Глава 1. Введение в C++Builder
Для кого предназначена эта книга
Структура книги
Новые средства отладки
Понятие о VCL
Почему именно VCL
Предварительные замечания
Глава 2. События
Модель делегирования C++Builder
Использование модели делегирования
Понятие о событиях
Получение информации о событии
Программа EVENTS2: более подробно о событиях
Программа MENUDEF: меню. WM_COMMAND и WndProc
Глава 3. Исключения
Понятие об исключениях
Теория исключений
Классы исключений
Базовый синтаксис исключений
Возбуждение исключений
Формирование и возбуждение собственных исключений
Повторное возбуждение исключения
Исключения и деструкторы
Потоки, исключения и освобождение памяти
Замена процедуры обработки исключений по умолчанию
Применение ресурсов для поиска строк с сообщениями об ошибках
Глава 4. Классы C++ и модель визуальных компонентов
Множественное наследование
Разработка библиотеки без применения множественного наследования
Обработка исключений
Получение информации о типе выполнения программы
Виртуальные функции
Интерфейсы и реализации
Статическое размещение
Конструирование объекта

Часть II. Реляционные базы данных
Глава 5. Создание базы данных
Инструментарий баз данных
Основы создания базы данных
Система именования
Программы, написанные на SQL: применение объекта TQuery
Применение TDataModule
Хранилище объектов Object Repository
Database Explorer
Работа с SQL Monitor
Начальные понятия о BDE и псевдонимах
Псевдонимы
Замечания по установке TCP/IP
Подключение к ODBC
Компонент TBatchMove
Глава 6. Использование объектов ТТаblе и TDataSet
Визуальные и невизуальные элементы управления баз данных
Анализ модернизированного класса TDataSet
Базовые методы объекта TDataSet
Поля
Редактирование данных
Поиск записей
Интервалы
Фильтры
Закладки
Применение функции обновления
Дополнительные сведения о TDataSet и ТТаblе
Связанные указатели
Основы применения TDataSource
Проверка состояния набора данных
Определение состояния набора данных
Применение объекта TDatabase
Базы данных без визуального инструментария
Глава 7. SQL и объект TQuery
Свойство SQL
Объект TQuery и параметры
Свойство SQL и функция Format
Формирование отношения "один-ко-многим" с помощью объекта TQuery
Связь между несколькими таблицами
Свойство RequestLive
Параметрические запросы и операторы join
Операторы ExecSQL, Delete и Insert
Специфические свойства TQuery
Немного позабавимся с языком SQL
Глава 8. Работа с полями
Редактор полей (Fields Editor)
Поля просмотра
Операции с объектом TDBGrid в процессе выполнения программы
Работа со столбцами объекта TDBGrid
Объекты для операций с несколькими записями
Глава 9. Реляционная база данных
Знакомство с реляционной базой данных
Правило номер один: для каждой таблицы создавайте первичный ключ!
Анализ ключей и индексов в базе данных BCDEMOS
Зачем нужна ссылочная целостность
Отношение "один-ко-многим"
Какие базы данных предпочитает автор
Глава 10. Плоская база данных
Введение
Демонстрационная программа
Разработка приложения
Определение внешнего вида приложения
Просмотр: операции с полем Category
Задание структуры команд программы
Проверка "черновика" программы
Создание окончательной версии программы
Режим доступа "только-чтение"
Поиск данных
Фильтрация данных
Маркировка полей
Установка цветов
Работа с системным реестром
Перемещение по системному реестру
Запуск программы
Применение системного реестра в программе ADDRESS2
Буфер обмена: вырезание, копирование и вставка
Глава 11. Сеансы и реляционная база данных
Данные в реальном мире
Анализ реляционной программы адресной книги
Исходный код программы KDADDS
Работа с программой KDADDEXPLORER
Перемещение данных, компонент TBatсhMove, временные таблицы и пустые поля

Часть III. Сложные базы данных
Глава 12. Работа с Local InterBase Server
InterBase
Базы данных и рынок труда
Настройка Local InterBase Server
Настройка псевдонима InterBase
Создание баз данных
Исследование базы данных с помощью WISQL
Транзакции
Кэшированные обновления
Отношения "многие-ко-многим"
Безопасность и InterBase Server Manager
Глава 13. Усовершенствованные концепции InterBase
О программе MUSIC
Создание программы MUSIC
Создание индексов в таблице MUSIC
Генераторы, триггеры и хранимые процедуры
Сравнение правил со стороны сервера и со стороны клиента
Интерфейс программы MUSIC
Работа со страничными формами
Программный код MUSIC
Работа с данными в программе MUSIC
Глава 14. Инструменты печати
Обзор печати в Windows
Основные сведения об инструменте QuickReport
Работа с примерами программ
Программа ADRESS2
Отчеты в программе MUSIC
Печать форм
Глава 15. Соединение клиент-сервер
Подключение к серверам
Работа с Microsoft SQL 6.5
Работа с Oracle 7.32
Работа с Informix 7.20
Работа с Sybase 11.02
Работа с DB2 версии 2.1.2
Глава 16. Многоуровневая база данных
Многоуровневые приложения
C++ Builder и Internet
Три типа распределенных архитектур
Почему DCOM противоречива
Что такое DCOM
Преобразование существующего проекта в многоуровневое приложение
Активные формы
Работа с САВ-файлами и пакетами
Каналы и активные формы

Часть IV. Компоненты
Глава 17. Наследование
Объекты
Создание простых объектов
Наследование
Виртуальные методы
Глава 18. Инкапсуляция
Инкапсуляция
Секрет хорошей конструкции объекта
Конкретный пример
Свойства
Классы потоков
Подробнее о свойствах
Глава 19. Полиморфизм
Полиморфизм с расстояния в 20 тысяч футов
Простой пример полиморфизма
Совместимость полиморфного присваивания
Виртуальные методы и полиморфизм
Полиморфизм в VCL
Инкапсулированный полиморфизм (обзор основных положений)
Глава 20. Потомки существующих компонентов
Теория компонентов
Создание потомков существующих компонентов
Расширение модуля Unleash
Построение компонентов "с нуля"
Программный код компонента Clock
Создание пиктограмм компонентов
Работа с инструментами API
Clock2: расширение редакторов компонентов и свойств
Глава 21. Пакеты
Что такое пакеты
Как работают пакеты
Пакеты и DLL
Преимущества использования пакетов
О файлах, связанных с пакетами
Установка пакетов
Создание пакетов
Пакет панели прокрутки (TScrollPanel)
Глава 22. Создание компонентов
Программа WAREHOUSE
Иерархия для компонентов Widget и Pallet
Элементы управления TPallet
Запросы к базе данных
Иерархии

Часть V. C++Builder и Internet
Глава 23. Компоненты Internet от NetMasters
Сетевая обработка
Компоненты Internet от NetMaster
Глава 24. Компоненты WebBroker
Компонент TClientSocket
Компонент TServerSocket
Компонент TWebDispatcher
Компонент TPageProducer
Компонент TQueryTableProducer
Компонент TDatasetTableProducer
Примеры использования каждого компонента WebBroker
Более подробно о TServerSocket.
Глава 25. Использование WININET для создания приложений FTP
Требования
Как убедиться, что FTP работает в вашей системе
Как построить приложение FTP с использованием библиотеки WININET
После подключения
Как получить файл
Отправка файлов на сервер FTP
Удаление файлов
Создание и удаление каталогов
Пример элемента управления FTP
Создание списков, выводимых пользователем

Часть VI. ActiveX, DCOM и OLE
Глава 26. Автоматизация
Замечания о языке
C++Builder и библиотека ATL
Основы СОМ
Построение простых клиента и сервера СОМ
Интерфейсы
Библиотеки типов
Игнорирование параметров с помощью TNoParams
Проблемы регистрации
Автоматическое направление данных
Работа с классом WideStrings
Получение нескольких интерфейсов от одного CoClass
Глава 27. DCOM и OLEnterprise
Простые клиент и сервер DCOM
Массивы Variant
Легковесные удаленные наборы данных
Данные программы и объекта Automation
Основы OLEnterprise
Глава 28. Создание элементов управления ActiveX
Об элементах управления ActiveX
Средства C++Builder для создания элементов управления ActiveX
Начальная школа
Создание элемента управления ActiveX старым способом
Создание элемента управления ActiveX из компонента VCL
Создание элемента управления ActiveX с помощью ATL
Создание элемента OCX с помощью ATL
Отладка элементов управления ActiveX

Часть VII. Графика
Глава 29. Графические классы VCL
Windows GDI и VCL TCanvas
Работа с объектом TCanvas
Кисти
Исследование и использование перьев
Шрифты
Исследование и использование TCanvas::Penpos
Исследование и использование TCanvas::ClipRect
Исследование и использование TCanvas::CopyMode
Исследование и использование TCanvas:: Pixels
Методы объекта TCanvas
Пример программы BRUSHMAIN
Линия под другим именем
Глава 30. Цвета, палитры и графические образы
Подробно о TColor
Палитры
Форматы файлов образов в Windows
TImage и TPaintBox
О растровых рисунках
Глава 31. Использование DirectDraw
Что такое DirectDraw
Интерфейс DirectDrawSurface
Использование GDI с DirectDraw
Использование TBitmap
Интерфейс IDirectDrawPalette
Упрощение DirectDraw
Множество поверхностей и пролистывание страниц
Построение компонента DirectDraw
Глава 32. Использование Direct3D
Что такое Direct3D
Инициализация приложения Direct3D
Настройка сцены Direct3D
Создание модели с помощью IMeshВuilder
Отображение текстуры
3D-модель и просмотр текстуры

Часть VIII. Дополнительные возможности
Глава 33. Работа с файлами Delphi
Суть процесса
Использование программного кода Delphi в C++Builder
Использование компонентов Delphi в C++Builder 3
О компиляторе Pascal
Генерирование заголовков
Ошибки компоновщика
Пример проекта
Смешивание Delphi и C++Builder
Глава 34. Внутренняя совместимость с OWL и библиотеками DLL от Microsoft
Что нельзя делать с DLL, сгенерированными Microsoft Visual C++ 6
Импортирование функций из Microsoft DLL
Заключение по созданию DLL
Поддержка OWL
Поддержка MFC
Стандартная библиотека C++
Что будет с прежними приложениями C++Builder
Глава 35. Библиотеки динамического и статического связывания и проблемы сторонних разработчиков
Связывание библиотек и загрузка DLL
Понимание DLL
Создание DLL
Исполняемая программа с загрузкой статической DLL
Исполняемая программа с загрузкой динамической DLL
DLL и проблемы сторонних разработчиков
Искажение имен
Соглашения о вызовах
Использование псевдонимов
Статические библиотеки
Статические библиотеки сторонних разработчиков