- •Федеральное агентство по образованию государственное образовательное учреждение
- •Кафедра автоматики и телемеханики интегрированная среда разработки приложений
- •Лабораторная работа 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
- •Библиографический список
Окно оценки и модификации Оценить|Изменить
Это окно позволяет в процессе отладки не только наблюдать, но и изменять значения переменных. Сделать это окно видимым можно командой Запуск|Оценить|Изменить или командой Отладка|Оценка|Изменение, которую выбирают из контекстного меню, всплывающего при щелчке правой кнопкой в окне Редактора Кода. В окне Выражение можно ввести имя переменной или выражение. Щелкнув на кнопке Оценка, увидим в окне Результат значение этого выражения. Если же в окне Выражение указать имя переменной, а не выражение, то становится доступной кнопка Изменение, позволяющая изменить значение переменной. Следовательно, имеется возможность вмешиваться в процесс выполнения приложения и насильственно изменять значения переменных.
Итак, в окне Выражение укажем имя переменной A, щелкнем на кнопке Оценка и в окне Результат увидим ее значение. В окне Новое значение напишем A/2e300 и щелкнем на кнопке Изменение. В результате значение переменной в приложении изменится, что видно в окне Результат. Перейдя в окно наблюдения (кнопка Часы), там также увидим измененное значение. Поскольку значение A было резко уменьшено, можно продолжить выполнение приложения. Нажимая F9, быстро убедимся, что ошибка переполнения появилась вновь.
Отметим, что возможность оперативно исправить значения переменных, вызванные ошибкой, и продолжить отладку, не запуская выполнение опять сначала, позволяет существенно ускорить отладку при большом времени выполнения приложения.
Пошаговое выполнение приложения
Чаще причина ошибки находится быстрее, если выполнить какой-то фрагмент программы, наблюдая изменения переменных при выполнении каждой команды. Для прохода фрагмента программы по шагам можно использовать следующие команды:
Команда |
«Горячие» клавиши |
Пояснения |
Через шаг |
F8 |
Пошаговое выполнение строк программы, считая вызов функции за одну строку, т.е. вход в функции не производится |
След в |
F7 |
Пошаговое выполнение программы с заходом в вызываемые функции |
Шаг на следующую линию |
Shift+F7 |
Переход к следующей исполняемой строке |
Выполнить до кур- сора |
F4 |
Команда выполняет программу до того выполняемого оператора, на котором рас- положен курсор в окне редактора кода |
Выполнить до воз- вращения |
Shift+F8 |
Выполнение программы до выхода из те- кущей функции, останов на операторе, следующем за вызовом этой функции |
Показать точку выполнения |
− |
Команда помещает курсор на операторе, который будет выполняться следующим |
Испытаем команды на рассматриваемом примере. Выведем переменную A и выражение Form1->Label1->Caption в окно наблюдения Список часов. Это окно можно встроить в Инспектор Объектов. В режиме проектирования окно наблюдения будет храниться на отдельной странице позади Инспектора Объектов, а во время выполнения приложения страницы Инспектора Объектов будут исчезать, и при остановах можно наблюдать в окне наблюдения значения переменных. Для этого надо сохранить описанную (или любую другую) конфигурацию отладочных окон с помощью команды Вид|Рабочие столы|Сохранить рабочий стол и командой Вид|Рабочие столы|Настройка отладки рабочего стола задать эту конфигурацию как отладочную. Проще осуществлять подобные операции с конфигурациями соответствующими быстрыми кнопками вверху окна ИСР.
Выведя переменную и выражение в окно наблюдения Список часов и встроив это окно в Инспектор Объектов, перейдем в код и откомпилируем модуль. Поместим курсор на строке с оператором A*=10000; Теперь нажмем F4, чтобы приложение выполнялось до строки с курсором. Приложение начнет выполняться. Нажмем в нем кнопку. Перейдем в Редактор Кода. В нем будет выделена строка, на которой стоял курсор перед выполнением. Теперь, нажимая F7 или F8 (в данном случае все равно), выполняем операторы по шагам, а в окне наблюдений следим за изменением переменной и выражения.
Через несколько циклов переведите курсор на оператор, следующий после цикла и задающий значение Label1->Caption. Нажмите F4. Тем самым отладчику указано, что ему надо без остановов выполнять приложение до строки, указанной курсором. Все оставшиеся проходы цикла будут выполнены без остановов, и программа остановится на указанной строке. Если после этого нажать клавишу F7 или F8, то результат будет различным. При нажатии F8 произойдет переход к закрывающей фигурной скобке. А при нажатии F7 сначала попадем в заголовочный файл dstring.h. В этом файле объявлены функции работы со строками типа AnsiString, к которым неявно обращается оператор программы. После нескольких нажатий F7 произойдет возврат в программу.