- •1.1. Что такое программа и как она выглядит?
- •1.2. Комментарии
- •1.3. Зарезервированные слова и типы данных
- •1.4. Объявление переменных
- •1.5. Операции и выражения
- •1.6. Ввод и вывод
- •1.7. Переменные и константы
- •1.8 Логические операторы
- •1.9. Управляющие операторы
- •1.10. Операторы циклов
- •1.11. Операторы перехода
- •2. Функции
- •2.1. Передача параметров
- •2.2. Библиотечные функции
- •2.3. Локальные и глобальные переменные
- •Объявления функций
- •Время жизни и область видимости программных объектов
- •Int local_var; /* по умолчанию auto */
- •2.4. Перегрузка
- •3. Массивы
- •4. Структуры
- •Int numberPeriod; //число переодов начисления процентов
- •Int page; //Количество страниц
- •Void print(); /*Внимание, записывается только прототип функции */
- •Int yearBorn; //год рождения
- •Int yearBorn; //год рождения
- •4.1. Демонстрационные программы
- •Int done;/*переменная, которая информирует о конце списка файлов */
- •6. Объединения
- •Info;//Обявление переменной типа объединение
- •Info;//Обявление переменной типа объединение
- •7. Объектно-ориентированное программирование
- •7.1. Классы и объекты
- •Демонстрационные программы
- •Результат работы программы
- •7.2. Конструкторы и деструкторы
- •Конструктор копирования
- •7.5. Наследование
- •7.3. Создание объектов и обращение к членам объекта
- •8. Абстрактные типы данных
- •9. Пространство имен
- •Void greeting();/*это пространство имен содержит функцию с тем же именем*/
- •Void big_greeting(); /*эта функция не попадает ни в одно из созданных подпространств,т.Е. Принадлежит пространству имен std */
- •//Определение функций
- •Void big_greeting() /* определение данной функции не принадлежит ни одному из созданных пространств имен, следовательно дальнейший код помещается в глобальное пространство имен */
- •10. Строки
- •4.3 Демонстрационные программы
- •4.10. Класс string
- •Класс AnsiString
- •Класс AnsiString
- •Класс Set
- •4.9. Перегрузка операторов
- •Использование "умных" указателей
- •4.8. Полиморфизм
- •Главное меню — компонент MainMenu
- •Диалоги
- •Файлы и потоки
- •Ввод-вывод в файл
- •Ifstream inStream; //Объявление входного потока
- •InStream.Open("character.Dat"); /*присоединение файла к входному потоку */
- •InStream.Close(); //закрытие входного потока
- •If(!out){ //при неудачной попытке
- •If(in.Fail()){ //поток не создан, то сообщение и выход
- •Управление потоком ввода-вывода
- •5.2. Ввод имен файлов
- •5.3. Манипуляторы
- •5. Указатели
- •5.1.Типы указателей и операции с указателями
- •Адресная арифметика
- •Сравнение указателей
- •Преобразование типа указателя
- •Указатель void
- •5.2. Динамические массивы
- •Int array[10]; //объявляется массив с именем array
- •Int a[10]; //объявляется массив с именем a
- •Int *array1; //указатель типа int с именем array1
- •Int *array[5];/*массив с именем array, его элементы указатели*/
- •Int (*point)[4][5]; /*объявление указателя на двумерный массив без имени */
- •Использование указателей в функциях и указатели на функции
- •Указатель классов
- •Шаблоны
- •Шаблоны функций
- •Void Swap (t& X, t& y) /* к моменту обращения тип т будет известен и заменен, например, на int */
- •Void sort(t array[], int maxIndex){ /*передали массив и его размер */
- •6.2. Шаблоны классов
- •6.3 Демонстрационные программы
- •7.1 Обработка исключений
- •Исключения и их стандартная обработка
- •Базовый класс исключений vcl Exception
- •Упражнения
- •Обработка исключительных ситуаций, возбуждаемых оператором new
- •Исходные файлы и объявление переменных
- •Связаные списки
- •Void newHead( //прототип функции создающей узел
- •Void newHead(//прототип функции создания узла
- •Поиск в связанных списках
- •Void newHead(PtrNode& head, //адрес головного узла
- •Директивы препроцессора.
- •Структура файла проекта
- •Структура make-файла
- •Структура модуля
- •Структура h-файла
- •Файл формы
- •Особенности программирования под Windows.
- •Функция WinMain
- •Создание проекта Win32Application.
- •Библиотека mfc.
- •Создаем код
- •Шпаргалка
- •Структура файла проекта
- •Структура make-файла
- •Структура модуля
- •Структура h-файла
- •Файл формы
- •Файл проекта
- •Введение
- •Свойства компонентов
- •События
- •Менеджер проектов
- •Пример: создание простейшего приложения
- •Графика Внедрение картинок
- •Редактор изображений
- •Классы для хранения графических объектов.
- •If (SelectDirectory( //Компонент библиотеки
- •Методы создания собственной графики. Рисование по пикселам
- •Int px, py; //координаты пикселей
- •Рисование с помощью пера
- •Int px, py; //координаты пикселей
- •Рисование кистью
- •Мультимедиа и анимация Общие сведения о звуковых и видеофайлах
- •Способы воспроизведения звуков
- •Создание мультфильма
- •Воспроизведение немых видео клипов — компонент Animate
- •Проигрыватель MediaPlayer
- •Процессы, потоки, распределенные приложения
- •If include "uOverlayl.H" // включение головного файла приложения
- •Функция CreateProcess
- •490 _ Глава 7
- •7.8.4 Элементы ActiveX
- •492 Глава 7
- •494 Глава 7
- •7.9 Компоненты-серверы сом
- •496 Глава 7
- •7.9.2 Свойства и методы сервера Word
- •500 Глава 7
- •Заключение
- •Что такое ansi?
- •Почему вместо русских букв в консольном приложении выводится мусор? Автор: Алексей Кирюшкин Версия текста: 1.0
- •Раздел I.2Выход 1
- •Раздел I.3Выход 2
- •Раздел I.4Выход 3
- •Раздел I.5Выход 4
- •(A)Потоки
- •(C)Ввод-вывод файлов
- •Выбор компонентов для групповых операций
- •Установка разделяемых свойств компонентов
- •Изменение размера компонентов
- •Выравнивание компонентов
- •Пример: Создание текстового редактора Проектирование формы приложения
- •Создание обработчиков событий
- •Создание меню
494 Глава 7
рых ситуациях подобный макрос может быть полезен, если часто приходится рас-
считывать интервалы между различными датами. К тому же, очень легко услож-
нить ваш элемент ActiveX и внести с помощью его библиотеки типов новые полез-
ные вам свойства и методы.
Рис. 7.18
Пример применения макроса,
использующего элемент ActiveX
риянптвиц
£айл Главка ВИД бсг^вка
О & О М sal <Ы : <Э V
.$ Сбьмньм ч- Пер - : Aral
Сегодня 20.03.2002. Я должен к 30.04.2002, т.е.
через 41 день, закончить книгу.
11 12 13 14 15 16 17
1В 19 iffift 21 22 23 24
25 26 27 28 29 30 31
<1; Сегодня: 20.03.2002
5JS ≪-
Стр. :1 Ст 2 Кол 32
Мы рассмотрели создание элементов ActiveX. Теперь рассмотрим включение
в ИСР C++Builder элементов ActiveX, разработанных вами, или заимствуемых из
тех, которые поставляются с Windows, или полученных где-то на стороне.
Выполните команду Component | Import ActiveX Control. Перед вами откроется
окно, представленноена рис. 7.19. Вверху окна расположен список всех зарегист-
рированных в системе элементов. Если вам требуется установить новый, еще не за-
регистрированный элемент, нажмите кнопку Add и в открывшемся окне найдите
файл .осх устанавливаемого элемента.
Если вы выделите в списке какую-то строку, под списком вы увидите полное
имя соответствующего файла .осх, а в окне Class names появится имя класса или
нескольких классов, реализуемых данным элементом. Выпадающий список Palette
page позволяет выбрать или задать новую страницу палитры компонентов, на ко-
торую будет установлен компонент. Окно Unit dir name содержит каталог модулей,
использующих компонент ActiveX. Окно Search path содержит список путей, ис-
пользуемых при поиске файлов.
Рис. 7.19
Окно импорта элемента ActiveX frnpcft ActiveX I
i (Microsoft Outlook View Control [Version 1.0) ~"лГ| '
i Microsoft Scrip* Control 1 .0 (Veision 1.0)
Microsoft Shell Controls And Automation (Version 1.0)
\ Microsoft Terminal Services Active Gent 1 .0 T>pe Library (Versicr-— J :
! Microsoft TV CA Type Library (V≪sion 1.0)
Microsoft Windows Common Controls 6.0 (Version 2-0]
1 • FAT estA".rrii'ft<\Mon!iCalendai'.ocx
•: pass names: ffMonthCaleTid^X
; . I
: galettepage: (ActiveX
; Uni. & name: JDAPfogramFib^orb
Search path: j$(eCB]\Lib;$lBCi3ABin
Install... | [ CfeateLjnit
Add.. : fiemove 1
3
^≪uu≫6M4x≫irt _.J;
t(8CB)\lmporltt[BCB)\ A
1 Cartel j JlelP |
Процессы, потоки, распределенные приложения 495
Кнопка Create unit создает и открывает в окне Редактора Кода модуль элемен-
та. При этом модуль не включается в текущий проект.
Кнопка Install (установка) открывает окно, в котором запрашивается имя имею-
щегося или нового пакета, в который должен устанавливаться регистрируемый
компонент. Далее открывается окно Редактора Пакетов, работа с которым подробно
описана в гл. 8. В этом окне вы можете произвести установку компонента. В резуль-
тате компонент появится в палитре компонентов на той странице, которая была
указана в окне 7.19. Теперь вы можете использовать его в своих проектах.
7.9 Компоненты-серверы сом
7.9.1 Компоненты-серверы СОМ в C++Builder 6 и 5
Начиная с C++Builder 5, взаимодействие с Word, Excel и многими другими
распространенными программами, входящими в стандартную установку Word и
Microsoft Office, может осуществляться из приложений C++Builder с помощью
компонентов, размещенных в библиотеке на странице Office2k, или Office97, или
Servers. Эти компоненты отображают множество импортируемых серверов СОМ.
Все они являются потомками своего базового класса TOleServer. В этом классе
объявлены абстрактные методы и свойства, позволяющие устанавливать связь
с сервером. Поэтому объекты класса TOleServer нельзя создавать непосредствен-
но. В приложениях используются только потомки этого Класса — конкретные сер-
веры СОМ. Они создаются импортом библиотек типов, с которым вы уже знакомы
по предыдущим разделам.
Но прежде, чем рассматривать серверы СОМ, обеспечивающие работу с компо-
нентами Microsoft Office, надо обсудить вопросы совместимости с различными вер-
сиями Windows и Microsoft Office. Когда вы устанавливаете C++Builder 6, вам за-
дается вопрос, для какой версии Office — 2000, или 97 надо проводить установку.
В зависимости от того, какой вариант вы выбрали, в палитре компонентов появит-
ся страница ОН1се2!<;.или Office97, на которой будут располагаться компоненты сер-
веров. В последующим вы можете при желании в любой момент изменить сделан-
ный выбор. Для этого надо выполнить команду Component | Install Packages. Вы уви-
дите окно, представленное на рис. 7.20. Это окно позволяет управлять набором ис-
пользуемых пакетов. Подробнее работа с этим окном рассмотрена в гл. 8, в разд.
8.5. А сейчас ограничимся описанием тех операций, которые надо сделать для из-
менения установленного в системе пакета.
Рис. 7.20
Страница установки пакетов в окне
опций проекта
х]
Packages |
/ Borland ActionBar Components
У! Borland ADO DB Components
V'i Bwland Base Cached ClientDalasel Component
У\ BoilandBDE DB Components
/; Borland C++Builder COM Server Components jampje Package^
DAProgiam Files\Bo(hnd\CButlder6\BinNbcb97ax$ervef60.bpl
Add.., Remove
Runtime packages
: Г Build with runtime packages
Г Default Cancel Help