Библиотека: М. Теллес. Borland C++ Builder (+CD). Библиотека программиста
Содержание
От переводчиков
Предисловие
Глава1•Обзор
Что такое C++ Builder?
Подождите, это еще не все
Почему стоит прочесть эту книгу?
Какие вопросы мы собираемся рассмотреть?
Что вы должны знать, перед тем как читать эту книгу
Для кого предназначена эта книга?
Что дальше?
Глава2•Формы исобытия
Хорошая вещь — каракули!
Scribble: разработка
Взглянем на файл описания формы (DFM)
Собственно рисование
Scribble, часть вторая
Копируем проект
К высоким материям
Scribble, третья попытка
Переключение обработчиков «на ходу»
Великое изменение—переход к многодокументным формам
В чем различие?
Проводим преобразования
Формы до создания
Извечная проблема
Последний шаг
Что мы узнали в этой главе?
Глава3•Работа с изображениями
Пример номер один: игра Match Game
Устанавливаем заголовки кнопок
Проверка на совпадение
Как это все работает?
Совершенствуем игру Match Game
Как это все работает?
Пример номер два: крестики-нолики.
Шаг первый: создаем изображения
Жизнь и приключения объекта TBitmap
Обработка щелчков мыши
Запускаем игру
Что мы узнали в этой главе?
Глава4•Компоненты и обработчики событий компонентов
Краткий обзор с точки зрения программиста
Динамические компоненты, часть первая
Создаем поле ввода
>Добавление статического текста
Добавление кнопки
Динамические компоненты, часть вторая
Создание полоски прогресса
Увеличение счетчика прогресса
Удаление полоски прогресса
Последний штрих
Проверка корректности данных в поле ввода
Проверка данных после ввода
Волоки, пока не уронишь
Реализация drag-and-drop в списках
Как узнать, когда начало?
Списки с drag-and-drop, часть вторая
>Карты сообщений и CBuilder
Реализация карт сообщений
Прорисовка формы
Добавляем обработчик вертикальной прокрутки
Обработка горизонтальной прокрутки
Создание списка, прорисовываемого его владельцем
Понятие о списках, прорисовываемых владельцем
Реализация примера
Модификация заголовочного файла
Реализация меню в форме
Зачем нам нужно переустанавливать элементы списка?
Обработка измерения элемента
Рисуем элементы
Уточняем детали
Исследуем странички
Отображение страничного диалога
События в страничных диалогах
Что здесь происходит?
Проверка разрешения на перемещение
Блокирование закладки
Сами рисуем свое меню
Имеем дело с Windows API
Отображение элементов меню
Изменение состояния во время исполнения
Время в панели состояния.
Что мы узнали в этой главе?
Глава5•Библиотека стандартных шаблонов
Что такое библиотека стандартных шаблонов?
Зачем нужна библиотека стандартных шаблонов?
Классы STL: с самого начала
Работа с векторами (массивами)
Пример программы замены строк
Работа со связными списками
Итератор
Работа с таблицами
Зачем нужны таблицы?
Всемогущее множество
Небольшое отступление: С++ и именованные области видимости
Оператор using
Стеки и очереди
Объединяя все вместе: Scribble версии 2
Исправляем родительское окно
Что мы узнали в этой главе?
Глава6•Работа с ActiveX
ActiveX и CBuilder Professional
Страница ActiveX в палитре компонентов
Добавление собственных управляющих элементов ActiveX
Обзор файлов, сгенерированных для элементов ActiveX
Несколько слов об ActiveX
Использование управляющих элементов ActiveX
Динамическое создание управляющих элементов
Конкретный пример: броузер HTML
Что мы узнали в этой главе?
Глава7•Работа сбазами данных
Разбираемся во внутреннем устройстве базданных
Пример программы просмотра полей базы данных
Создаем пример программы просмотра полей
Что же здесь происходит?
Создание базы данных на пустом месте
Добавляем поля в таблицу
Защищаем пользователя
Создаем базу данных
Обработка событий базы данных
Отслеживаем изменения
Проверка данных
Я хочу сделать это сам!
Обобщенная программа просмотра баз данных
Просмотр нескольких таблиц
Как это работает?
Использование источников ODBC с объектами баз данных CBuilder
Что мы узнали в этой главе?
Глава8•Антракт: инструменты CBuilder
Работа с компилятором из командной строки
Простой пример
Компилятор ресурсов
Использование программы Implib
Работа с IDEToMak
Использование препроцессора
Что такое Grep?
Использование Grep для поиска файлов
Роемся в библиотеке
Программа tdump
Что такое Trigraph?
Обзор BDE
Конфигуратор BDE
Программа Database Desktop
Database Explorer (проводник баз данных)
Что мы узнали в этой главе?
Глава9•Работа с Windows API
Поиск нужной функции API
Приложение OnlyOnce
Запрет запуска второй копии
Перетаскивание файлов
Обработка притащенных файлов
Более сложный пример: просмотр атрибутов файлов
Определение состояния файла
Круглооконная форма
Реализация круглой кнопки
Что мы узнали в этой главе?
Глава10•Работа сресурсами
Зачем нужны ресурсы?
Строковые ресурсы
Построение строковой библиотеки
Пример динамической загрузки строк
Загрузка динамических меню
Динамическая загрузка меню
Удаление пунктов меню
Кое-что о файлах ресурсов
Работа с компилятором ресурсов
Работа с динамически связываемыми библиотеками (DLL)
Создание DLL в CBuilder
Создание формы для динамической загрузки DLL
Что мы узнали в этой главе?
Глава11•Работа с Delphi
Все новое — это хорошо забытое старое
Использование форм Delphi
Строим форму CBuilder
Добавление формы Delphi в наше приложение
Использование функций Delphi в приложениях CBuilder
Что мы узнали в этой главе?
Глава12•Использование CBuilder в MFC
Использование CBuilder в приложениях MFC
Пример: из CBuilder в MFC
Создание оберточной функции
Создание файла DEF
Создание библиотеки импорта
Приложение MFC
Вызов функции для отображения формы
Взаимодействие Visual C++ и формы CBuilder
Приложение Visual C++
Последний пример: работа с базами данных
Создание формы выбора записей
Что мы узнали в этой главе?
Глава13•Работа с потоками
Зачем нужны потоки?
Простой пример потока
Добавление нового потока
Работа с потоками в форме
Программа поиска в потоке
Построение главной формы
Создание потока для поиска
Дизайн приложения с потоками
Что мы узнали в этой главе?
Глава14•Создание новых компонентов
Процесс разработки компонентов
Процесс разработки компонентов в деталях
Инсталляция компонента
Выбор свойств
Воплощение нового компонента
Добавление родительских свойств
Добавление новых свойств
Отрисовка управляющего элемента
Тестирование компонента
Инсталляция и повторное тестирование компонента
Иконка
Подготовка компонента к распространению
Компонент FilterEdit
Формулировка проблемы
Частное решение
Воплощение базового компонента
Сужение проблемы — класс TNumericEdit
Компонент LineGraph
Формулировка проблемы
Частное решение
Определение свойств компонента
Добавление свойств в компонент
Воплощение управляющего элемента
Что мы узнали в этой главе?
Глава15•Часто задаваемые вопросы (FAQ)
Общие вопросы
Что такое C++Builder?
Ради чего мне стоит использовать CBuilder?
Может ли CBuilder работать с MFC?
Может ли CBuilder работать с OWL?
Собирается ли фирма Borland избавиться от OWL?
Что такое VCL?
Где я могу получить дополнительную информацию?
Как мне скомпилировать программу, если я работаю в режиме редактора
Brief Emulation?
Как мне изменить тип проекта, выбираемый по умолчанию?
У меня пропадает окно сообщений об ошибках. Как его вернуть?
Мое консольное приложение не использует VCL. Как мне убрать ее из компоновки?
Как мне использовать внешние DLL с CBuilder?
Как мне создать статическую библиотеку в CBuilder?
Где находится Мастер диалогов (Dialog Wizard)?
Почему при исключении информации отладчика размер EXE-файла не уменьшается?
Что за файлы создает CBuilder? Которые из них я могу удалить?
Где находятся компоненты для страницы Samples палитры компонентов?
Где находятся управляющие элементы для Internet?
Как мне сделать так, чтобы у нескольких компонентов на форме было одинаковое значение свойства?
Общие вопросы программирования
Что такое «Compiler Error #1» и как мне от нее избавиться?
Что такое AnsiString и как его преобразовать в Char *?
Как добавляют элементы в множество?
Что означает ошибка «Member function must be called...»?
Что означает ошибка «Structure required»?
Как исправить ошибку «Linker Error: Failed to create map file»?
Как добавить ресурсы в проект?
Можно ли динамически подгрузить библиотеку VCL?
Как пошагово выполнить исходный код VCL при отладке?
Почему отладка столь медленна? Как ее ускорить?
Компилятор нагло врет! Мои переменные имеют неправильное значение!
Как получить доступ к принтеру или буферу обмена?
Как поставить выравнивание байтов в CBuilder?
Как принимать перетаскиваемый (drag-and-drop) файл в моей форме?
Как изменить размер компонента до размера формы?
Как использовать макрос TRACE в CBuilder?
Как отобразить кусочек растрового рисунка?
Как динамически создать компонент во время исполнения?
Как эмулировать sprintf при работе со строками?
Библиотека стандартных шаблонов (STL)
Почему при использовании класса vector выдается целый ворох ошибок?
Можно ли использовать STL в компонентах?
Библиотека визуальных компонентов (VCL)
Как программно добавить элементы в список или комбинированный список?
Как в своем компоненте или форме обработать сообщение Windows (WM_USER)?
Когда следует использовать модификатор __fastcall?
Почему при инсталляции собственных компонентов появляются сообщения о странных ошибках?
Как добавить горизонтальную полосу прокрутки в окно списка (ListBox)?
Можно ли использовать MessageDlg из Delphi в CBuilder?
Как инсталлировать компонент Delphi в CBuilder?
Почему нельзя определить в программе элемент моего собственного компонента?
Как разбить полное имя файла на составляющие элементы?
Как получить доступ к отдельным кускам растрового рисунка?
Как изменить элемент в списке, кроме как удалить и добавить снова?
Как изменить цвет текста на кнопке?
Как хранить информацию, связанную с элементом списка?
Как создавать растровые рисунки на кнопках во время исполнения?
Дочернее окно MDI не закрывается. Как можно его закрыть?
Как в CBuilder поместить дату и время в строку состояния?
Как изменить цвет фона формы?
Как преобразовать введенное в поле редактирования значение в число с плавающей точкой?
Как загрузить растровый рисунок во время исполнения?
Как запретить один из переключателей в группе?
Файлы помощи и проблемы
Почему при нажатии F1 я получаю пустое окно сообщения?
Почему нет помощи по TStringGrid?
Много ли перекрестных ссылок пропущено в файлах помощи?
Как добавить помощь по F1 для моего собственного компонента?
CBuilder виснет, когда я щелкаю на закладке Find диалога помощи. В чем дело?
Базы данных
Почему на файле Btrieve я получаю сообщение «Record/Key Deleted»?
Как поместить текущую дату в поле редактирования DBEdit?
Как установить фильтр, содержащий специальные символы типа«/»?
Как использовать индексы в базах данных?
Как подключиться к базе данных Access (или подобной), незаставляя пользователя вводить никаких данных?
Как определить, что запись базы данных была изменена?
Как отменить редактирование записи в базе данных?
Обработка исключительных ситуаций
Как использовать выражения try ... catch?
Как сделать обработчик исключительной ситуации функцией-членом класса формы?
Разное
Какие еще источники информации по CBuilder существуют?
Как использовать формы CBuilder в приложении на Visual C++, использующем MFC?
Как средствами CBuilder получить доступ к метке диска CD-ROM?
Как использовать OLE Automation в CBuilder?
Как осуществить обработку времени простоя в CBuilder?
Создание компонентов
Как добавить свойство класса, например TFont, в мой компонент?
Почему при попытке посмотреть свойство моего компонента вObject Inspector система выдает мне ошибку «переполнение стека»?
Как создать круглую кнопку?
Какие файлы надо иметь при создании компонента?
Как создать компонент, который бы выглядел как массив?
Как можно протестировать свой компонент, не добавляя его впалитру?
Глава16•Другие источники информации
Web-узлы фирмы Borland
CompuServe
Списки рассылки
Web-узлы
Другие источники
Глава17•Создание Мастеров
Создаем приложение просмотра классов
Вспомогательный модуль
Вторая стадия: добавление в базу данных
Таблица методов
Таблица свойств
Сохранение данных
Добавление данных в таблицы
Первая проба
Мы готовы создать Мастера
Создание программы
Форма для определения новых методов
Страница свойств
Создание Мастера
Добавление функциональных возможностей в Мастер
Небольшое отступление: объект ToolServices
Проблемы, проблемы, проблемы
Инсталляция Мастера
Программа инсталляции Мастера
Что мы узнали в этой главе?
Глава18•Расширения языка C++ в CBuilder
Расширения
_asm и __asm
__automated
_cdecl и cdecl
__classid
__closure
__declspec
__except
__export и _export
__fastcall и _fastcall
__finally
_import и __import
__int8, __int16, __int32 и __int64
_pascal и __pascal
__property
__published
__rtti
__thread
__try
Заключение
Алфавитный указатель
|