Книги в продаже (аннотация + содержание + отрывок)

В. Шамис
BORLAND C++ BUILDER 6. ДЛЯ ПРОФЕССИОНАЛОВ.
Цена: 336 р.

Источник: Издательский дом 'ПИТЕР'
Разделы: C/C++ (C++ Builder, Visual C++)
Подробнее: Информация от издателя (открывается в новом окне)
Заказ: Оформление покупки (открывается в новом окне)
      Эта книга посвящена визуальной разработке программного обеспечения в интегрированной среде Borland C++ Builder 6. Особое внимание в книге уделяется усовершенствованиям и модификациям, появившимся в новой версии пакета. Приводится более 100 оригинальных примеров разработки действующих приложений, позволяющих лучше понять и освоить новые инструменты и возможности. Книга будет полезна опытным пользователям и профессионалам.
     
     
      Содержание
      От автора
      От издательства
      Глава 1 Общие характеристики и особенности применения
      Основные характеристики C++Builder 6
      Инструменты визуальной разработки
      Продуктивность многократного использования
      Мощность языковых средств C++
      Масштабируемый доступ к базам данных
      Выход в Интернет
      Другие программные продукты Borland
      Проблемы совместимости
      C++Builder и Borland C++
      C++Builder и Delphi 3
      C++Builder и Kylix
      32-разрядные типы данных
      Перевод с Паскаля на C++
      Borland C++Builder и Microsoft Visual C++
      Глава 2 Первые опыты
      Палитра компонентов
      Первое приложение
      Свойства, методы и события
      Технология двунаправленной разработки
      Текстовый редактор
      Использование проектных шаблонов
      Добавление гиперссылки
      Поиск и замена
      Drag-and-drop
      Список файлов предыстории
      Еще один текстовый редактор
      Что делать, если…
      Смотри и слушай
      Три… Два… Один… Пуск!
      Запуск задач средствами Windows
      Шаровары мои, шаровары
      Взаимное исключение
      Значок приложения на панели задач Windows
      Пролетая над гнездом данных
      Пример приложения баз данных
      Использование модулей данных
      Использование мастера форм
      Поиск в таблице
      Куда ставить-то?
      Итоги
      Глава 3 Объектно-ориентированное программирование на языке C++
      Инкапсуляция
      Классы, компоненты и объекты
      Наследование
      Разработка классов
      Объявление базового класса
      Конструкторы и деструкторы
      Объявление производных классов
      Полиморфизм
      Виртуальные функции
      Дружественные функции
      Расширения C ++ и компонентная модель приложений
      Объявления компонентных классов
      Пакеты
      Объявления компонентных свойств
      Объявления обработчиков событий
      Идентификация типов R TTI
      Расширенные типы данных Delphi
      Автоматизированные свойства и методы
      Шаблоны
      Пространства имен
      Явные объявления
      Непостоянные объявления
      Быстрый вызов функций
      Исключения
      Строки
      Символьные массивы
      Класс string языка C++
      Класс basic_string из библиотеки STL
      Класс String из библиотеки VCL
      Списки
      Класс TStringList: строковый список
      Класс TList: список общего назначения
      Списочные классы STL
      Файлы
      Ввод-вывод файлов на языке C++
      Класс TFileStream
      Потоки
      Класс TThread
      Универсальные объекты
      Модель COM
      Модель CORBA
      Итоги
      Глава 4 Основные инструменты интегрированной среды
      Палитра компонентов
      Менеджер проектов
      Проектные настройки
      Построение проектной группы
      Дизайнер форм
      Инспектор объектов
      Хранилище объектов
      Разделение объектов Хранилища
      Включение объектов Хранилища в проект
      Добавление объектов в Хранилище
      Настройки
      Редактор кода
      Дерево объектов
      Суфлер кода
      Проводник классов
      Поиск в файлах
      Настройки
      Приемы отладки
      Отладка проектной группы
      Практические советы
      Хранитель кода
      Итоги
      Глава 5 Практическое использование визуальных компонентов
      Стандартные компоненты
      TFrame: кадр
      TMainMenu: главное меню
      TPopUpMenu: всплывающее меню
      TLabel: метка
      TEdit: редактируемая строка
      TMemo: комментарий
      TButton: обычная кнопка
      TCheckBox: флажок
      TRadioButton: переключатель
      TListBox: простой список
      TComboBox: комбинированный список
      TScrollBar: полоса прокрутки
      TGroupBox: группирующая рамка
      TRadioGroup: группа переключателей
      TPanel: простая панель
      TActionList: список действий
      Специализированные компоненты
      TBitBtn: графическая кнопка
      TSpeedButton: кнопка быстрого вызова
      TMaskEdit: форматирующая маска
      TStringGrid: текстовая таблица
      TDrawGrid: графическая таблица
      TImage: изображение
      TShape: фигура
      TBevel: обрамление
      TScrollBox: контейнер прокрутки
      TCheckListBox: список с флажками
      TSplitter: разделитель
      TStaticText: статический текст
      TControlBar: контрольная панель
      TApplicationEvents: события приложения
      TValueListEditor: редактируемый список значений
      TLabeledEdit: редактируемая строка с меткой
      TColorBox: список цветов
      TChart: диаграмма
      TActionManager: менеджер действий
      TActionMainMenuBar: панель действий по командам меню
      TActionToolBar: панель действий по кнопкам быстрого вызова
      TCustomizeDlg: диалоговое окно настройки панелей действий
      Компоненты -разрядных версий Windows
      TTabControl: вкладки
      TPageControl: страницы
      TImageList: коллекция изображений
      TRichEdit: комментарий RTF
      TTrackBar: ползунок
      TProgressBar: индикатор процесса
      TUpDown: счетчик
      THotKey: “горячая” клавиша
      TAnimate: анимация видеозаписей
      TDateTimePicker: дата/время
      TMonthCalendar: календарь
      TTreeView: древовидная структура
      TListView: табличный список
      THeaderControl: заголовки
      TStatusBar: строка состояния
      TToolBar: панель инструментов
      TCoolBar: панель со шторками
      TPageScroller: панель с прокруткой
      TComboBoxEx: комбинированный список со значками
      Системные компоненты
      TTimer: таймер
      TPaintBox: область рисования
      TMediaPlayer: панель мультимедиа
      TOleContainer: контейнер OLE
      TDdeClientConv: клиент DDE
      TDdeClientItem: элемент данных клиента DDE
      TDdeServerConv: сервер DDE
      TDdeServerItem: элемент данных сервера DDE
      Компоненты приложений баз данных
      Доступ к данным Data Access
      Доступ к данным BDE
      Доступ к данным ADO
      Доступ к данным InterBase
      Доступ к данным dbExpress
      Соединения с удаленным сервером DataSnap
      Представление данных 87
      Многофакторный анализ и принятие решений
      Составление отчетов
      Компоненты приложений для Интернета
      Интерфейсные вызовы web-служб
      Клиентские приложения InternetExpress
      Приложения TCP/IP и генераторы гипертекста
      Серверные приложения WebSnap
      Поддержка сетевых протоколов FastNet
      Диалоговые окна
      TOpenDialog: открыть файл
      TSaveDialog: сохранить файл
      TOpenPictureDialog: открыть изображение
      TSavePictureDialog: сохранить изображение
      TFontDialog: выбор шрифта
      TColorDialog: выбор цвета
      TPrintDialog: печать
      TPrinterSetupDialog: установки принтера
      TFindDialog: поиск
      TReplaceDialog: замена
      Компоненты Windows
      TDBLookupList: список ссылок 8
      TDBLookupCombo: комбинированный список ссылок
      TTabSet: вкладки
      TOutline: древовидная структура
      TTabbedNotebook: картотека
      TNotebook: блокнот
      THeader: секционированный заголовок
      TFileListBox: список файлов
      TDirectoryListBox: список каталогов
      TDriveComboBox: список дисков
      TFilterComboBox: список фильтров
      Стилизованные компоненты
      TPie: секторная диаграмма
      TTrayIcon: значок на панели задач
      TPerformanceGraph: график производительности
      TCSpinButton: счетчик
      TCSpinEdit: редактируемая строка со счетчиком
      TCGauge: индикатор
      TCDirectory: дерево каталогов
      TCColorGrid: палитра цветов
      TCCalendar: календарь
      Компоненты ActiveX
      TChartfx: диаграмма
      TVSSpell: проверка правописания
      TF Book: рабочая книга
      TVtChart: трехмерная диаграмма
      Серверы
      Итоги
      Глава 6 Разработка элементов СУБД
      Компонентная модель приложений
      “Живые” данные
      Организация доступа к базам данных
      Конфигурация BDE
      Конфигурация ODBC
      Конфигурация InterBase
      Создание таблиц базы данных
      Использование источников данных
      Использование наборов данных
      Таблицы
      Запросы
      Хранимые процедуры
      Соединения и транзакции
      Клиентский набор данных 9
      Построение куба решений
      Составление отчетов
      Распределенные приложения
      Модель MIDAS
      Модель CORBA
      Итоги
      Глава 7 Разработка приложений для Интернета
      Приложения web-сервера
      Простейший web-сервер
      Web-сервер с продюсерами страниц
      Браузер с компонентом TCppWebBrowser
      Браузер с компонентом THTML
      Клиент/сервер TCP/IP
      Распределенное приложение базы данных
      Серверное приложение
      Обработка ошибок
      Клиентское приложение InternetExpress
      Интерфейсные методы web-служб
      Курс евровалюты
      Телефонный справочник Швеции
      Автоматический переводчик
      Серверное приложение SOAP
      Серверное приложение WebSnap
      Модуль главной страницы
      Модуль страницы по набору данных
      Модуль формы для редактирования полей таблицы
      Контроль ошибок модификации базы данных
      Испытание
      Клиентские приложения дежурных серверов
      Служба даты и времени по протоколу DateTime
      Служба времени по протоколу Time
      Эхо сервера по протоколу Echo
      Состояние пользователя по протоколу Finger
      Загрузка файлов с сервера по протоколу FTP
      Обмен новостями по протоколу NNTP
      Прием почты по протоколу POP
      Отправка почты по протоколу SMTP
      Кодировщик файлов UUE/MIME
      Итоги
      Глава 8 Развитие VCL и создание визуальных компонентов
      Назначение и устройство VCL
      VCL для прикладных программистов
      VCL для системных программистов
      Компоненты VCL
      Типы компонентов
      Стандартные компоненты
      Адаптированные компоненты
      Графические компоненты
      Невидимые компоненты
      Контейнерные компоненты
      Свойства компонентов
      Зачем нужны свойства?
      Объявление свойств
      Переопределение свойств
      Типы свойств
      События
      Зачем нужны события?
      Определение событий
      Обработка событий
      Методы
      Вызовы статических методов
      Вызовы виртуальных методов
      Компонентные шаблоны
      Иерархия классов VCL
      TObject
      TPersistent
      TComponent
      TControl
      TWinControl
      TCustomControl
      TGraphicControl
      Схема разработки компонентов
      Создание модуля
      Наследование
      Добавление свойств, событий и методов
      Регистрация
      Испытание
      Установка на Палитру
      Справочный файл
      Редакторы компонентных свойств
      Сохранение файлов нового компонента
      Примеры разработки компонентов
      TLight: простейший индикатор
      TSlider: усовершенствованный ползунок
      TEnterButton: кнопка перебора объектов формы
      TThreadedTimer: точный таймер
      TSearchDialog: диалоговое окно поиска в базе данных
      TAudio: быстрый доступ к звуковой плате
      Строитель приложений
      Итоги
      Глава 9 Графика и анимация
      Графические компоненты
      Использование канвы
      Графические объекты
      Внеэкранные битовые образы
      Приемы обработки изображений
      Полезные свойства и методы
      Некоторые практические результаты
      Методы сжатия без потерь
      Методы сжатия с потерями
      Распознавание образов
      Техника анимации
      Кадровая анимация
      Генераторы фоновых изображений
      Прозрачные кадры
      Движение спрайтов
      Трехмерная графика
      Коротко о Microsoft DirectX
      Итоги
      Алфавитный указатель
     
     
     
      ОТРЫВОК
     
     
     
      Глава 1. Общие характеристики и особенности применения
      Визуальная разработка
      Многократное использование
      Масштабируемый доступ к базам данных
      Выход в Интернет
      Программные продукты фирмы Borland
      Проблемы совместимости C++Builder и Delphi
      Проблемы совместимости C++Builder и Microsoft Visual C++
      Borland C++Builder 6 — очередная версия системы объектно-ориентированного программирования для 32-разрядных операционных систем Microsoft Windows. Интегрированная среда системы (Integrated Development Environment, IDE) обеспечивает продуктивность многократного использования визуальных компонентов в сочетании с усовершенствованными инструментами и разномасштабными средствами доступа к базам данных. Основное предназначение IDE — радикально ускорить производственный цикл разработки сложнейших программных проектов для различных областей применения.
      Стандарты пользовательских интерфейсов меняются и развиваются так же быстро, как и операционные системы. Открытость среды IDE позволяет настраивать ее с учетом наиболее модных тенденций в области графических интерфейсов. Разработчик имеет перед глазами хороший образец того, что можно сделать в смысле построения пользовательского интерфейса. На самом деле сама среда IDE создана с помощью C++Builder, поэтому все, что вы видите на экране, вы сможете сделать сами. Визуальный интерфейс сочетает в себе простоту использования для новичка и богатство возможностей д
      ля профессионала.
      Среди множества нововведений следует особо отметить эффективные средства для поддержки web-служб и разработки переносимых (cross-platform) проектов. Технологии DataSnap, WebServices и WebSnap дают возможность быстро и легко создавать и интегрировать коммерческие сетевые приложения (как персональные, так и коллективные). Клиентский и серверный модули распределенного приложения обмениваются XML- или WSDL-документами в рамках транспортных протоколов TCP/IP, HTTP, SOAP. Библиотека компонентов CLX обеспечивает переносимость исполняемого кода между платформами Windows и Linux. CLX-приложения со
      вместимы на уровне языка C++ с программными продуктами, которые корпорация Borland планирует выпускать для операционной системы Linux.
      Система C++Builder может быть использована везде, где требуется дополнить существующие приложения (как прикладные, так и системные) расширенным стандартом языка C++, повысить быстродействие и надежность программ, придать пользовательскому интерфейсу качество профессионального уровня.
      Эта глава носит обзорный и отчасти рекламный характер, что объясняется давней приверженностью автора программным продуктам корпорации Borland, в особенности базирующимся на языке C++. Если излагаемый материал покажется вам скучным или малоинформативным — просто пропустите его. Широкие возможности системы и маленькие секреты визуального программирования откроются перед вами в следующих главах книги.
      Основные характеристики C++Builder 6
      Как и ее предшественники, среда визуальной разработки C++Builder 6 выпускается в трех типовых вариантах:
      Personal (сокращенно Per) — для обучения технике визуальной разработки некоммерческих приложений на языке C++ под Windows;
      Professional (Pro) — для разработки СУБД популярных баз данных, интеграции Web-служб в клиентское приложение, переноса CLX-проектов на Linux;
      Enterprise (Ent) — для разработки СУБД всевозможных видов, распределенных коммерческих приложений клиент/сервер с поддержкой web-служб и обмена XML-документами, переноса CLX-проектов на Linux.
      Для установки системы необходим персональный компьютер в следующей конфигурации:
      процессор Intel Pentium с тактовой частотой не ниже 166 МГц;
      операционная система Microsoft Windows 98/Millennium (Me)/NT/2000/XP;
      оперативная память не менее 128 Мбайт, рекомендуется 256 Мбайт;
      до 750 Мбайт (в варианте Enterprise) свободного пространства на жестком диске, в зависимости от выбранных параметров установки;
      дисковод для компакт-дисков;
      видеоадаптер с разрешением не хуже, чем в стандарте SVGA;
      сетевой адаптер;
      мышь или другой координатный манипулятор.
      C++Builder 6 представляет собой совершенную интерактивную среду программирования на языке C++. Система обеспечивает высокую продуктивность и производительность, удовлетворяя современным требованиям к разработке приложений под Windows. Расширенный Менеджер проектов с множественными типами исполняемого кода, усовершенствованный компилятор с оптимизацией кода по размеру и эффективности, инкрементальный компоновщик, мощные средства интегрированной отладки, стройная архитектура распределенных приложений клиент-сервер, новые технологии разработки приложен
      ий для сети Интернет — наиболее существенные достижения последней версии.
      Не имеет аналогов высокопроизводительная адаптивная технология компиляции. Совершенно оригинальны методика Decision Cube для проведения факторного анализа многомерных данных в системах принятия решений, а также архитектура многозвенных распределенных приложений MIDAS (зачем-то переименованная в DataSnap). Приложения баз данных, созданные с помощью C++Builder, способны пользоваться всеми преимуществами взаимодействия с сервером транзакций (Microsoft Transaction Server, MTS). При этом приложение становится защищенным, масштабируемым и устойчивым к сбоям.
      В контексте C++Builder быстрая разработка приложений (Rapid Application Development, RAD) не только подразумевает реальное ускорение типичного цикла “редактирование — компиляция — компоновка — прогон — отладка”, но и придает создаваемым проектам изящество компонентной модели.
      Приведенные в табл. 1.1 характеристики выдвигают C++Builder 6 на авангардные позиции систем визуального объектно-ориентированного программирования.
      Таблица 1.1. Характеристики C++Builder 6
     
      Характеристики Per Pro Ent
      Язык C++ с поддержкой последних расширений стандарта ANSI/ISO
      Высокопроизводительный оптимизирующий компилятор + + +
      Быстродействующий инкрементальный компоновщик + + +
      Менеджер пакетов для получения короткого и эффективного исполняемого кода + + +
      Шаблоны классов, функций и компонентов + + +
      Динамические массивы + + +
      Поддержка приложений, базирующихся на стандартных библиотеках
      STL 2.0, ATL 3.0, RTL и COFF + + +
      MFC 6.0. Мастер MFC приложений Microsoft Visual C++. Импорт
      и компиляция исходных и заголовочных файлов + +
      OWL 5.5. Мастер OWL приложений Borland C++. Утилита миграции. Мастер импорта ресурсных файлов + +
      Win32. Импортируемые библиотеки и заголовочные файлы Microsoft Platform SDK + +
      Инструменты интегрированной среды IDE
      Настройка вида панели инструментов + + +
      Расширенный Менеджер проектов на языке XML + + +
      Механизмы двунаправленной разработки (Two-Ways-Tools) + + +
      Упорядочивание свойств по категориям в Инспекторе объектов + + +
      Встроенное дерево объектов (Object TreeView), новые режимы
      Редактора кода (Code Editor), суфлер кода (CodeInsight) + + +
      Инструменты командной строки
      BCC32 — компилятор C++ версии 5.5 + + +
      DCC32 — компилятор Delphi + + +
      TASM32 — Турбо Ассемблер с поддержкой MMX + +
      CPP32 — процессор файлов #include и макросов #define + + +
      BRCC32 — компилятор ресурсных файлов RC + + +
      CONVERT — конвертор форм DFM/TXT + + +
      FCONVERT — перекодировщик символов ANSI/OEM + + +
      IMPDEF — импортер файла определений DEF с информацией
      о функциях, экспортируемых DLL + + +
      IMPLIB — импортер библиотеки LIB из библиотеки DLL + + +
      COFF2OMF — конвертор импортируемой библиотеки COFF + + +
      TLIBIMP — импортер библиотеки типов TLB + +
      Контроль версий в коллективных проектах (PVCS) + +
      Эксперт инсталляторов и дистрибутивов (InstallShield Express) + +
      Библиотеки визуальных компонентов VCL/CLX
      Полный комплект элементов управления Windows + + +
      Мастер создания компонентов (Component Wizard) + + +
      Визуальное наследование и связывание форм + + +
      Расширенная справочная служба + + +
      Исходные тексты примеров приложений + + +
      Исходные тексты компонентов + +
      Расширения VCL
      Контейнер для вложенных форм TFrame + + +
      Список действий TActionList + + +
      Менеджер действий TActionManager + +
      Причаливание форм и компонентов (свойство DockSite) + + +
      Якоря компонентных окон (свойство Anchors) + + +
      Ограничители размеров (свойство Constraints) + + +
      Поддержка мыши с колесом постраничной прокрутки окон
      (события OnMouseWheel) + + +
      Плавающие инструментальные панели + + +
      Компоненты для связи с приложениями MS Office + + +
      Компоненты управления в стиле Windows 3.1 + + +
      Расширенное Хранилище объектов (Object Repository)
      Модули данных + + +
      DLL + + +
      Мастер консольных приложений + + +
      Мастер создания компонентов ActiveX + + +
      Редактор и компилятор библиотеки активных шаблонов ATL + + +
      Мастер сервера OLE Automation + + +
      Удаленные модули данных + +
      Мастер приложения web-сервера + +
      Мастер приложения SOAP-сервера +
      Мастер импорта WSDL-документов + +
      Усовершенствованные мастера универсальных объектов
      Новый формат библиотеки типов TypeLib 2 + +
      Полная поддержка механизма связи и обработка событий
      автоматизированных объектов OLE Automation + +
      Мастер создания COM-объектов с интерфейсами + +
      Мастер создания и распространения по сети компонентов MTS +
      Усовершенствованные интерактивные механизмы интегрированной отладки
      Инспектор объектов (Debug Inspector) + +
      Отладчик низкого уровня (CPU View) + + +
      Диагностика утечки ресурсов (CodeGuard) с контролем
      за распределением памяти для динамических объектов + +
      Отладка DLL в многомодульных приложениях + +
      Отладка параллельных и взаимосвязанных процессов + +
      Отладка распределенных COM-объектов +
      Отладчик сетевых приложений (Web App Debugger) +
      Суфлер завершения кода и параметров функций + + +
      “Указка” объявлений символов (ToolTip Symbol Insight) + + +
      “Указка” выражений (ToolTip Expression Evaluation) + + +
      “Указка” точек останова (Breakpoint Tooltips) + + +
      Контроль за событиями останова (Breakpoint Actions) + + +
      Журнал мониторинга событий (Event Log) + +
      Контроль за изменением данных (DataWatch Breakpoints) + +
      Контроль локальных переменных (Local Variable View) + +
      Прогон с остановами в точках возврата из процедур + + +
      Средства разработки приложений баз данных
      Усовершенствованный механизм Borland Database Engine (BDE)
      с поддержкой кэшированных обновлений и вызовов Windows API
      низкого уровня + +
      Компоненты доступа к наборам данных BDE + +
      Компоненты соединений с наборами данных ADO посредством альтернативного механизма Microsoft OLE DB + +
      Компоненты эффективного доступа к базам данных InterBase
      в соединении с локальным или многопользовательским сервером + +
      Компоненты быстрого однонаправленного доступа dbExpress + +
      Унифицированные компоненты представления данных + +
      Специальные средства представления информации баз данных
      Анализ многомерных данных Decision Cube +
      Генераторы отчетов QuickReports 3.0 + +
      Графические диаграммы TeeCharts + +
      Дизайнер модуля данных для наглядного отображения иерархии компонентов и реляционных соотношений + +
      Создание таблиц Paradox и dBASE (Database Desktop) + +
      Проводник по базам данных (SQL Explorer) с масштабируемым словарем (Data Dictionary) + +
      Интерактивное построение SQL запросов любого уровня сложности
      (SQL Builder) +
      Испытание и оптимизация SQL запросов (SQL Monitor) +
      Мастер передачи данных между различными источниками и платформами (DataPump) + +
      Высокопроизводительные 32-разрядные драйверы прямого доступа
      Microsoft ODBC + +
      dBASE, Paradox, Microsoft Access и FoxPro + +
      SQL Links для InterBase 6.5, Oracle 8i, Microsoft SQL Server 7, Sybase, Informix 9 и DB2 +
      MIDAS (Служба многозвенных распределенных приложений)
      Компоненты DataSnap + +
      Поддержка XML-пакетирования в сетевых соединениях +
      Провайдер данных для связанных и вложенных таблиц +
      Брокер бизнес-объектов (Business ObjectBroker) для выравнивания нагрузки серверов и слежения за отказами +
      Удаленный брокер данных (Remote DataBroker) для администрирования распределенных приложений +
      Брокер ограничений (Constraint Broker) для автоматического поддержания целостности данных клиента +
      Разрешение конфликтов в транзакциях (Transaction Resolver) +
      Компоненты и мастера приложений для Интернета
      Компоненты клиентских приложений InternetExpress + +
      Компоненты поддержки web-служб WebServices + +
      Компоненты серверных приложений WebSnap +
      Распространение по сети (Web Deployment) готовых к запуску клиентских приложений + +
      Мастер серверных приложений (Web Server Application) в стандарте ISAPI, NSAPI, CGI, WinCGI, Apache + +
      Модуль данных WebModule для централизованного хранения информации, распространяемой по сети + +
      Подключение активных форм к серверному приложению + +
      Компоненты клиентских приложений FastNet, действующих в рамках протоколов TCP/IP, HTTP, FTP, NNTP, SMTP, POP3 + +
      Компоненты переносимых приложений Indy + +
      CORBA (Служба распределенных объектов)
      Брокер удаленных объектов VisiBroker 4.5 со средствами обработки событий и именования объектов +
      Интеграция и компиляция файлов на языке IDL, их экспортирование редактором ATL. Двунаправленные механизмы обновления (Two-Ways IDL Updates) +
      Хранилище объектных интерфейсов (IDL Repository) +
      Передача объектов по значению (Objects By Value) между процессами, платформами, машинами и языками +
      Средства удаленной отладки (для платформ UNIX, NT, JAVA) +
      Мастер объектов +
      Мастера клиентского и серверного приложений +
      Инструменты визуальной разработки
      Уникальная среда разработки C++Builder IDE объединяет Дизайнер форм, Инспектор объектов, Палитру компонентов, Менеджер проектов и полностью интегрированные Редактор кода и Отладчик —  основные инструменты RAD, обеспечивающие полный контроль над кодом и ресурсами.
      Расширенный Менеджер проектов (Advanced Project Manager) берет на себя рутину управления большими и сложными проектами, объединенными в группы, предоставляя разработчику свободу выбора формата составляющих файлов: CPP, PAS, DLL, LIB, RES и OBJ. Реализована возможность разработки нескольких проектов одновременно: например, одного для исполняемого EXE-кода, а другого — для динамически подгружаемой библиотеки DLL. Таким образом, полнофункциональные результирующие приложения можно получать в более короткие сроки.
      Механизмы двунаправленной разработки (Two-Way-Tools) обеспечивают контроль кода посредством гибкого, интегрированного и синхронизированного взаимодействия между инструментами визуального проектирования и Редактором кода.
      Конструирование способом “перетаскивания” (drag-and-drop) позволяет создавать приложение простым перетаскиванием захваченных мышью визуальных компонентов — из Палитры на форму приложения. Инспектор объектов предоставляет возможность оперировать свойствами и событиями компонентов, автоматически создавая заготовки функций обработки событий, которые наполняются кодом и редактируются в процессе разработки.
      Свойства, методы и события — это именно те элементы языка, которые обеспечивают ускоренную разработку приложений в рамках объектно-ориентированного программирования. Свойства позволяют легко устанавливать разнообразные характеристики компонентов. Методы производят определенные, иногда довольно сложные, операции над объектом. События связывают воздействия пользователя на объекты с кодами реакции на эти воздействия. События возникают при простом нажатии кнопок или в результате таких специфических изменений состояния объектов, как обновление инфо
      рмации в базах данных. Работая совместно, свойства, методы и события образуют среду быстрого и интуитивно понятного программирования для Windows. Чистый и доступный код приложений, который C++Builder строит на основе компонентной модели, исключает скрытые и трудные в отладке макросы.
      Испытание прототипа позволяет без труда переходить к полностью функциональному, профессионально оформленному программному продукту, действуя в пределах единой интегрированной среды. Чтобы удостовериться, что программа производит ожидаемые результаты, раньше приходилось многократно проходить по циклу “редактирование — компиляция — компоновка — прогон — отладка”, непроизводительно расходуя время. C++Builder объединяет последовательные этапы разработки в единый производственный процесс. В результате удается строить приложения, базирующиеся на текущи
      х требованиях заказчика, вместе с тем гибкие настолько, чтобы быстро адаптировать их к новым запросам.
      Средства интегрированной отладки существенно облегчают этот самый утомительный этап разработки. Особенно трудно “разминировать” распределенные системы (часть логики реализована программой на другом компьютере) и многопоточные приложения (различные ветви выполняются одновременно). Одна мысль, что придется отыскивать ошибки в подобных комплексах, способна заставить программиста не рисковать и придерживаться традиционных подходов при проектировании. Только C++Builder позволяет уверенно использовать современные технологии, предоставляя все необходим
      ое для процесса отладки. Встроенный отладчик низкого уровня View CPU дает возможность проникнуть в специфику работы вашего приложения еще глубже, на уровне ассемблерных команд.
      Открытые инструменты API могут быть непосредственно интегрированы в визуальную среду системы. Например, вы сможете подключить привычный текстовый редактор или создать собственного мастера для автоматизации повторяющихся процедур.
      Расширенная математическая библиотека содержит дополнительные унифицированные функции статистических и финансовых вычислений.
      Продуктивность многократного использования
      Ключевой принцип визуального программирования на базе компонентной модели заключается в возможности многократного использования разнообразных элементов и кодовых конструкций с целью повышения производительности разработки.
      Библиотека визуальных компонентов VCL содержит более 360 (в варианте Enterprise) многократно используемых компонентов, которые инкапсулируют все элементы пользовательского интерфейса операционной системы Windows. Кроме того, VCL предоставляет в распоряжение программистов такие оригинальные объекты, как записные книжки с вкладками, табличные сетки для отображения содержимого баз данных и даже органы управления устройствами мультимедиа. В среде объектно-ориентированного программирования C++Builder компоненты можно использовать непосредственно, меняя их свойства,
      облик и поведение, или же разрабатывать производные элементы, обладающие нужными отличительными характеристиками. VCL приобретает статус нового промышленного стандарта и в настоящее время применяется почти миллионом пользователей, существенно ускоряя разработку надежных приложений любой степени сложности. VCL является открытой библиотекой, ее можно легко расширять, причем мастер создания новых компонентов (Component Wizard) и наличие исходных текстов существенно облегчают эту задачу.
      Многократное использование компонентов. Любой компонент, произведенный от базового класса VCL/CLX, можно немедленно установить на Палитру. Новый компонент может иметь визуальное представление (как кнопка) или оставаться невидимым (как таймер). В большинстве случаев разработчики лишь слегка меняют поведение стандартных компонентов. Превращение любого компонента в элемент ActiveX происходит за один шаг. Компонентные шаблоны позволяют разработчикам комбинировать группы элементов — именно так поступают прикладные программисты при проектировании форм прило
      жений.
      Многократное использование проектов. Текущий проект приложения (состоящего из форм, меню, структур баз данных и кодов обработки событий) можно в любой момент сохранить в виде шаблона, используемого как отправная точка для продуктивной разработки будущих проектов. Специализированные мастера приложений помогают настраивать параметры шаблона в диалоговом режиме.
      Многократное использование форм. Любую форму можно превратить в компонент. Более того, специальный мастер активных форм способен преобразовать форму в элемент ActiveX для использования в таких коммерческих программах, как Microsoft Office, Power Builder, Internet Explorer, Visual Basic, Delphi и др.
      Визуальное наследование форм воплощает важнейшие аспекты объектно-ориентированного программирования: множественное наследование, инкапсуляцию и полиморфизм. Характеристики новой формы могут быть унаследованы от любой другой существующей формы, что обеспечивает централизованную репродукцию изменений пользовательского интерфейса, облегчает контроль за кодом и уменьшает временные затраты на введение новых качественных атрибутов.
      Хранилище объектов (Object Repository) является инструментом централизованного хранения и многократного использования модулей данных, объектов, форм, DLL и программной бизнес-логики. Поскольку построение приложения на существующем фундаменте существенно экономит временные затраты, рекомендуется многократно использовать готовые структуры из Хранилища объектов. Создавая прототип приложения, вы можете наследовать, ссылаться или просто копировать нужную структуру — примерно так же архитектор проектирует новое здание.
      Многократное использование кода объектно-ориентированных библиотек C++. VCL совместима с популярными библиотеками STL (Standard Template Library), MFC (Microsoft Foundation Classes) и OWL (Object Windows Library), включает надежную унифицированную схему обнаружения ошибок и обслуживания исключений. Преобразование проектов Microsoft Visual C++ выполняется автоматически, причем оригинальный код совершенно не меняется. Программисты, работающие с Visual C++, могут использовать C++Builder 6, не переписывая свои программы, не перестраивая файлы проектов и не отказываясь от своих навыков программирования.
      16 [–32 768; 32 767]
      unsigned int 32 [0; 4 294 967 295]
      int 32 [–2 147 483 648; 2 147 483 647]
      unsigned long 32 Тот же, что unsigned int
      long 32 Тот же, что int
      enum 32 Тот же, что int
      float 32 [1,18 ·10–38; 3,40 ·1038]
      double 64 [2,23·10–308; 1,79 ·10308]
      long double 80 [3,37·10–4932; 1,18·104932]
      Перевод с Паскаля на C++
      Быть может, вы действительно решили ретранслировать все свои программы из Delphi в C++Builder. Или, скорее всего, вам понадобилось наскоро переложить какие-то интересные примеры Delphi на язык C++. В любом случае следует остерегаться поджидающих вас ловушек и “ложных друзей переводчика”. Безусловно, вы преодолеете принципиальные различия синтаксиса объектно-ориентированных языков, а компилятор поможет вам в этом. Опасность скорее таится в ошибочной трактовке простых операторов и понятий, на которые следует обратить внимание.
      Оператор членства используется для доступа к любой функции, свойству или переменной, принадлежащим некоторому классу — объявленному на Паскале или на C++. Все объекты Паскаля создаются в куче (heap), и для обращения к перечисленным членам класса используется оператор “точка” (.), например:
      Label.Text := 'Hello There!';
      На C++ дело обстоит несколько сложнее, поскольку объекты могут быть созданы не только в куче, но и в стеке. Для обращения к объекту C++, созданному в стеке, служит оператор прямого членства “точка”, например:
      TMyClass myClass;
      myClass.DoSomething();
      Синтаксически приведенная кодовая конструкция сходна с предыдущей. Различие заключается в способе распределения памяти для хранения объекта. Для создания объекта в куче C++ использует оператор new, а для доступа к нему — оператор косвенного членства (->):
      TMyClass* myClass = new TMyClass;
      myClass->DoSomething();
      delete myClass;
      Важно отметить, что если вы можете создавать собственные объекты в стеке или в куче по своему усмотрению, то компонентные объекты (и производные от VCL-классов) размещаются только в куче. Поэтому в операциях с объектами VCL всегда используется оператор косвенного членства.
      Оператор присваивания в Паскале записывается в виде двоеточия со знаком равенства (:=), а на языке С — это одиночный знак равенства (=). Таким образом, код Delphi:
      Label.Top := 20;
      должен выглядеть на C++ так:
      Label->Top = 20;
      Приобретенная в Паскале привычка записи оператора присваивания приводит к раздражающему обилию синтаксических ошибок на C++, впрочем, легко обнаруживаемых компилятором.
      Оператор логического тождества в Паскале записывается в виде одиночного знака равенства (=), а на языке С — это удвоенный знак равенства (==). Таким образом, код Delphi:
      if Label1.Text = Label2.Text then
        begin
        ...
        end;
      должен записываться на C++ так:
      if (Label1->Text == Label2->Text)
      {
        ...
      }
      Если вы случайно написали одиночный знак равенства в предыдущей ­ин­струкции сравнения, то она будет воспринята как операция присваивания — не совсем то, что вы подразумевали. Предупреждение “Possibly incorrect assignment”, которое выдаст компилятор, здесь надо трактовать как ошибку. Вообще следует приучить себя доводить программу до полного отсутствия такого рода предупреждений — неизвестно, к каким последствиям они могут привести.
      Одиночные и двойные кавычки служат для обозначения текстовых строк. Код Delphi:
      Label.Text := 'Иван Иванов';
      должен выглядеть на C++ так:
      Label->Text = "Иван Иванов";
      Это различие будет, вероятно, раздражать вас не меньше, чем разница в записи операторов присваивания. Запутывая ситуацию еще более, C++ также использует одиночные кавычки, но совсем для другой цели.
      Символьный тип служит для объявления байтовых величин. В Паскале значения символов типа Char заключены в диапазоне от 0 до 255. В языке С символ без знака unsigned char эквивалентен описанию Char Паскаля, однако символ со знаком signed char имеет другой диапазон значений: от –127 до +128. Два оператора присваивания значений символьной переменной на Паскале выглядят как:
      c: Char;
      c := #65;
      c := Char(Ord('A'));
      что эквивалентно следующему коду на C++:
      char c;
      c = 65;
      c = 'A';   // Здесь используются одиночные кавычки
      Прописные и строчные буквы в C++ различаются, поэтому C++Builder требует внимательного обращения с клавишей Shift. Для Паскаля же не имеет значения, верхний или нижний регистр клавиатуры использовался при подготовке текста программы. Если в C++ программе вы используете переменную, объявленную с прописной буквы, то, например, следующая инструкция вызовет ошибку компиляции “Undefined symbol 'top'”:
      top = 20;
      Булевы значения “истина” и “ложь” могут записываться на Паскале как true, True, TRUE, TruE и т. д. — как вам больше нравится, хотя по традиции используется нотация True и False (с прописной буквы). Компилятор C++Builder допускает типизированные булевы переменные bool, значения которых принято писать строчными буквами.
      Ключевое слово Паскаля with на C++ не имеет эквивалента, поэтому при переводе программы в C++Builder вам придется добавлять спецификатор класса ко всем свойствам и методам. Таким образом, фрагмент кода на Паскале
      with Label do
        begin
          Top := 20;
          Left := 20;
          Caption := 'Здравствуй, мир!';
        end;
      на C++ следует переписать в следующем виде:
      Label->Top = 20;
      Label->Left = 20;
      Label->Caption = "Здравствуй, мир!";
      Ключевое слово Паскаля as на C++ снова не имеет эквивалента, поэтому, переводя программу в C++Builder, следует использовать оператор динамического преобразования типа dynamic_cast. Этот оператор кажется менее удобным, однако его преимущество заключается в том, что проверка допустимости преобразования данного типа не связана с анализом исключений. Таким образом, фрагмент кода на Паскале
      with Sender as TLabel do
        Caption := 'Здравствуй, мир!';
      на C++ следует переписать в следующем виде:
      TLabel* label = dynamic_cast(Sender);
        if (label)
          label->Caption = "Здравствуй, мир!";
      C++ не поддерживает концепцию имеющегося в Паскале типа множества как такового. Вместо множества C++-программисты используют битовые поля, которые не менее эффективны, однако более сложны для понимания и обращения. Поскольку в программах на Паскале множества используются повсеместно, в C++Builder для их интерпретации введен шаблонный класс Set. Множества очищаются посредством метода Clear. Для добавления элементов к множеству требуется оператор вставки (<<), а для удаления — оператор экстракции (>>).
      Более подробную информацию о сложных типах Delphi (таких как ­множе­ство) и их реализации расширенными средствами языка C++ можно найти в главе 3, где читатель знакомится с принятой терминологией ООП.
      Borland C++Builder и Microsoft Visual C++
      Сравнение систем программирования разных производителей — неблагодарная задача. Слишком много факторов влияет на результирующую оценку, причем некоторые кажутся незначимыми или носят субъективный характер. Сопоставления такого рода напоминают диалоги по известной схеме: “А у нас в квартире газ. А у вас?”. К сожалению, я располагаю данными только одной из заинтересованных сторон, которые и приведены в табл. 1.3.
      Таблица 1.3. Сравнительные характеристики C++Builder и Microsoft Visual C++
     
      Характеристики C++Builder Visual C++
      Язык C++ с расширениями стандарта ANSI/ISO
      Промышленный стандарт языка C++ Ц Ц
      Высокопроизводительный 32-разрядный
      оптимизирующий компилятор Ц Ц
      Компиляция в фоновом режиме Ц Ц
      Инкрементальный компоновщик Ц
      Открытый доступ к функциям Windows API Ц Ц
      Стандартные библиотеки классов OWL, MFC, STL, COFF MFC
      Система команд процессора Pentium Ц Ц
      Ускоренная разработка приложений RAD
      Библиотека визуальных компонентов VCL и руководство по разработке новых компонентов Более 360
      Полный комплект управляющих элементов
      для 32-разрядных операционных систем Windows Ц Ц
      Хранилище объектов Ц
      Расширенный Менеджер проектов Ц Ц
      Визуальное наследование форм Ц
      Навигатор классов (Class Browser) Ц Ц
      Возможность коллективного проектирования (Integrated Team Development) Ц Ц
      Инструменты командной строки Ц Ц
      Генератор дистрибутивов InstallShield Express Ц Ц
      Компоненты и инструменты приложений баз данных
      Компоненты соединений BDE Ц
      Компоненты соединений ADO Ц Ц
      Компоненты соединений dbExpress Ц
      Служба распределенных приложений MIDAS Ц
      Интерфейсы распределенных объектов DCOM, CORBA DCOM
      Служба распределенных приложений CORBA VisiBroker
      Специальные компоненты представления данных
      Куб решений (Decision Cube) +
      Генераторы отчетов QuickReports +
      Диаграммы TeeCharts +
      Проводник Database Explorer с масштабируемым
      словарем баз данных +
      SQL Builder +
      Монитор SQL для испытания и настройки SQL +
      Механизм кэшируемых обновлений + ,td.
      Высокопроизводительные драйверы RDBMS Native, ODBC ODBC
      RDBMS SQL Server + +
      Сервер транзакций Microsoft Transaction Server + +
      Компоненты и мастера промышленных стандартов
      ActiveX + +
      XML, HTML +
      ISAPI, NSAPI, CGI +
      Поддержка транспортных сетевых протоколов TCP/IP, HTTP, FTP, NNTP, SMTP, POP3 +
      Интегрированные средства отладки
      Отладчик исходного C++ кода, включая DLL + +
      Отладчик низкого уровня CPU View + +
      Диагностика утечки ресурсов памяти CodeGuard +
      Удаленная отладка распределенных приложений +
      Все известные компиляторы с языка C++ в той или иной степени отклоняются от стандарта ANSI/ISO и ни один не может претендовать на стопроцентное соответствие. Однако вы вовсе не обязаны использовать все расширения. Кого считать большим “уклонистом” — Borland или Microsoft — тема совершенно бесплодной дискуссии, ее результаты известны из отечественной истории. Поэтому если никакая высшая сила или тайное пристрастие не принуждают вас писать программы в строгом соответствии с последней редакцией стандарта, устанавливайте C++Builder и не оглядывайтесь назад. Все выгоды та
      кого решения вы ощутите немедленно.
     

Borland C++ Builder 6. Для профессионалов. / В. Шамис - СПб: Питер, 2003. - 800 с.

Экономика и управление | Право/a> | Бухгалтерский учет и налоги |