Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скомпанованное пособие.docx
Скачиваний:
1
Добавлен:
07.05.2019
Размер:
3.3 Mб
Скачать

2.4 Создание программных модулей

В проектах Builder C++ можно использовать программные модули, которые не связаны с какой-либо формой. Они создаются и включаются в проект командой File/New/Unit. Такие модули оформляются по обычным правилам языка C++ и сохраняются в отдельных файлах папки проекта. Для подключения модуля к программе его необходимо включить директивой #include в том модуле проекта, который использует объекты этого модуля.

В программном модуле целесообразно размещать константы, переменные, функции, процедуры и типы, общие для нескольких модулей проекта.

Для приобретения необходимых навыков по созданию программных модулей в среде Builder C++ следует выполнить задание 2.7 .

2.5 Построение интерфейса пользователя

Приложения Builder C++ позволяют человеку работать на компьютере в интерактивном режиме. Это реализуется компонентами графического интерфейса: меню, кнопками, полями ввода, диалоговыми панелями и т. д., которые либо устанавливаются на форме, либо появляются на экране динамически при работе приложения. Такие видимые на экране компоненты называются визуальными, или управляющими. Другие компоненты также используются для организации взаимодействия с пользователем, но являются невидимыми, например, компонента Table, используемая для доступа к наборам данных.

При построении интерфейса пользователя для каждой визуальной или невизуальной компоненты необходимо:

а) найти компоненту в палитре компонент, состоящей из нескольких страниц вкладок;

б) щелкнуть один или два раза левой клавишей мыши по найденной компоненте;

в) после одного щелчка курсор установить в заданное положение на форме и еще раз щелкнуть левой клавишей мыши, в результате чего на форме появится изображение компоненты, например, поле ввода или ее пиктограмма, например, пиктограмма меню;

г) после двойного щелчка появившееся изображение или пиктограмму в центре формы перенести в заданное положение;

д) в окне инспектора объектов Object Inspector на вкладке свойств Properties изменить заданные по умолчанию значения необходимых свойств, например, имени компоненты Name;

е) в том же окне на вкладке событий Events выбрать требуемое событие, например, OnClick и щелкнуть два раза левой клавишей мыши для перехода в модуль конструируемой формы, чтобы написать желаемый обработчик для выбранного события, при этом заголовок обработчика и фигурные скобки «{}» формируются автоматически.

Работу по созданию интерфейса пользователя называют визуальным объектно-ориентированным программированием, или конструированием. Таким образом, в среде Builder C++ приложение находится либо в режиме конструирования, либо в режиме отладки, либо в режиме выполнения. Переход из режима в какой-либо другой режим осуществляются следующим образом:

а) режим конструирования устанавливается сразу после открытия проекта, после закрытия окна работающего приложения или по команде Run/ Program Reset, когда оно находится в отладочном режиме;

б) режим выполнения устанавливается командой Run/ Run;

в) отладочный режим устанавливается либо автоматически при возникновении ошибок во время выполнения приложения, либо командами отладки Run/ Run To Cursor, Run/ Trace Into и Run/ Step Over, при этом выход из режима можно осуществить только командой Run/ Program Reset.

При размещении визуальных компонент на форме следует задавать положение и размер с помощью курсора, а также свойство выравнивания Align по сторонам формы. Невизуальные компоненты можно размещать где угодно на форме, так как их пиктограммы исчезают при работе приложения.

В таблицах 2.2  2.8 приведены краткие описания визуальных и невизуальных компонент Builder C++, которые будут использоваться при выполнении лабораторных работ и курсовом проектировании.

Таблица 2.2 – Компоненты страницы Standart

Имя

Название

Описание

MainMenu

Главное меню

Для построения главного меню формы и ее команд

Label

Метка

Для размещения статического текста

Edit

Однострочный редактор

Для ввода, отображения и редактирования строки текста

Memo

Многострочный редактор

Для ввода, отображения и редакти-рования нескольких строк текста.

Button

Кнопка

Для выполнения команд

Panel

Панель

Для группирования управляющих элементов

Таблица 2.3 – Компоненты страницы Additional

Имя

Название

Описание

SpeedButton

Инструментальная кнопка

Для создания инструментальных панелей

StringGrid

Таблица строк

Для ввода, отображения и редакти-рования таблицы текстовых строк

Image

Изображение

Для работы с графикой

Chart

График

Для графиков и диаграмм

Таблица 2.4 – Компоненты страницы Win32

Имя

Название

Описание

RichEdit

Многострочный

RTF-редактор

Для ввода, отображения и редак-тирования нескольких строк текста в формате RTF с изменением шрифта, цвета и т. п.

Таблица 2.5 – Компоненты страницы Dialogs

Имя

Название

Описание

OpenDialog

Диалог для открытия

Для создания окна диалога открытия файла

SaveDialog

Диалог для сохранения

Для создания окна диалога SaveFileAs

FontDialog

Диалог для шрифта

Для создания окна установки шрифтов

Таблица 2.6 – Компоненты страницы Data Access

Имя

Название

Описание

DataSourse

Источник данных

Для соединения компонент Table и Query с компонентами отобра-жения и управления данными DBGrid, DBNavigator и т. п.

Table

Таблица данных

Для связи приложения с таблицей базы данных

Query

SQL-запросы

Для построения и выполнения SQL-запросов к удаленным SQL-серверам или локальным базам данных

Таблица 2.7 – Компоненты страницы Data Controls

Имя

Название

Описание

DBGrid

Таблица экрана

Для ввода, отображения и редактирования записей таблицы базы данных

DBNavigator

Навигатор

Для управления просмотром и редактированием таблицы базы данных

Таблица 2.8 – Компоненты страницы ActiveX

Имя

Название

Описание

VtChart

Диаграмма

Для построения диаграмм

Graph

График с диаграммой

Для построения графиков и диаграмм

Таблица 2.9 – Элементы главного меню

Название

Имя

Работа с массивами

miOrlovArrayForm

Работа с записями

miOrlovRecordForm

Работа с классами

miOrlovClassForm

Работа с файлами

miOrlovFileForm

Работа с графикой

miOrlovGraphicForm

Работа с таблицами

miOrlovTableForm

Справка

miOrlovHelp

Таблица 2.10 – Команды элемента меню «Работа с массивами»

Название

Имя

Создать

miCreateArrayForm

Открыть

miShowArrayForm

Скрыть

miHideArrayForm

Закрыть

miCloseArrayForm

Удалить

miDestroyArrayForm

Выход

miExitArrayForm

Для приобретения необходимых навыков по созданию программных модулей в среде Builder C++ следует выполнить задания 2.8 – 2.12 .

2.6 Задания для самостоятельной работы в среде Builder C++

Задание 2.1. Создать и сохранить проект для приложения OrlovApplication, выполнив следующие действия:

1. С помощью Total Commander создать две папки с одним и тем же именем Kurs04c1Orlov соответственно на локальном и сетевом дисках в групповых папках 04с1, а затем Total Commander свернуть.

2. Запустить Builder C++ одним из следующих способов: с помощью иконки на рабочем столе, с помощью команды главного меню ПУСК или с помощью двойного щелчка левой клавиши мыши по имени исполняемого файла *.exe для Builder C++, которое следует найти в папке Borland.

3. В автоматически созданном проекте Project1 изменить с помощью Object Inspector свойства Name и Caption соответственно на OrlovMainForm и «Курсовой проект студента группы 04с1 Орлова К.С.».

4. В поле Title окна Project Options, открываемого командой Project/Options/Application, задать название приложения OrlovApplication.

5. С помощью команды File/ Save Project As переименовать и сохранить в папке Kurs04c1Orlov на локальном диске модуль Unit1 и проектный модуль (файл проекта) Project1, при этом в первом появившемся диалоговом окне имя Unit1 заменить именем OrlovMainUnit, а во втором диалоговом окне имя Project1 на имя OrlovProject.

6. Свернув окно Builder C++, в окне Total Commander проверить наличие необходимых файлов проекта OrlovProject в папке Kurs04c1Orlov на локальном диске и познакомиться с содержанием основных и дополнительных файлов проекта.

7. Развернув окно Builder C++, установить с помощью команды Tools/Environment/Preferences переключатель Show compiler progress, который позволит отображать на экране в специальном диалоговом окне ход компиляции и редактирования файлов проекта и наличие ошибок Errors и недочетов Warnings в проекте.

8. С помощью команды Project/Options/Directory открыть вкладку и для всех полей этой вкладки, имена которых содержат слово “output” (для вывода), задать путь к папке Kurs04c1Orlov.

9. Выполнить команду Run/Run и проверить начальную функциональность приложения: свертку, развертку и перемещение окна, изменение размеров окна, отображения названия окна и закрытие приложения.

10. С помощью Total Commander проанализировать состав файлов проекта, отметив при этом наличие объектного файла OrlovMainUnit.obj и исполняемого файла приложения OrlovProject.exe.

11. Дважды щелкнув левой клавишей мыши по имени файла OrlovProject.exe, повторно запустите, а затем закройте приложение OrlovApplication.

12. С помощью Total Commander удалить все файлы из папки Kurs04c1Orlov на локальном диске, кроме основных файлов (OrlovProject.bpr, OrlovProject.res, OrlovMainUnit.cpp, OrlovProject..h и OrlovMainUnit.dfm).

13. Выполнив команду Run/Run, убедиться в достаточности оставленных файлов и работоспособности приложения.

Задание 2.2. Произвести резервное копирование основных файлов проекта OrlovProject на сетевой диск, выполнив действия:

1. На левой панели Total Commander открыть папку Kurs04c1Orlov локального диска, а на правой панели – папку с тем же именем сетевого диска.

2. На левой панели выделить основные файлы проекта с помощью следующей универсальной процедуры:

а) нажать на клавиатуре самую правую клавишу со знаком «+»;

б) в открывшемся окне заменить фильтр *.* для выделения всех файлов на фильтр *.bpr для выделения файла проекта;

в) нажать клавишу ENTER;

г) повторить пункты а), б) и в) для фильтров *.res, *.cpp, *.h и *.dfm, чтобы выделить все основные файла проекта.

3. Скопировать на сетевой диск выделенные файлы, нажав клавишу F5

Задание 2.3. Произвести восстановление проекта OrlovProject с сетевого диска, выполнив следующие действия:

1. На левой панели Total Commander открыть папку Kurs04c1Orlov локального диска и удалить все файлы проекта, включая и файлы резервных копий (с волной «~»), предварительно закрыв окно Builder C++.

2. На правой панели выделить все файлы проекта в папке Kurs04c1Orlov с сетевого диска.

3. Скопировать на локальный диск выделенные файлы, нажав клавишу F5.

4. Выполнить в окне Builder C++ команду Run/Run для контроля восстановления, предварительно открыв проект OrlovObject на локальном диске.

Задание 2.4. Создать на флешке с помощью Total Commander твердую копию всех файлов проекта OrlovObject, находящихся в папке Kurs04c1Orlov сетевого диска, и убедиться, что скопированное на флешку приложение успешно компилируется и запускается.

Задание 2.5. Выполнить следующие действия по открытию, модификации и настройке параметров проекта OrlovProject:

1. На локальном диске в групповой папке 04с1 создать временную папку Project1.

2. Запустить Builder C++ и сохранить в этой папке проект Project1 с помощью команды File/Save Project As, не меняя при этом ни имени модуля Unit1, ни имени проекта Project1.

3. С помощью команды File/Close All закрыть все файлы проекта Project1.

4. Открыть и проверить проект OrlovProject, находящийся на локальном диске, выполнив команды File/Open Project и Run/Run.

5. Закрыть проект OrlovProject с помощью команды File/Close All.

6. Открыть и проверить проект OrlovProject, выполнив команды File/Open и Run/Run.

7. Открыть модуль Unit1 из папки Project1 с помощью команды File/Open и убедиться, что этот модуль автоматически не включается в проект OrlovProject, наблюдая за ходом компиляции в диалоговом окне, появившемся после выполнения команды Run/Run.

8. Добавить модуль Unit1 в проект OrlovProject с помощью команды Project/Add To Project и выполнить команду Run/Run, чтобы убедиться в изменении состава файлов проекта OrlovProject.

9. Выполнить команду File/Close All и выяснить место сохранения модуля Unit1, включенного в проект OrlovProject.

10. С помощью команды View/Units открыть окно с модулем OrlovProject.bpr и проанализировать его содержание.

11. Удалить модуль Unit1 из проекта OrlovProject, выполнив команду Project/Remove From Project, а затем закрыть его с помощью команды File/Close.

12. Закрыть модуль OrlovMainUnit командой File/Close и убедиться с помощью команды Run/Run, что состав проекта не изменился.

13. Выполнить команду View/Units, в открывшемся окне выделить модуль OrlovMainUnit и нажать клавишу Enter, что приведет к повторному открытию окна этого модуля.

14. Нажать клавишу F12 для перехода на форму и вновь нажать эту клавишу для возврата в окно модуля.

15. Создать проект командой File/New Application, выполнить команду Run/Run для этого проекта и закрыть сначала окно приложения, а затем командой File/Close All закрыть и сам проект.

16. Создать проект командой File/New/Application, убедится, что он идентичен проекту, который создавался командой File/New Application, и закрыть сам проект.

17. Создать исполняемый файл проекта OrlovProject.exe на локальном диске сначала командой Project/Compile Project, которая компилирует только модифицированные модули проекта, а затем командой Project/Build Project, которая всегда компилирует все модули проекта.

18. Проверить работу приложения в пошаговом режиме, используя команды Run/Trace Into и Run/Step Over, а также Run/Run to Cursor.

19. Включить отладочные средства Evaluate/Modify, Add Watch, Add Breakpoint и более тщательно проверить работу приложения.

20. Удалить на локальном диске временную папку Project1.

Задание 2.6. Добавить в проект OrlovProject модули и формы, имена которых указаны в таблице 2.1, выполнив действия:

1. Открыть проект OrlovProject.

2. Создать новую форму командой File/New Form.

3. В окне Object Inspector задать следующие свойства этой формы:

Name = OrlovArrayForm;

Caption = Работа с массивами студента группы 04с1 Орлова К. С.

4. С помощью команды File/Save As сохранить модуль новой формы в папке Kurs04c1Orlov на локальном диске, задав для него имя OrlovArrayUnit.

5. На вкладке Form, открываемой командой Project/Options/Forms, сделать форму OrlovArrayForm главной, выбрав ее в списке MainForm.

6. Выполнить команду Run/Run и проверить работу приложения с главной формой OrlovArrayForm.

7. Сохранить проект OrlovProject, выполнив команду File/Save All.

8. Повторить пункты 2  7 для всех остальных строк в таблице 2.1.

9. Открыть все модули форм с помощью команды View/Units и расположить их на экране в порядке расположения строк в таблице 2.1.

10. Откройте форму OrlovMainForm, а затем форму OrlovTableForm и вновь форму OrlovMainForm.

11. Выполнить п. 10, используя команду View/Windows List.

12. С помощью команды Project/Options/Forms открыть вкладку Forms, сделать форму OrlovMainForm главной и переместить все остальные формы из списка Auto-create forms в список Available forms, т. е. из левого окна в правое окно.

13. Выполнить команду Run/Run.

14. Сохранить все файлы проекта командой File/Save All.

15. Закрыть проект командой File/Close All.

16. Сделать копию основных файлов проекта *.bpr, *.res, *.cpp, *.h и *.dfm в папке Kurs04c1Orlov_1_02_06, где цифры означают текущую дату.

17. Скопировать папку Kurs04c1Orlov с сетевого диска на флешку, заменив имя папки именем ее версии Kurs04c1Orlov_1_02_06, где цифры означают текущую дату.

Задание 2.7. Создать и включить в проект OrlovProject модуль для определения типов и переменных OrlovAllTypeUnit, выполнив следующие действия:

1. Запустить Delphi и открыть проект OrlovProject, находящийся в папке Kurs04c1Orlov локального диска.

2. С помощью команды File/New/Unit создать программный модуль и проанализировать его текст.

3. Сохранить модуль под именем OrlovAllTypeUnit в папке Kurs04c1Orlov локального диска, выполнив команду File/Save As.

4. Проверить работу приложения с помощью команды Run/Run и убедиться, что новый модуль компилируется.

5. Открыть проектный файл OrlovProject и познакомиться с его содержанием, отметив появление в нем ссылки на модуль OrlovAllTypeUnit и создание только одной главной формы в разделе Implementation.

6. Выполнить команды File/Save All и File/Close All.

7. Скопировать файлы OrlovProject.dpr и OrlovAllTypeUnit на сетевой диск.

Задание 2.8. Для главной формы OrlovMainForm приложения OrlovApplication создать меню типа MainMenu с элементами верхнего уровня, заданными в таблице 2.9, и командами, пример которых для элемента «Работа с массивами» задан в таблице 2.10, выполнив следующую последовательность действий:

1. Открыть проект OrlovProject на локальном диске.

2. Открыть форму OrlovMainForm.

3. Разместить в любом месте формы пиктограмму невидимой компоненты MainMenu, найдя ее на странице Standart палитры компонент (вверху окна Builder C++), и задать имя OrlovMainMenu.

4. Дважды щелкнуть левой клавишей мыши по пиктограмме для вызова конструктора, или редактора меню.

5. В открывшемся окне редактора меню построить элементы верхнего уровня, задавая в инспекторе объектов Object Inspector названия (Caption) и имена (Name), указанные в таблице 2.9, и перемещаясь по элементам меню с помощью мыши или клавиш со стрелками «вправо» и «влево».

6. Закрыть окно редактора меню и выполнить команду Run/ Run для проверки приложения.

7. Закрыть окно приложения OrlovApplication и выполнить команду File/Save All.

8. Дважды щелкнуть левой клавишей мыши по пиктограмме главного меню на форме OrlovMainForm.

9. Выделить элемент «Работа с массивами» и, перемещаясь вниз с помощью мыши или клавиши со стрелкой «вниз», построить команды этого элемента меню, задавая в окне Object Inspector названия (Caption) и имена (Name), указанные в таблице 2.10.

10. Повторить п. 9 для остальных элементов главного меню, кроме элемента «Справка», заменяя в именах команд ArrayForm на RecordForm, ClassForm, FileForm, GraphicForm и TableForm соответственно.

11. Для элемента «Справка» задать две команды: «Об авторе» с именем miAbout и «Пояснительная записка» с именем miOrlovNoteBook.

12. Выполнить команды File/Save All и Run/Run.

13. Скопировать основные файлы *.bpr, *.res, *.cpp, *.h и *.dfm проекта OrlovProject на сетевой диск.

Задание 2.9. Для одной из команд главного меню приложения OrlovApplication написать обработчик события OnClick, который выдавал бы на экран сообщение с помощью оператора ShowMessage, выполнив следующие действия:

1. Дважды щелкнуть левой клавишей мыши по пиктограмме главного меню на форме OrlovMainForm.

2. В окне редактора меню выделить команду, например, Работа с файлами/Открыть.

3. В окне Object Inspector открыть вкладку Events и дважды щелкнуть левой клавишей мыши по событию OnClick.

4. В заготовке обработчика события модуля главной формы написать оператор:

ShowMessage(‘Приложение выполнило команду Открыть’);

5. Выполнить команду Run/Run Builder C++;

6. Выполнить команду Работа с файлами/Открыть приложения OrlovApplication и закрыть приложение.

7. Удалить обработчик OnClick с помощью следующей последовательности действий:

а) удалить заголовок и процедуру обработчика в модуле OrlovMainUnit;

б) открыть окно редактора меню;

в) выделить команду Работа с файлами/Открыть;

г) в окне Object Inspector на вкладке Events удалить имя обработчика.

8. Закрыть окно редактора меню.

9. Выполнить команду Run/Run.

10. Убедится, что команда Работа с файлами/Открыть не работает.

11. Написать, проверить работу и удалить обработчики для команд Создать, Открыть, Скрыть, Закрыть, Удалить и Выход для элемента меню Работа с массивами.

Задание 2.10. Используя компоненты Panel и Label, создать на форме OrlovMainForm модель главного меню со всеми элементами верхнего уровня (см. таблицу 2.9) и со всеми командами этих элементов (см. таблицу 2.10), проверить работу и очистить форму.

Задание 2.11. Разместить на форме OrlovMainForm 6 горизонтальных панелей и установить на этих панелях компоненты из таблиц 2.2  2.8, проверить работу приложения и удалить все компоненты, очистив полностью форму.

Задание 2.12. Написать обработчики событий для ввода-вывода целых, вещественных и строковых значений, выполнив следующие шаги:

1. На форме OrlovMainForm установить две компоненты Edit с именами InEdit и OutEdit соответственно.

2. Очистить свойства Text и Caption этих компонент.

3. Над окном InEdit поместить метку «Для ввода», а над окном OutEdit – «Для вывода», используя для этих целей компоненту Label.

4. В разделе Var модуля OrlovMainUnit объявить три переменные:

int VarInt;

float VarFloat;

AnsiString VarStr;

5. На форме установить три кнопки типа Button с надписями Integer, Float и String, соответственно, которые задать с помощью свойства Caption.

6. Для кнопки Integer написать обработчик:

VarInt = StrToInt(InEdit->Text); //-ввод;

OutEdit->Text = IntToStr(VarInt); //-вывод;

7. Для кнопки Float написать обработчик:

VarFloat = StrToFloat(InEdit->Text); //-ввод;

OutEdit->Text = FloatToStr(VarFloat); //-вывод;

8. Для кнопки String написать обработчик:

VarStr = InEdit->Text.c_str();

OutEdit->Text = VarStr;

9. Выполнить команду Run/Run.

10. В окне ввода задать число 15, щелкнуть левой клавишей мыши по кнопке Integer и убедиться, что число 15 появилось в окне вывода.

11. Повторить пункт 9 для ввода числа 8.3 и строки «Orlov».

12. Очистить форму и удалить обработчики.