ebook img

C++Builder. Учебный курс: Учебное пособие PDF

293 Pages·2014·9.195 MB·Russian
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview C++Builder. Учебный курс: Учебное пособие

Министерство образования и науки Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования «Пермский национальный исследовательский политехнический университет» В.В. Павлоградский, В.В. Пальчиковский C++BUILDER. УЧЕБНЫЙ КУРС Утверждено Редакционно-издательским советом университета в качестве учебного пособия Издательство Пермского национального исследовательского политехнического университета 2014 УДК 004.438(75.8) П12 Рецензенты: д-р техн. наук, профессор Р.В. Булъбович (Пермский национальный исследовательский политехнический университет); д-р техн. наук С.М. Голдобин (ОАО НПО «Искра», г. Пермь) Павлоградский, В.В. П12 C++Builder. Учебный курс: учеб, пособие / В.В. Павлоград­ ский, В.В. Пальчиковский. - Пермь: Изд-во Перм. нац. исслед. политехи, ун-та, 2014. - 293 с. ISBN 978-5-398-01215-6 Рассматриваются вопросы разработки приложений для опе­ рационной системы Windows в среде программирования C++Builder. ^Рассмотрены особенности компонентного подхода к проектированию программ и визуальной технологии программи­ рования. Большое внимание уделено практическому аспекту разра­ ботки приложений, дан обзор основных компонентов C++Builder, приведены примеры их использования для разработки приложений с учетом особенностей работы операционной системы Windows!] Предназначено для студентов по направлениям подготовки 141100 «Энергетическое машиностроение» и 160700 «Двигатели летательных аппаратов». Может быть использовано для самостоя­ тельной работы. УДК 004.438(75.8) ISBN 978-5-398-01215-6 © ПНИПУ, 2014 ОГЛАВЛЕНИЕ Введение.....................................................................................................8 1. Знакомство с C++Builder..................................................................11 1.1. Основные элементы интегрированной среды C++Builder...........11 1.1.1. Главное меню.........................................................................14 1.1.2. Палитра компонентов............................................................15 1.1.3. Окно формы............................................................................18 1.1.4. Редактор кода..........................................................................19 1.1.5. Инспектор объектов..............................................................21 1.1.6. Окно дерева объектов...........................................................23 1.2. Структура приложения C++Builder..............................................25 1.2.1. Файл проекта.........................................................................27 1.2.2. Файл модуля..........................................................................31 1.2.2.1. Заголовочный файл...........................................................32 1.2.2.2. Файл реализации.................................................................35 1.3. Управление проектами...................................................................37 1.3.1. Создание нового проекта.......................................................37 1.3.2. Открытие существующего проекта......................................38 1.3.3. Сохранение проекта..............................................................38 1.3.4. Запуск приложения................................................................40 1.4. Создание приложений в C++Builder.............................................40 2. Программирование калькулятора...................................................50 2.1. Конструирование формы...............................................................50 2.2. Написание программного кода....................................................52 3. Программирование текстового редактора.....................................59 3.1. Конструирование формы...............................................................59 3.2. Создание меню приложения.........................................................60 3.3. Поддержка пунктов меню Файл....................................................64 3.3.1. Создание нового файла.........................................................64 3.3.2. Открытие файла.....................................................................65 3.3.3. Сохранение файла.................................................................67 3.3.4. Написание обработчика для пункта меню Сохранить как..........................................................................68 3.4. Поддержка подпунктов меню Правка...........................................69 3.5. Поддержка подпунктов меню Формат..........................................70 3.6. Поддержка подпунктов меню Вид.................................................70 3.7. Поддержка подпунктов меню Справка..........................................71 3.8. Доработка текстового редактора.....................................................74 3.8.1. Реализация пункта меню Файл->Выход...............................75 3.8.2. Управление доступом к командам........................................77 4. Основы работы с компонентами....................................................82 4.1. Классификация и основные свойства компонентов.....................82 4.1.1. Классификация компонентов.................................................82 4.1.2. Основные свойства компонентов..........................................85 4.1.3. Типы свойств............................................................................90 4.2. Компоненты отображения и редактирования текстовой информации..............................................................................95 4.2.1. Компоненты отображения текстовой информации.............95 4.2.1.1. Компонент TLabel................................................................95 4.2.1.2. Компонент TStaticText........................................................96 4.2.2. Компоненты редактирования...............................................97 4.2.2.1. Компонент TEdit..................................................................98 4.2.2.2. Компонент TMaskEdit.........................................................99 4.2.2.3. Компонент ТМето............................................................100 4.2.3. Таблицы...............................................................................103 4.2.3.1. Компонент TStringGrid.......................................................104 4.2.3.2. Компонент TDrawGrid.......................................................107 4.3. Формы и диалоговые окна.............................................................109 4.3.1. Формы....................................................................................109 4.3.2. Диалоговые окна...................................................................111 4.4. Основы работы с кнопками...........................................................115 4.4.1. Компонент TButton...............................................................116 4.4.2. Компонент TBitBtn...............................................................116 4.4.3. Компонент TSpeedButton......................................................117 4.4.4. Свойство Default....................................................................118 4.4.5. Свойство Cancel.....................................................................119 4.4.6. Свойство ModalResult............................................................121 4.5. Диалоговые компоненты...............................................................123 4.5.1. Компонент TOpenDialog и TSaveDialog..........................124 4.5.2. Компоненты TOpenPictureDialog и TSavePictureDialog.............................................................126 4.5.3. Компонент TColorDialog...................................................127 4.5.4. Компонент TFontDialog.....................................................127 4.6. Меню, индикаторы, радиокнопки, компоненты выбора из списков, панели.......................................................................129 4.6.1. Компоненты для создания меню........................................129 4.6.1.1. Компонент TMainMenu...................................................130 4.6.1.2. Компонент TPopupMenu..................................................131 4.6.2. Индикаторы.......................................................................131 4.6.2.1. Компонент TCheckBox....................................................132 4.6.2.2. Компонент TCheckListBox...............................................134 4.6.3. Радиокнопки........................................................................134 4.6.3.1. Компонент TRadioButton..................................................135 4.6.3.2. Компонент TRadioGroup..................................................137 4.6.4. Компоненты выбора из списков.........................................141 4.6.4.1. Компонент TComboBox...................................................141 4.6.4.2. Компонент TListBox.........................................................145 4.6.5. Панели...................................................................................145 5. Графические средства C++Builder................................................151 5.1. Графические компоненты............................................................152 5.1.1. Объект Canvas......................................................................152 5.2. Примеры рисования графических примитивов..........................155 5.2.1. Рисование линий..................................................................156 5.2.2. Рисование прямоугольников..............................................158 5.2.3. Рисование многоугольника.................................................159 5.2.4. Рисование полилинии..........................................................159 5.2.5. Рисование эллипса...............................................................160 5.2.6. Рисование дуги.....................................................................161 5.2.7. Использование метода FloodFill..........................................162 5.2.8. Вывод текста.........................................................................164 6. Построение графиков функций.....................................................168 6.1. Основные обозначения в программе...........................................168 6.2. Построение сетки..........................................................................169 6.3. Вывод обозначений масштабной сетки........................................171 6.4. Построение графика функции.......................................................174 7. Использование компонента TChart для построения диаграмм и графиков............................................178 7.1. Общие сведения о компоненте TChart.........................................178 7.2. Построение диаграмм....................................................................180 7.3. Построение графиков.....................................................................185 8. Создание анимации..........................................................................189 8.1. Моделирование движения шарика...............................................189 8.2. Моделирование броуновского движения.....................................192 8.2.1. Определение класса TBall.....................................................193 8.2.2. Определение методов класса TBall.....................................195 8.2.3. Создание анимации...............................................................196 8.3. Анимация графика..........................................................................199 9. Разработка графического редактора..............................................203 9.1. Конструирование внешнего вида приложения...........................203 9.2. Создание обработчиков пунктов меню........................................205 9.3. Создание нестандартных курсоров..............................................205 9.4. Подключение нестандартных курсоров......................................207 9.5. Программирование функций графического редактора.............210 10. Основы работы с базами данных................................................213 10.1. Написание приложения для создания таблиц базы данных......................................................................214 10.2. Создание приложения для работы с базой данных.................217 10.2.1. Создание обработчиков событий......................................218 10.2.2. Настройка параметров столбцов в DBGrid......................219 10.2.3. Реализация связи Master-Detail между наборами данных....................................................220 10.2.4. Управление связью Master-Detail между наборами данных при выполнении приложения..............................221 10.2.5. Сортировка записей в таблице базы данных...................221 10.2.6. Поиск записей в таблице базы данных............................223 10.2.7. Фильтрация записей в таблице базы данных..................224 11. Основы работы с библиотекой OpenGL....................................227 11.1. Подключение OpenGL..............................................................228 11.1.1. Вывод с использованием функций GDI...........................229 11.1.2. Контекст устройства и контекст воспроизведения.........231 11.1.3. Минимальная программа OpenGL....................................233 11.1.4. Типы OpenGL.....................................................................238 11.1.5. Тип TColor и цвет в OpenGL............................................239 11.1.6. Синтаксис команд OpenGL...............................................241 11.2. Двумерные построения..............................................................242 11.2.1. Координаты области вывода...........................................242 11.2.2. Вывод графических примитивов......................................242 11.2.2.1. Рисование точки..............................................................243 11.2.2.2. Рисование линий.............................................................246 11.2.2.3. Рисование треугольников..............................................247 11.2.2.4. Рисование прямоугольников..........................................250 11.2.2.5. Рисование четырехугольников.......................................250 11.2.2.6. Рисование многоугольников..........................................250 11.3. Преобразования..........................................................................251 11.3.1. Масштабирование.............................................................251 11.3.2. Поворот...............................................................................252 11.3.3. Перенос...............................................................................254 11.3.4. Сохранение и восстановление текущего положения.....254 11.4. Построения в пространстве........................................................255 11.4.1. Параметры вида.................................................................255 11.4.1.1. Использование функции glFrustum...............................256 11.4.1.2. Использование функции glOrfho...................................261 11.4.1.3. Использование функции gluOrtho2D............................262 11.4.1.4. Использование функции gluPerspective.........................264 11.4.1.5. Использование функции gluLookAt..............................267 11.4.2. Матрицы OpenGL..............................................................268 11.4.3. Буфер глубины...................................................................269 11.4.4. Освещение..........................................................................271 11.5. Надстройки над OpenGL............................................................276 11.6. Создание анимации.....................................................................282 11.6.1. Использование системного таймера C-H-Builder............282 11.6.2. Использование мультимедийного таймера......................288 Список литературы...................................................... 292 ВВЕДЕНИЕ Несколько лет назад рядовому программисту оставалось только мечтать о создании своих собственных программ, рабо­ тающих в Windows. Единственным средством разработки был Borland C++ for Windows, ориентированный на профессионалов, обладающих серьезными знаниями и опытом. Бурное развитие вычислительной техники, потребность в эф­ фективных средствах разработки программного обеспечения при­ вели к появлению целого ряда систем программирования, ориен­ тированных на так называемую «быструю разработку», среди ко­ торых особо следует отметить Microsoft Visual Basic и Delphi. В основе систем быстрой разработки (RAD-систем, Rapid Application Development - среда быстрой разработки приложений) лежит технология визуального проектирования и событийного программирования, суть которой заключается в том, что среда разработки берет на себя большую часть работы по генерации кода программы, оставляя программисту работу по конструированию диалоговых окон и написанию функций обработки событий. Успех и популярность Delphi вызвал желание фирмы Borland распространить методы быстрой разработки на область профес­ сионального программирования, что и привело к появлению Borland C++Builder. C++Builder - это среда быстрой разработки, в которой в качестве языка программирования используется язык C++Builder (C++Builder Language). Язык C++Builder - это расши­ ренный C++: например, в C++Builder есть строковый (AnsiString) и логический (bool) типы, которых нет в классическом C++. С помощью C++Builder можно быстро создавать Windows- программы, причем как консольные приложения Win32, так и ис­ пользовать графический интерфейс пользователя (GUI - graphical user interface). При создании GUI-приложений Win32 с помощью C++Builder доступна вся мощь языка C++, заключенная в среду RAD. Это означает, что можно создавать интерфейс пользователя (меню, диалоговые окна, главное окно и т.д.), используя технику drag-and-drop, которая позволяет создавать приложение простым перетаскиванием захваченных мышью визуальных компонентов из палитры компонентов на форму приложения. Инспектор объектов предоставляет возможность оперировать со свойствами и собы­ тиями компонентов уже на этапе разработки приложения, автома­ тически задавая значения свойств компонент, создавая заготовки функций обработки событий, которые необходимо наполнять ко­ дом. C++Builder изначально разрабатывался компанией Borland Software, а затем её подразделением CodeGear, которое сейчас принадлежит компании Embarcadero Technologies. Первая версия C++Builder вышла в 1997 г. C++Builder первоначально создавалась только для платформы Microsoft Windows. Поздние версии, со­ держащие кроссплатформенную компонентную библиотеку Borland, поддерживают и Windows, и Linux. В данном пособии рассматриваются примеры разработки приложений с использованием версии C++Builder 2007. Создание программ в C++Builder базируется на объектно- ориентированной технологии с использованием визуального про­ граммирования. Структурной единицей визуального программи­ рования является компонент. Компоненты разработаны на основе модели свойств, методов и событий. Используя редактор форм, можно поместить компо­ нент в форму и изменять его свойства, доступные на этапе разра­ ботки. При необходимости можно управлять компонентом во вре­ мя выполнения программы, изменяя его свойства и вызывая его методы. Кроме того, каждый компонент реагирует на определен­ ные события (например, нажатие клавиши или перемещение мы­ ши). Таким образом, компоненты - это объекты, которые можно поместить в форму и управлять ими через свойства, методы и со­ бытия. Цель данного учебного пособия - познакомить студентов с технологией визуального проектирования и событийного про­ граммирования, показать на конкретных примерах возможности среды разработки, а также дать методику создания программ. Сле­ дует обратить внимание, что хотя учебное пособие ориентировано на читателя, обладающего определенными знаниями и начальным опытом в области программирования, оно вполне доступно и для начинающих. В каждой главе рассмотрено создание различных видов при­ ложений: текстовый и графический редакторы, работа с базами данных, примеры использования компонентов и графической биб­ лиотеки OpenGL. В конце каждой главы предлагаются контроль­ ные вопросы для самопроверки. Чтобы применить новые знания на практике, в каждую главу включены упражнения.

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.