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

Окно контрольных значений (Watches)

Это окно используется для отслеживания значений переменных или выражений. Можно одновременно задавать несколько контрольных выражений. Можно использовать контрольные значения для задания моментов останова программы.

Определяемое пользователем контрольное выражение позволяет следить в процессе пошагового выполнения программы за изменением значения этого выражения.

Чтобы определить новое контрольное выражение, выполните команду Add Watch (Добавить контрольное значение) из меню Debug. Кнопка панели инструментов .

Рис. B.4. Добавление нового контрольного значения

Вводимое в строку Expression выражение может быть переменной, свойством или любым другим допустимым в Visual Basic выражением. Если в окне модуля перед выполнением команды Add Watch было выделено некоторое выражение, то оно автоматически отображается в строке Expression.

Допускается перетаскивание мышью выделенного выражения из окна модуля в окно контрольных значений Watches.

Контекст контрольного выражения (Context) – это область определения контрольного выражения:·поле Procedure отображает имя процедуры, в которой вычисляется введенное выражение. Допускается выбор всех процедур модуля либо отдельной процедуры.

Поле Module отображает имя модуля, в котором вычисляется выражение. Допускается выбор всех модулей либо отдельного модуля.

Строка Project отображает имя текущего проекта. Вычисление выражений вне текущего проекта невозможно.

Замечание.

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

В области Watch Type (Тип контрольного значения) можно задать реакцию Visual Basic на значение контрольного выражения:

  • Watch Expression (Контрольное выражение) отображает в окне контрольных значений заданное выражение и его значение.

  • Break When Value is True (Останов, если значение выражения истинно) – выполнение программы автоматически прерывается, когда значение выражения становится истинным или ненулевым (недопустимо для строковых выражений).

  • Break When Value Changes (Останов при изменении значения выражения) – выполнение программы автоматически прерывается при изменении значения выражения в указанном контексте.

Введенное выражение и его значение отображаются в окне Watches.

Рис. B.5. Окно контрольных значений

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

Команда Edit Watch (Изменить контрольное значение) из меню Debug позволяет отредактировать или удалить контрольное выражение.

Команда доступна только при установленном контрольном значении, даже если окно контрольных значений закрыто.

Окно диалога Edit Watch похоже на окно Add Watch и элементы окна Edit Watch устанавливаются точно также как элементы окна Add Watch. Кнопка панели инструментов . Функциональные клавиши Ctrl+W.

Рис. B.6. Добавление контрольного выражения.

Команда Quick Watch (Контрольное значение) из меню Debug выводит окно диалога Quick Watch с текущим значением выделенного в тексте процедуры выражения. Эта команда служит для просмотра текущего значения переменной, свойства объекта или другого выражения, для которого не задано контрольное выражение.

Рис B.7. Окно контрольных значений Quick Watch

Для добавления просматриваемого в окне Quick Watch выражения в список контрольных выражений следует нажать кнопку Add. Кнопка панели инструментов , функциональные клавиши Shift+F9.

Важно

  • Контрольные выражения не сохраняются вместе с программой.

Пример

Процедура складывает цифры введенной числовой строки.

Public Sub sum_of_digits()

Dim digits As String

Dim s As Integer

digits = InputBox("Enter a number")

For n = 1 To Len(digits)

s = s + Mid(digits, n, 1)

Next n

Debug.Print "numbers= "; digits; " sum of digits=", s

End Sub

В процедуре не проверяется корректность ввода. Это можно было бы сделать, используя функцию IsNumeric.

Функция Mid выделяет очередную цифру из введенной строки.

Рис. B.8. Окна локальных переменных, контрольных значений и окно проверки перед выходом из процедуры sum_of_digits