- •Федеральное агентство по образованию государственное образовательное учреждение
- •Кафедра автоматики и телемеханики интегрированная среда разработки приложений
- •Лабораторная работа 1 Ознакомление с Интегрированной Средой Разработки (иср)
- •Основное окно иср
- •Библиографический список
- •Лабораторная работа 2 Формы и компоненты Включение в проект новой формы
- •Размещение компонентов на форме
- •Депозитарий – хранилище форм и проектов
- •Задание 7. Опробовать режимы заимствования форм из Депозитария
- •Библиографический список
- •Лабораторная работа 3 Отладка приложений Компиляция и компоновка проекта
- •Сообщения компилятора и компоновщика
- •Действия в случае ошибки выполнения
- •Дальнейшие действия
- •Окно наблюдения Список Часов
- •Окно оценки и модификации Оценить|Изменить
- •Пошаговое выполнение приложения
- •Точки прерывания
- •Использование окна Инспектора Отладки
- •Другие средства отладки
- •Библиографический список
- •Лабораторная работа 4 Компоненты ввода и отображения текстовой информации
- •Компоненты Label, StaticText, Panel
- •Компоненты Edit, LabeledEdit, MaskEdit
- •Компоненты Memo, RichEdit
- •Компоненты ListBox, CheckListBox, ValueListEditor
- •Компонент StringGrid
- •Библиографический список
- •Лабораторная работа 5 Диаграммы и графики Компонент Chart
- •Компонент Image
- •Формирование квадратных матриц
- •Кнопки, индикаторы, управляющие элементы
- •Управляющие кнопки Button и BitBtn
- •Кнопка с фиксацией SpeedButton
- •Группы радиокнопок − компоненты RadioGroup, RadioButton и GroupBox
- •Индикаторы CheckBox и CheckListBox
- •Ползунки и полосы прокрутки − компоненты TrackBar и ScrollBar
- •Заголовки − компоненты HeaderControl и Header
- •Таймер − компонент Timer
- •Панели и компоненты внешнего оформления
- •Панели общего назначения − компоненты Panel,
- •Многостраничные панели − компоненты TabControl,
- •Инструментальные панели − компоненты ToolBar и PageScroller
- •Перестраиваемые панели − компоненты CoolBar и ControlBar
- •Библиографический список
- •Лабораторная работа 9 Системные диалоги
- •Диалоги открытия и сохранения файлов – компоненты
- •Фрагменты диалогов – компоненты
- •Диалог выбора шрифта – компонент FontDialog
- •Диалоги выбора цвета – компоненты ColorDialog, ColorBox
- •Диспетчеризация действий на основе компонента ActionList
- •Диспетчеризация действий на основе компонентов ActionManager, ActionMainMenuBar, ActionToolBar, CustomizeDlg
- •Библиографический список
Библиографический список
Архангельский АЯ Программирование в C++Builder 6. – М: ЗАО «Издательство БИНОМ», 2003 – 1152 с – С 97–113
Лабораторная работа 3 Отладка приложений Компиляция и компоновка проекта
Компиляция с последующим выполнением приложения осуществляется командой Запуск|Запустить или соответствующей быстрой кнопкой или «горячей» клавишей F9. В этом случае производится компиляция программы ее компоновка (соединение) и, если не будут обнаружены неисправимые ошибки то создается выполняемый модуль .exe и запускается на выполнение
В процессе компиляции и компоновки на экране появляется окно в верхней строке которого выводится имя компилируемого проекта во второй строке – текущая операция (компиляция определенного модуля или компоновка) в третьей строке – текущая строка модуля обрабатываемая компилятором и общее число строк в модуле в нижней строке отображается обнаруженное на данный момент число замечаний предупреждений и ошибок Клавиша Отмена позволяет прервать процесс компиляции и компоновки
При компиляции проекта состоящего из нескольких модулей компилируются только те модули тексты которых были изменены с момента предыдущей компоновки проекта Это существенно экономит время компиляции
При выполнении команды Запустить можно задать командную строку если приложение предусматривает передачу в него каких-то параметров Для этого надо сначала выполнить команду Запуск|Параметры и в открывшемся окне написать требуемую командную строку
В случаях когда требуется проверить на правильность последние изменения кода не теряя время на выполнение проекта пользуются командами: Проект|Компилировать модуль, Проект|Сделать проект или Проект|Создать проект.
Команда Компилировать модуль выполняет компиляцию только того модуля который выделен в окне Редактора Кода или в Менеджере Проектов и позволяет наиболее быстро проверить наличие ошибок или замечаний Если компиляция прошла успешно создается объектный файл .obj откомпилированного модуля
Команда Сделать проект выполняет компиляцию всех тех модулей проекта тексты которых были изменены с момента предыдущей компоновки проекта Если компиляция прошла успешно создаются объектные файлы модулей .obj и осуществляется компоновка программы Если и она прошла успешно то создается выполняемый модуль .exe Таким образом отличие Сделать проект от Запустить только в том что после компоновки не производится выполнение приложения
Команда Создать проект отличается от Сделать проект только тем что компилируются все модули независимо от того когда они в последний раз изменялись Выполнение этой команды требует наибольшего времени
Есть еще две команды компиляции – для всех проектов группы –Сделать все проекты и Создать все проекты.
Сообщения компилятора и компоновщика
На примере простого приложения с ошибочными операторами выясним какие сообщения об ошибках и какие предупреждения выдает компилятор Начните новое приложение перенесите на форму метку Label и кнопку Button В обработчик щелчка кнопки введите следующие операторы:
void _fastcall TForm1::Button1Click(Tobject *Sender)
{
int i,j;
double A;
for(i=0; i<50;i++)
A*=10000; //Увеличение A в 10000 раз
Label1->Caption = “A = “ +B;
}
Установите режим наиболее удобный для отладки при котором компилятор отображает все свои замечания Для этого в окне опций проекта вызываемом командой Проект|Опции на странице Компилятор в группе опций Предупреждения нужно включить опцию Все. Затем выполните команду Запуск|Запустить или нажмите соответствующую быструю кнопку или нажмите клавишу F9.
Внизу окна Редактора Кода появятся сообщения о замечаниях и ошибках Первое сообщение:
[C++ Warning] Unit1.cpp (23): W8013 Possible use of ‘A’ before definition
([C++ Предупреждение] модуль Unit1.cpp строка 23: W8013 Переменная ‘A’ возможно используется до того как ей присвоено значение)
Это предупреждение о том что переменная A не инициализирована и ее значение к моменту первого выполнения оператора в строке 23 не определено Чтобы узнать что это за строка нужно дважды щелкнуть на этом предупреждении В окне Редактора Кода выделится соответствующая строка:
A*=10000; //Увеличение A в 10000 раз
Следовательно объявление переменной нужно изменить так:
double A=1;
Чтобы в переменной A накапливался результат при каждом щелчке на кнопке сделаем ее глобальной
Перейдем к второму сообщению компилятора:
[C++ Error] Unit1.cpp (24) : E2451 Undefined symbol ‘B’
([C++ Ошибка] модуль Unit1.cpp строка 24: E2451 Необъявленный идентификатор ‘B’)
Это уже сообщение об ошибке В операторе
Label1->Caption = “A = “ +B;
вместо переменной A указана переменная B которая не была объявлена Строка кода с этой ошибкой выделена в окне Редактора Кода, и курсор остановился около необъявленного идентификатора
Поскольку ошибка неисправима выполняемый модуль не формируется и приложение не выполняется
Третье сообщение компилятора:
[C++ Warning] Unit1.cpp (25): W8080 ‘j’ is declared but never used
([C++ Предупреждение] модуль Unit1.cpp строка 25: W8080 Переменная ‘j’ объявлена но нигде не используется)
Объявление переменной j как ненужной нужно удалить из текста
Последнее сообщение компилятора:
[C++ Warning] Unit1.cpp (25): W8057 Parameter ‘Sender’ is never used
([C++ Предупреждение] модуль Unit1.cpp строка 25: W8057 Параметр ‘Sender’ нигде не используется)
Параметр Sender передается в обработчик событий и является компонентом в котором произошло событие В данном обработчике он не нужен поэтому это предупреждение можно игнорировать
Итак приложение не откомпилировалось из-за ошибки с использованием необъявленной переменной B
После исправления в ошибочном операторе переменной B на A появится новое сообщение об ошибке:
[C++ Error] Unit1.cpp (24) : E2060 Illegal use of floating point
([C++ Ошибка] модуль Unit1.cpp строка 24: E2060 Недопустимое использование плавающей точки)
В правой части оператора Label1->Caption = “A = “ +A;
складываются строка “A = “ и переменная с плавающей точкой A Это ошибка использования несовместимых типов
После всех исправлений код примет вид
double A=1;
void _fastcall TForm1::Button1Click(Tobject *Sender)
{
int i;
for(i=0; i<50;i++)
A*=10000; //Увеличение A в 10000 раз
Label1->Caption = “A = “ + FloatToStr(A);
}
Теперь откомпилируем приложение и выполним его