Поиск по сайту:
Язык гипертекстовой разметки HTML - Книга.
Assembler IBM PC. Оглавление - Книга.
C++Builder 5. Руководство разработчика. Том 1 - Основы - Книга.
Содержание
ЧАСТЬ III ИНТЕРФЕЙСЫ И РАСПРЕДЕЛЕННЫЕ ВЫЧИСЛЕНИЯ
Глава 15. Модули DLL и подключаемые компоненты
Использование мастера DLL Wizard
Разработка и использование DLL
Статическое связывание DLL
Импортирование функций из динамически связанных модулей DLL
Экспортирование классов
Использование пакетов и модулей DLL
Экранные формы одно документных приложений в DLL
Дочерние экранные формы MDI в модулях DLL
Дочерние экранные формы MDI в пакетах
Использование модулей DLL, созданных в среде Microsoft Visual C++
Использование DLL, созданных в C++Builder, совместно с приложением Microsoft Visual C++
Разработка подключаемых компонентов
Структура подключаемых компонентов
Базовая структура подключаемых компонентов
Класс TIBCBSPluglnBase
Класс TBCBSPluginManager
Некоторые нюансы программирования подключаемых компонентов
Резюме
Глава 16. Программирование СОМ-приложений
СОМ-серверы и СОМ-клиенты
Выходные интерфейсы и обработка событий
Разработка СОМ-сервера
Выбор типа сервера
Выбор модели потоков задач
Создание сервера
Добавление СОМ-объекта
Анализ сгенерированного программного кода
Разработка методов
Обработка ошибок
Реализация метода, возбуждающего событие
Реализация пользовательского интерфейса
Возбуждение событий пользовательского интерфейса
Разработка DLL с "заместителем-заглушкой"
Разработка клиентского СОМ-приложения
Импортирование библиотеки типов
Создание и использование объекта СОМ-сервера
Перехват событий, возбужденных интерфейсом диспетчеризации
Запрос пользовательского интерфейса
Разработка приемника событий пользовательского интерфейса
Рекомендуемая литература
Резюме
Глава 17. Распределенные приложения, DCOM
Базовые концепции DCOM
Операционные системы семейства Windows и DCOM
Утилита DCOMCnfg
Настройка глобальных параметров подсистемы безопасности
Индивидуальная настройка параметров безопасности серверов
Разработка DCOM-приложения
Создание серверного приложения
Создание клиентского приложения
Настройка прав запуска и доступа
Настройка параметров персонификации сервера
Запуск распределенного приложения
Программирование средств обеспечения безопасности
Аргументы функции CoInitializeSecurity
Использование функции CoInitializeSecurity()
Обеспечение безопасности в DLL-модулях клиентских приложений
Реализация программируемого контроля доступа
Реализация системы безопасности на уровне отдельного интерфейса
Интерфейс IClientSecurity
Интерфейс IServerSecurity
Приложение Blanket
Резюме
Глава 18. Еще на шаг вперед: СОМ+
Введение в технологию СОМ+
Приложения СОМ+
Каталог СОМ+
Использование служб СОМ+
Свободно связываемые события
Набор подписок
Фильтрация событий
Транзакции
Свойства транзакций
Виды объектов транзакций СОМ+
Контекст объекта
Временная активизация и организация пула объектов
Управление ресурсами
Синхронизация
Безопасность
Очередь компонентов
Балансирование загрузки системы
Программирование и использование в приложениях событий СОМ+
Создание объекта события СОМ+
Включение объекта события в приложение СОМ+
Создание публикатора
Создание подписчиков
Реализация интерфейса IJobEvent
Реализация метода IJobEvent::JobAvailable()
Настройка конфигурации объектов подписчиков
Оформление "постоянной" подписки
Формирование "временной" подписки
Разработка и использование объектов транзакций СОМ+
Формирование объектов транзакций
Извлечение интерфейса lObjectContext
Объявление специфических методов интерфейса по умолчанию для каждого объекта
Реализация объекта StgEraser
Реализация объекта StgCopier
Реализация объекта StgSwapper
Установка экземпляра сервера StgBusiness в новое приложение СОМ+
Разработка менеджеров ресурсов CRM
Интерфейс IStorage в объекте CRM Worker
Разработка объекта CRM Compensator
Установка компонента CRM в приложение СОМ+
Новая версия объекта StgSwapper
Создание клиентского приложения
Резюме
Глава 19. Многоуровневые распределенные приложения на основе MIDAS 3
Основы MIDAS
Клиенты и серверы MIDAS
Создание сервера MIDAS
Регистрация сервера MIDAS
Создание клиента MIDAS
Использование портфельной модели
Использование метода ApplyUpdates()
Обработка ошибок
Разрешение конфликтов в работающем приложении
Удаленный доступ к серверу
Создание сервера MIDAS типа "главный-подчиненный"
Экспортирование наборов данных "главный-подчиненный"
Создание клиента MIDAS, работающего со связанными таблицами
Использование вложенных таблиц
Загрузка локальной сети при использовании MIDAS
Использование свойства PacketRecords
Оптимизация сервера
Новинки MIDAS 3
Компонент TDataSetProvider
Интерфейсы IProvider и lAppServer
Брокеры данных, не сохраняющие состояния
Использование технологии InternetExpress
Свойство MaxRecords компонента XMLBroker
Свойство MaxErrors компонента XMLBroker
Компонент WebConnection
Пул объектов
Использование протокола TCP/IP
Брокер в выборе объектов
Установка MIDAS-приложения
Резюме
Глава 20. Распределенные приложения на основе модели CORBA
Введение в CORBA
Основы CORBA
Статика и динамика
Всегда или по требованию
Одноуровневая или иерархическая организация
Кто - сервер и кто - клиент
Брокер запросов объектов
Адаптер базисных объектов
CORBA или СОМ?
Компоненты Visibroker
Служба Smart Agent
Демон активизации объектов
Утилита Console
Язык определения интерфейсов
Ключевое слово interface
Ключевое слово attribute
Методы
Определение типов
Исключения
Наследование
Модули
Новинки C++Builder 5
Поддержка технологии CORBA в среде C++Builder
Диалоговое окно Environment Options
Диалоговое окно Debugger Options
Диалоговое окно Project Options
Мастер CORBA Server Wizard
Мастер CORBA Client Wizard
Мастер CORBA IDL File Wizard
Мастер CORBA Object Implementation Wizard
Диалоговое окно Project Updates
Мастер Use CORBA Object Wizard
Отличия между C++Builder 4 и C++Builder 5
Модели реализации
Наследование
Виртуальная реализация наследования
Модель делегирования
CORBA для "бедных"
Резюме
Глава 21. Microsoft Office и приложения C++
Преимущества интеграции программ на C++ и Microsoft Office
Интеграция компонентов Microsoft Office в программу на C++
Использование TOleContainer
Использование механизмов автоматизации
Использование объектов автоматизации и переменных типа Variant
Защита от макровирусов
Использование языка Word Basic
Особенности интеграции Word
Коллекции
Объект приложения
Работа с документами
Создание нового документа
Использование метода Save для сохранения документов
Открытие существующего документа
Извлечение текста из документа Word
Вставка объектов в документы Word
Вставка текста в документ Word
Вставка объектов в документ Word
Программа составления словаря
Интеграция Excel в приложение C++Builder
Формирование ссылки на объект приложения
Операции с рабочей книгой Excel
Создание новой рабочей книги
Сохранение рабочих книг
Открытие рабочей книги
Использование активной рабочей книги
Вставка ячеек в рабочие листы Excel
Извлечение данных из ячеек рабочего листа
Использование серверных компонентов C++Builder 5
Компоненты TWordApplication и TWordDocument
Новая версия программы составления словаря
Запуск Word
Извлечение текста из документа Word
Вставка текста в документ
Заключительные замечания относительно ATL и серверов OLE
Возможности интегрированных приложений на базе Microsoft Office
Word
Excel
Другие приложения Office
Outlook
Access
Project
Связь с другими приложениями
Резюме
Глава 22. Использование технологии ActiveX
Основные характеристики объектов Active Server Objects
Использование мастера Active Server Object Wizard
Редактор библиотеки типов
ASP-объект Response
ASP-объект Request
Запрос объектов ASO
Работа с объектом ASP
Объекты ASP Session, Server и Application
Объекты ASP и поддержка WebBroker
Установка объектов ASO
Отладка объектов ASO
Объекты ActiveForms
Создание объекта ActiveForm
Установка ActiveForm-приложения для использования в Internet Explorer
Настройка параметров ActiveForm-приложения
Подключение к ActiveForm-приложению
Создание ActiveForm-приложения, работающего с данными
Работа с пакетами и САВ-файлами
Обновление ActiveForm-приложения
Каталоги ОССАСНЕ и Downloaded Program Files
ActiveForm-приложение в качестве клиента MIDAS
Использование ActiveForm-приложения в среде Delphi
Создание шаблонов ActiveForm-приложений
Программирование оболочек
Использование идентификаторов объектов
Извлечение PIDL объекта
Извлечение содержимого папки
Перемещение объектов оболочки
Интерфейс IDropTarget
Метод DragEnterQ
Метод Drop()
Обработка события Drop
Резюме
ЧАСТЬ IV БОЛЕЕ СЛОЖНЫЕ МЕТОДЫ РАБОТЫ В C++BUILDER
Глава 23. Представление данных с помощью C++Builder
Представление данных в отчетах
О важности создания отчетов
Использование компонентов QuickReport для создания отчетов
Философия настраиваемого средства просмотра
Исходный текст программы средства просмотра
Резюме о настраиваемом средстве просмотра QuickReport
Печать текста и графических изображений
Печать текста
Непосредственный вывод текста и данных на принтер
Вывод текста на принтер с использованием библиотеки VCL
Печать графических изображений
Печать растровых изображений с использованием библиотеки VCL
Печать других типов графических изображений с использованием VCL
Использование более сложных методов печати
Определение разрешения принтера
Определение размера печатной области бумаги
Определение размеров в пикселях
Определение размеров в миллиметрах
Определение физического размера бумаги
Физический размер бумаги
Физическое смещение
Определение возможностей принтера в области рисования
Как напечатать повернутым шрифтом
Получение доступа к параметрам принтера
Как узнать имя принтера, используемого по умолчанию
Установка стандартного принтера
Восстановление объекта TPrinter
Информация о доступе к структуре DEVMODE с помощью класса TPrinter
Использование структуры PRINTER_rNFO_2
Другие функции, связанные с бумагой для принтера
Установка формата бумаги
Получение списка поддерживаемых форматов и источников бумаги (способов подачи)
Получение числовых типов и имен форматов бумаги
Получение числовых типов и имен источников бумаги
Установка источника бумаги для принтера
Установка количества копий
Установка ориентации
Установка масштаба
Установка цветового режима
Установка качества печати
Установка дуплексного режима
Установка параметра Разобрать по копиям
Получение информации о возможных разрешениях принтера
Получение информации о состоянии принтера
Работа с заданиями печати
Как перехватить нажатие кнопки
Печать формы
Создание компонента предварительного просмотра печати
Использование процедур преобразования для вывода данных на принтер
Другая информация, связанная с выводом данных на принтер
Создание диаграмм с помощью компонента Tchart
Начнем с мастера TeeChart
Редактирование диаграмм
Добавление данных в диаграмму
Изменение внешнего вида диаграмм при выполнении приложений
Как упростить процесс изменения свойств
Использование события OnGetBarStyle
Работа с диаграммами
Получение значений диаграммы
Преобразование экранных координат в координаты диаграммы
Динамическое создание диаграмм
Печать диаграмм
Использование метода PrintPartialCanvas
Переход к TeeChart Pro
Резюме
Глава 24. Использование интерфейса Win32 API
Win32 API в сравнении с программными средствами Win32 промежуточного уровня
Краткая историческая справка по Windows и API
Функциональные области Win32 API
Управление окнами
Системные службы
Графический интерфейс с устройствами
Мультимедийные службы
Общие элементы управления и диалоговые окна
Функции оболочки
Межнациональные средства
Сетевые службы
Структура и функционирование программ в среде Windows
Функция WinMain()
Дескрипторы окон
Сообщения Windows
Идентификаторы сообщений
Ответ на сообщения Windows
Реальные примеры использования интерфейса API
Запуск приложения в программе
Использование функции CreateProcess() для получения дескрипторов окон
Базовые операции ввода/вывода файлов
Как воспользоваться волшебной силой оболочки
Стыковка с броузером
Поддержка более сложных операций с файлами
Операции с корзиной
Просмотр папок
Поиск папки
Реализация мультимедийных служб
Воспроизведение мультимедийных файлов
Как добиться точности швейцарских часов с помощью мультимедийного таймера
Использование глобально уникальных идентификаторов (GUID)
Определение системной информации
Регистрационное имя пользователя
Имя компьютера
Размер доступной памяти
Местонахождение временных файлов
Размер файлов
Свободное дисковое пространство и серийный номер
Создание мигающих уведомлений
А теперь соберем все воедино
Добавление системной поддержки
Блокировка рабочих станций NT
Завершение работы системы
Анимационные эффекты
Придание формы приложениям
Написание аплетов панели управления в стиле ретро
Понятие об аплетах панели управления
Создание аплета панели управления
Резюме
Глава 25. Методы использования мультимедиа
Графический интерфейс с устройствами (GDI)
Интерфейс Windows API и контекст устройства
Понятие о классе TCanvas: интерфейс с C++Builder
В чем суть компонента TCanvas
Основные методы
Что упущено в реализации компонента TCanvas
Использование компонента TCanvas
Настройка рисунка
Пример создания аналоговых часов
Поддержка изображений
Растровый объект Windows
Класс TBitmap
JPEG-изображения
GIF-изображения
PNG-изображения
Обработка изображений
Отображение и получение графической информации
Доступ к значениям отдельных пикселей с помощью свойства TCanvas->Pixels
Создание изображений
Быстрый доступ к значению пикселя с помощью свойства ScanLine
Точечные операции: "пороговая" обработка и инвертирование цветных и ахроматических изображений
Глобальная операция: выравнивание гистограмм
Геометрическое преобразование: масштабирование
Пространственная операция: сглаживание и выделение контуров изображения
Аудиофайлы, видеофайлы и музыка на компакт-дисках
Интерфейс управления средствами аудиовизуальной информации (MCI)
Использование командных сообщений и строковых констант
Декодирование констант ошибок
Работа с МС1-устройствами
Чтение статуса устройства
MCI-уведомления
Заключительные замечания по поводу MCI
Интерфейс Waveform Audio Interface
Открытие и закрытие аудиофайлов
Работа с аудиопотоками
Открытие и закрытие аудиоустройств
Заключительные замечания по интерфейсу Waveform Audio Interface
Резюме
Глава 26. Покорение новых вершин компьютерной графики с помощью интерфейсов DirectX и OpenGL
Введение в OpenGL
OpenGL в сравнении с DirectSD
Структура команд OpenGL
Циклы рисования в среде C++Builder, реализуемые с помощью функцииOnldle()
Использование OpenGL
Этап 1: инициализация OpenGL
Как работает рендеринг в OpenGL
Механизм управления режимами OpenGL
Этап 2: установка среды рендеринга (освещение и затенение)
Модели освещения и затенения
Модели затенения OpenGL
Установка источников света для динамического затенения
Этап 3: трехмерные преобразования
Конвейер преобразования (из трехмерных координат в пиксели)
Три преобразования
Порядок преобразований
Этап 4: рисование примитивов
Установка свойств материалов
Установка нормалей освещения
Выполнение операций рисования
Определение примитивов
Многоугольники, точки и линии
Рисование примитивов с помощью OpenGL
Списки отображения (более эффективный способ создания примитивов)
Этап 5: Всплытие на поверхность
Пример OpenGL-программы
Резюме по OpenGL
Дополнительные источники информации по OpenGL
Введение в DirectX
СОМ-ориентация интерфейса DirectX API
Необъектные функции DirectX
Использование DirectDraw
Инициализация объекта DirectDraw
Настройка параметров отображения для DirectDraw
Поверхности рисования
Использование GDI на поверхностях DirectDraw
Загрузка растровых изображений на поверхность
Пример DirectDraw-программы
Резюме по DirectDraw
Использование DirectSound
Инициализация объекта DirectSound
Создание вторичного буфера
Этап 1: загрузка звуковых данных
Этап 2: создание вторичного буфера
Этап 3: анализ звуковых данных в прямом буфере
А теперь объединим функции WAV-загрузчика
Пример DirectSound-программы - "многоголосый" плейер
Еще несколько слов о DirectX
Дополнительные источники информации по DirectX
Резюме
ЧАСТЬ V РАЗВЕРТЫВАНИЕ С++Builder-ПРИЛОЖЕНИЙ
Глава 27. Создание справочных файлов и документации
Создание технической документации, или десять верных шагов на пути к совершенству
Типы документации
Стратегии создания интерактивной документации
Категории справочной информации
Процедурная информация
Справочная информация
Концептуальная информация
Учебная информация
Форматы справочной информации
Справочные файлы в формате WinHelp: стандарт Windows
Инструментальные средства создания справочных систем
Контекстно-зависимая справка
Всплывающие подсказки
"Что это такое?", или всплывающие справочные окна
Стандартный файл WinHelp
Встроенная справка
Компилятор MS Help Workshop
Добавление справки "Что это такое?"
Расширение справочной системы с помощью более сложных средств разработки
Справочные файлы Microsoft HTML Help
Свойства и методы VCL- компонентов справочной системы
Свойства компонентов справочной системы
Методы компонентов справочной системы
События
Источники информации по созданию справочных систем
Книги
Инструментальные средства создания справочных систем, доступные в Internet
Резюме
Глава 28. Распространение программных продуктов
Языковая глобализация и локализация
Общее представление о языковой глобализации
Приложение Localize
Код приложения Localize
Как работает эта программа
Стоит запомнить
Мастер DLL-ресурсов
Как работает мастер
Как создать DLL-ресурс
Как протестировать приложение
Распространение других файлов и программ
Файлы приложения
Файл Readme.txt
Файл Help.hlp или help.chm
Файл License.txt
Файл Help.cnt
DLL-файл (файлы)
Файлы базы данных
Пакетные файлы
Другие файлы
Этапы распространения приложения
Защита авторских прав и лицензирование программных продуктов
Защита авторских прав
Куда поместить уведомление об авторских правах
Полезные советы по защите авторских прав
Лицензирование программного продукта
Защита программных продуктов
Защита приложений
Защита приложения с помощью компонентов сторонних производителей
Компонент AHMAppManager
Защита приложения с помощью других типов компонентов
Компонент AppReg
Компонент RedRegistration
Компонент ShareLock
Комплект Crypto++
Некоторые замечания по защите программных продуктов
Условно-бесплатные приложения
Защита условно-бесплатных приложений
Метод Date Disable
Метод Runtime Lock
Метод Day Lock
Метод Disabled Functions
Реализация методов защиты условно-бесплатных приложений
Методы защиты условно-бесплатных приложений
Распространение продуктов и маркетинг посредством Internet
Web-узлы
Поддержка пользователей
Рекламирование приложений
Бесплатные баннеры
Узлы, предназначенные для загрузки программных продуктов
Прием кредитных карточек и предоставление разблокирующих кодов
Использование кредитных карточек для покупки программных продуктов
Советы по выбору служб кредитных карточек
Обычная почта
Полезные советы по организации Internet-маркетинга
Резюме
Глава 29. Инсталляция и обновление программных продуктов
Установка и удаление программ
Генераторы программ инсталляции
Как они работают
Однофайловый вариант инсталляции
Многофайловый вариант инсталляции
Программа Install Maker
Как создать программу инсталляции с помощью Install Maker
Удаление приложения
CAB- и INF-файлы
Немного о САВ-файлах
Создание и выделение САВ-файлов
Создание самораспаковывающихся САВ-файлов
Немного об INF-файлах
Разделы и директивы INF-файлов
Создание INF-файлов
Немного о пакетах Internet
Суть Internet-пакета
Версии, обновления и заплаты
Версии
Поддержка версий
Обновления для усовершенствования приложений
Усовершенствование приложений
Методы уведомления об обновлениях
Реализация обновлений
Заплаты
Создание заплаты
Программа Patch Maker
Несколько советов, касающихся обновлений и заплат
Управление версиями и программа TeamSource
Кто должен использовать программу TeamSource
Почему следует использовать программу TeamSource
Когда использовать TeamSource
Где использовать TeamSource
Как использовать TeamSource
Новые проекты
Импортирование нового проекта
Создание нового проекта "с нуля"
Создание проекта
Задание локальной папки
Параметры проекта
Обработка локальных папок
Окна программы TeamSource
Окно Remote View
Окно Local View
Вкладка History View
Средства управления версиями
Закладки
Извлечение проектов
Блокировки
Запрос на блокировку
Оспаривание блокировок
Использование программы InstallShield Express
Установка программы InstallShield
Итак, начнем освоение InstallShield
Раздел Set the Visual Design (Установка визуальных характеристик)
Раздел Specify InstallShield Options for Borland C++Builder 5 (Установка параметров InstallShield для Borland C++Builder 5)
Раздел Specify Components and Files (Указание компонентов и файлов)
Раздел Select User Interface Components (Выбор компонентов интерфейса пользователя)
Раздел Make Registry Changes (Внесение изменений в реестр)
Раздел Specify Folders and Icons (Указание папок и пиктограмм)
Раздел Run Disk Builder (Создание программы инсталляции)
Раздел Create Distribution Media (Создание дистрибутива)
Тестирование
Резюме
ЧАСТЬ VI БАЗА ЗНАНИЙ
Глава 30. Советы, приемы и рекомендации
Как заставить клавишу имитировать клавишу <ТаЬ>
Решение
Комментарии к программе
Немного о "ловушках"
Почему нельзя просто присвоить значение константы VK_TAB переменной Key
Установив для свойства Default кнопки BtnOK значение true, я не могу работать!
TMemo-поля почему-то не работают у меня должным образом
Резюме по имитации клавиши <ТаЬ>
Определение версии операционной системы
Решение
Описание приложения
Резюме по определению версии операционной системы
Программирование с использованием чисел с плавающей запятой
Основа метода
Работа с числами
Выполнение сложения и вычитания
Последовательность арифметических операций со скобками
Сравнение данных
В заключение о числах с плавающей запятой
Реализация экранных заставок
Функция WinMainQ
Создание экранной заставки
Предотвращение запуска нескольких экземпляров приложения
Решение
Программа
Заключение
Организация инструмента "перетащить и опустить"
Решение
Описание программы
Как работает приложение
Резюме по операции "перетащить и опустить"
Перехват экрана
Как Windows работает с окнами
Решение
Захват целого экрана
Захват активного окна
Захват выделенных частей экрана
Резюме по захвату экрана
Реализация компонента TJoyStick
Создание приложения с функциями утилиты системного мониторинга
Немного о системных ресурсах Windows
Решение
Резюме по системному мониторингу
Исследование приложения Soundex
Решение
Использование компонентов просмотра дерева
Основы организации средства просмотра дерева
Добавление узлов
Использование значков
Обход дерева
Доступ к узлам дерева
Поиск данных
Отображение данных о количестве дочерних узлов
Перемещение узлов вверх и вниз
Выполнение операции "перетащить и опустить"
Модификация узла
Модификация надписи узла
Модификация объекта данных узла
Удаление узла
Поддержка отмены удаления и его повторного выполнения
Первый метод
Второй метод
Сохранение дерева
Резюме по компоненту ТТгее
Реализация утилиты выделения пиктограмм
Создание приложения, подобного Windows Explorer
Интерфейсы и функции оболочки Windows
Решение
Резюме по вариации на тему Windows Explorer
Работа с NT-службами (NT Services)
Программа SendMsg
Служба мгновенных сообщений (Stickums Service)
Программа клиента Stickem
Резюме по службе мгновенных сообщений
Использование криптографии
Решение
Шифрование файлов
Дешифрирование файла
Создание всемирных часов дня и ночи
Специальное дополнение для скептиков
Резюме
Глава 31. Реальный пример
Программа Wave Statistics
Исходный текст программы
Заголовочный файл math.h
Заголовочный файл mapunit.h
Заголовочный файл wavedata.h
Файл исходного кода about.cpp
Исходный файл TMainUnit
Лучшее - враг хорошего, но все-таки...
Резюме
ЧАСТЬ VII ПРИЛОЖЕНИЕ
Приложение А. Источники информации
Web-узлы компании Borland
Web-узел Borland Community
Основной Web-узел компании Borland
CodeCentral
Содержание
Списки рассылки и форумы
Web-ориентированные форумы
Списки почтовой рассылки
Группы новостей
Web-узлы
Рецепты типа "как сделать так, чтобы..." и технические статьи
Хранилища компонентов
Книги и журналы
Книги по теме C++Builder
Книги по C++
Журналы
Конференции и группы пользователей
Предметный указатель
|