Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Создание пользовательских п ÒÉÌÏÖÅÎÉÊ ÓÒÅÄÓÔÁÍ...doc
Скачиваний:
6
Добавлен:
18.11.2019
Размер:
2.02 Mб
Скачать

Использование объекта Debug

Объект Debug используется для организации вывода в окно Immediate в режиме выполнения программы. Объект имеет только один метод Print.

Синтаксис оператора Debug.Print [outputlist]

  • outputlist – список распечатываемых переменных или выражений, указывать необязательно. Если аргумент опущен, выводится пустая строка.

  • Ссылка на объект Debug является обязательной.

Данные отображаются в окне Immediate с учетом национальной настройки, т.е. используется соответствующее форматирование. Значения типа Date выводятся в стандартном кратком формате дат, установленном в системе. Логические значения печатаются как True или False.

Для печати нескольких выражений их можно разделять запятой, точкой с запятой или пробелом. Различные разделители обеспечивают различные возможности выравнивания распечатываемых выражений в окне Immediate (подробно см. Help).

Окна отладчика

При отладке программ рекомендуется активно использовать окна Visual Basic.

Immediate Window (окно проверки)

Используется для

  • отображения информации, получаемой в результате выполнения команд процедуры (отладочная печать);

  • для тестирования команд, вводимых непосредственно в этом окне;

  • для получения или изменения значений переменных;

  • для получения или изменения значений свойств объектов, доступных в выполняемой процедуре.

Чтобы вывести на экран окно отладки, выберите команду Immediate Window в меню View или нажмите клавиши Ctrl+G.

Замечание

  • Операторы, вводимые в окне проверки, выполняются в контексте, т.е. так, как если бы они вводились в выполняемую процедуру.

Окно значения переменной

Если в программе установлена контрольная точка, то можно просмотреть значения переменных. Достаточно подвести курсор к идентификатору переменной внутри выполняемой процедуры и рядом с текстовым курсором появится текущее значение этой переменной как контекстная подсказка.

Рис. B.1. Окно значения переменной показывает значение переменной Var_A, равное 2

Locals Window (окно локальных переменных)

Окно локальных переменных отображает все описанные в текущей процедуре переменные и их значения. Окно высвечивается командой Locals Window из меню View.

Рис. B.2. Окно локальных переменных

Когда окно локальных переменных открыто, его обновление происходит автоматически при каждом переключении из режима выполнения в режим прерывания, при пошаговом выполнении процедуры, а также при перемещении по стеку вызова процедур.

В окне локальных переменных можно изменить ширину любого столбца, перемещая границу столбца вправо или влево.

В столбце Expression (Выражение) перечисляются все переменные, доступные в выполняемой процедуре. Первая переменная в этом списке – особая переменная, которая может быть развернута для просмотра всех переменных уровня текущего модуля, т.е. переменных, которые определены в области описаний модуля (Declarations). Для стандартных модулей ее имя совпадает с именем модуля. Для модулей класса или для процедурных листов формы это системная переменная Me.

Составные переменные (массивы, пользовательские типы) могут быть свернуты или развернуты для просмотра значений составляющих их элементов – слева от названий таких переменных находятся соответствующие пиктограммы или .

На рис. B.2 переменная Модуль1 развернута и в окне показаны переменные, объявленные в области описаний модуля.

В столбце Value (Значение) можно изменять значения переменных. Курсор, установленный на значении переменной, принимает форму текстового курсора. Введите новое значение и для сохранения модифицированного значения нажмите любую из клавиш Enter, Up, Down, Tab, Shift+Tab или щелкните левой кнопкой внутри окна Locals.

Если введенное значение некорректно, то оно, если это возможно, заменится на значение, соответствующее типу переменной в контексте выполняемой процедуры. В противном случае значение переменной остается доступным для редактирования. Для отмены еще не сохраненного модифицированного значения нажмите клавишу Esc.

Например, при вводе нуля в переменную типа Date значение заменится на 0:00:00. При вводе даты в переменную Integer может произойти ошибка Overflow, а введенное в переменную Integer символьное значение заменится на нуль.

В столбце Type (Тип) окна Locals отражаются типы переменных. Данные в этом столбце не редактируются.

В первой строке окна Locals отображается название текущей процедуры, проект и модуль, в котором она расположена. Вызванная процедура помещается на вершину стека выполняемых процедур и удаляется из стека после ее окончания. Можно просмотреть текст любой процедуры из стека и соответствующее ей окно локальных переменных. Для этого нажмите кнопку Call Stack (см. рис. B.2). Высвечивается окно стека вызовов (Call Stack), в котором надо выбрать нужную процедуру и нажать кнопку Show (Показать).

Рис. B.3. Окно стека вызовов процедур

На рис. B.3 показано окно стека с тремя процедурами, запущенными в следующей последовательности: Print_A_1, TheFirst, Value_A. Окно локальных переменных на рис. B.2 отражает значения переменных, доступных выбранной в этом окне процедуре Value_A.