- •Федеральное агентство по образованию государственное образовательное учреждение
- •Кафедра автоматики и телемеханики интегрированная среда разработки приложений
- •Лабораторная работа 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
- •Библиографический список
Действия в случае ошибки выполнения
Щелкнув на кнопке убедимся что приложение работает Однако при повторном щелчке выполнение прерывается Щелкнув по закладке Unit1.cpp увидим окно с сообщением отладчика которое после перевода выглядит так: “Проект Project1.exe вызвал генерацию исключения класса EOverflow с сообщением ‘Переполнение при операции с плавающей запятой’. Процесс остановлен Используйте команды Step или Run для продолжения”.
Это сообщение об ошибке приведшей к генерации исключения Исключения (exceptions) генерируются при различных ошибках – исключительных ситуациях
Щелкнув на кнопке OK попадем в окно Редактора Кода и увидим в нем код программы с выделенной строкой около которой стоит зеленая стрелка Это тот оператор при выполнении которого произошла ошибка
Дальнейшие действия
Нажав Ctrl-F2, прерывают выполнение и отладку приложения Так поступают в случае когда понятно где ошибка и как ее исправить Если же ошибка непонятна то прежде чем прервать сеанс работы с приложением надо получить дополнительную информацию о состоянии переменных те провести отладку
Можно выполнить команду Запуск|Запустить (или нажать соответствующую быструю кнопку или клавишу F9) чтобы попытаться несмотря на ошибку продолжить вычисления При этом появится окно с сообщением о виде ошибки (“Floating point overflow”) после закрытия которого можно продолжить работу с приложением Но это ничего не даст так как при очередном щелчке на кнопке ситуация с ошибкой повторится
Можно пройти часть программы по шагам (см далее) Однако предварительно нужно получить соответствующую информацию Итак если ошибка неясна, надо получить информацию о происходящих в приложении процессах приведших к ошибке Простейший способ – воспользоваться Мастером оценки выражений Подведем курсор мыши к имени переменной например A, и увидим текст: “A=1E+308”. Так можно узнать значения переменных программы в данный момент
Окно наблюдения Список Часов
Это окно позволяет иметь значения нескольких переменных сразу и сравнивать их, что удобно при отладке сложных приложений. Чтобы сделать окно видимым, нужно выполнить команду Вид|Windows отладки|Часы или подвести курсор к требуемой переменной (или выделить ее) и нажать Ctrl-F5. При этом окно наблюдения автоматически откроется и в нем появится имя переменной и ее значение (значение переменной появится только при остановке выполнения приложения и переходе в ИСР C++Builder). Можно выделить выражение, например, Label1->Caption, нажать Ctrl-F5, и в окне появится это выражение. Сообщение “Undefined symbol ‘Label1’” – не определен символ ‘Label1’ объясняется тем, что для окна наблюдения компонент Label1 по умолчанию не считается принадлежащим текущей форме. Добавив Form1-> перед Label1 в обработчике, после нажатия Ctrl-F5 в окне наблюдения увидим выражение и его значение.
Работа с окном наблюдения. Перейдя в него, после щелчка правой кнопкой во всплывшем меню можно выбрать ряд команд. При выборе команд Правка часов и Добавить часы, попадаем в окно Свойства часов. По-другому – в окне наблюдения нажать Ctrl-F5 или сделать двойной щелчок. В окне Выражение можно записать имя любой переменной или любое выражение, содержащее переменные, константы, функции. Окно Повтор счета используется при наблюдении массивов и позволяет задать число наблюдаемых элементов массива. Например, если в окне Выражение указать имя массива, то в окне наблюдений будут отображаться все элементы этого массива. Если же указать первый элемент массива (с индексом 0), а в окне Повтор счета написать 5, то в окне наблюдений будут отображаться только первые 5 элементов массива. Окно Цифр указывает число выводимых значащих разрядов чисел с плавающей запятой. Окно Включить позволяет отключить вывод в окно наблюдения соответствующего выражения во время выполнения приложения, что повышает производительность выполнения. А после того, как приложение остановлено и данное выражение нужно посмотреть в окне наблюдения, выражение выделяют в этом окне и делают на нем двойной щелчок. Откроется окно Свойства часов с загруженным в него выражением и останется только включить индикатор Включить и щелкнуть OK. Индикатор Позволить побочный разрешает или запрещает отображение таких выражений, которые способны вызвать побочные эффекты. Например, в окне Выражение записано ++A. Если индикатор Позволить побочный выключен (он выключен по умолчанию), то в окне наблюдений рядом с выражением ++A появится текст: “Side effects are not allowed.” (побочные эффекты запрещены). Очевидно, если отображать указанное выражение, то значение переменной A в программе изменится. Отображение значения, на единицу большего A, будет иметь место при включении индикатора Позволить побочный. Но следует учесть, что это будет изменять значение переменной A. Радиокнопки в нижней части окна Свойства часов задают формат вывода значения переменной или выражения. По умолчанию формат определяется автоматически по типу отображаемого выражения. Выпадающий список в окне Выражение позволяет выбрать выражение из использовавшихся ранее. В окне Свойства часов имеется выпадающий список − имя группы. По умолчанию создается одна группа − Часы. Закладка этой группы видна в окне Список часов. Но можно разбить наблюдаемые величины на несколько групп (страниц). Для задания новой группы в контекстном меню окна наблюдения надо выбрать раздел Добавить группу и затем указать имя новой группы. Тогда в окне наблюдения появится новая страница, и на нее можно будет заносить новые наблюдаемые величины, выбирая в окне Свойства часов в списке Имя группы соответствующее имя.
Список выражений в окне наблюдения можно редактировать. Для удаления выражения его выделяют и нажимают Delete. Чтобы отредактировать ошибочное выражение, делают на нем двойной щелчок, а затем редактируют в окне Свойства часов.
Вернемся к примеру. В момент появления ошибки выполнения значение A равно , а следующее значение должно быть , которое переменная типа double хранить не может. Теперь можно нажимать Ctrl-F2, прерывать выполнение и исправлять код.