Програмирование на Visual Basic
Информация - Компьютеры, программирование
Другие материалы по предмету Компьютеры, программирование
Это можно сделать, установив курсор на оператор, на котором необходимо выполнить следующее прерывание выполнения программы, и щелкнув мышью по пункту меню Step То Cursor или комбинацией клавиш Ctrl+F8.
Пошаговое выполнение можно комбинировать с процедурным выполнением. Отлаженные процедуры одной программы можно выполнять по процедурно, а не отлаженные - пошагово. Средства отладки позволяют также изменять порядок выполнения операторов. При выполнении оператора Set Next Statement (Установить следующий оператор) раскрывающегося меню Run можно перейти к выполнению любого оператора (даже к тем, которые расположены перед текущим) текущей процедуры.
1.3.3.Контроль ошибок на этапе выполнения программы
Ошибки периода выполнения (runtime errors) могут возникать, например, из-за нехватки памяти или дискового пространства, попытки открыть открытый другим приложением файл, выхода индекса за пределы размерности массива и др. В этом случае Visual Basic выводит диалоговое окно с соответствующим сообщением и прекращает выполнение программы (рис. 1.29).
Обработчик ошибок возвращает значение кода ошибки (функция Err), список которых находится в справочной системе (Help) и документации к Visual Basic.
Однако такие ошибки можно обрабатывать методом перехвата ошибок (error trapping). Перехват ошибок обеспечивается вставкой в текст процедуры оператора
On Error GoTo метка, где метка помечает место входа в обработчик ошибок.
Если в период выполнения ошибка возникнет в одном из операторов процедуры, расположенных за On Error GoTo метка, то управление передается обработчику ошибок, указанному меткой. Участок обработки ошибок можно закончить оператором On Error GoTo 0.
Рис. 1.29
В обработчик ошибок можно включить оператор Resume и продолжить выполнение программы после исправления ошибки операторами, вставляемыми в обработчик ошибок. Оператор Resume имеет несколько форм:
Resume возобновляет выполнение программы с оператора, вызвавшего ошибку;
Resume Next возобновляет выполнение программы со следующего оператора;
Resume метка возобновляет выполнение программы с оператора, помеченного меткой.
Пример.
В примере в процедуре Primer происходит деление на О (оператор YY = YY/XX, перед выполнением которого переменой XX присваивается значение 0). Этот оператор включен в область обработчика ошибок. При делении на 0 происходит переход на оператор, помеченный меткой Label: (обработчик ошибок), переменной XX присваивается значение 2 и программа продолжает выполнение с оператора, на котором была ошибка на этапе выполнения в результате деления на 0. Программа заканчивает работу и результат распечатывается на форме (рис. 1.30).
Рис. 1.30
Таблица 2.1
Название свойстваДля каких элементов управления используетсяОписание действияВозмо жность измненияActionCommon dialogОпределяет тип диалога-/+Action (OLE)OLEОпределяет тип действия-/+AlignmentCheck box. label, option button, text boxОпределяет способ выравнивания (по левому краю, по правому или по центру)+/-Auto RedrawForm, picture boxОпределяет возможность автоматического перерисования+/-AutoSizeLabel, picture boxОпределяет возможность автоматического изменения размера при заполнение+/-BackColor, Fore ColorForm, check box, combo box, command button (TWibKoBackColor) data control, directory list box, drive list box, file list box, frame, grid, label, list box, OLE control, option button, picture box, Printer object (только ForeColor), shape (только BackColor), text boxОпределяют соответственно цвет фона и цвет выводимой ин4юрмации+/+BackStyleLabel, shapeОпределяет прозрачность фона+/+BorderColorLine, shapeОпределяет цвет рамки+/+BorderStyleForm, grid, image, label, line, OLE control, picture box, shape, text boxОпределяет вид рамкиДля Form и text
box+/-+/+
Продолжение табл 2 I
Название свойстваДля каких элементов управления используетсяОписание действияВозможность измененияBorderWidthLine, shapeОпределяет ширину границы+/+CancelCommand buttonОпределяет, что элемент выполняет функцию Cancel на форме+/+CaptionForm, MDI form, check box, command button, data control, frame, label, menu, option buttonОпределяет текст, выводимый на элемент или возле него Для формы -заголовок+/+CellSelectedGridЯчейка таблицы выделена строкой и столбцом-/-ClassOLE controlОпределяет класс объекта OLE+/-ClipControlsForm, frame, picture boxОпределяет необходимость перерисовки всего объекта или появляющейся части+/+ClipGridОпределяет содержимое выделенных ячеек таблицы-/+Col, RowGridОпределяет выделенную колонку или строкуа таблицы-/+ColAlignmentGridВыравнивание данных в колонке таблицы-/+Cols, RowsGridОпределяет число колонок,столбцов таблицы+/+ColumnsList boxОпределяет число колонок в списке+/+ColWidthGridШирина колонки-/+ControlBoxFormОпределяет наличие кнопки системного меню на форме+/-CuncntX, CurrentYForm, picture box, Printer objectТекущие координаты по горизонтали и вертикали (для рисующих или печатающих методов)-/+Продолжение табл. 2.1
Название свойствауправления используется
жность измененияDatabaseNameData controlИмя и расположение базы данных+/+DataChangedCheck box, image, label, picture box, text boxУказатель изменения данных в элементе при чтении записи (несовпадение)-/+DataFieldCheck box. image, boxОпределяет связь
с полем записи файла+/+
Check box, image, label, picture box, text boxОпределяет источник данных для элемента управления+/-DefaultCommand buttonОпределяет, является ли данная командная
командной кнопкой по умолчанию+/+
box. Printer object, shape.рисуемой линии (точки)-/+DrawWidthForm, picture box, Printer objectОпределяет ширину рисуемой линии (точки)-/+EnabledForm, MDI form, check box, combo box, command button, data control, directory list box, drive list box, file list box, frame, grid, horizontal scroll bar, image, label, list box, menu, option button, picture box, text box, timer, vertical scroll barОпределяет возможность доступа к элементу (элемент реагирует на действия пользователя)+/+FillColorForm, picture box, Printer object, shapeОпределяет цвет запо