бесплатно рефераты
 
Главная | Карта сайта
бесплатно рефераты
РАЗДЕЛЫ

бесплатно рефераты
ПАРТНЕРЫ

бесплатно рефераты
АЛФАВИТ
... А Б В Г Д Е Ж З И К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Э Ю Я

бесплатно рефераты
ПОИСК
Введите фамилию автора:


Програмирование на Visual Basic

обязательность объявления переменных (Require Variable Declaration), показа

сетки формы (Show Grid) и ее шаг (Width, Height), выравнивания элементов

управления относительно сетки (Align Controls to Grid), автоматического

сохранения текущих версий файлов форм и проекта перед каждым запуском

программы (Save Before Run).

[pic]

1.3.2. Контроль корректности алгоритма

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

специальные средства, позволяющие контролировать значения переменных на

различных этапах выполнения программы. Окно Debug является основным

средством для поиска ошибок (рис. 1.21). В верхнем поле окна выводятся вид

выражения (колонка Expression), значение выражения (колонка Value),

местонахождение выражения (колонка Context). Кнопки Immediate и Watch

обеспечивают переключение на просмотр соответственно непосредственно

вводимого в этом поле выражения (прямой ввод выражения) или уже заданного.

В нижнем поле отображается текст программы.

Вид выражения задается в окне Add Watch (вызывается из пункта Tool Главного

меню) (рис. 1.22). Раскрывающиеся списки модулей (Module) и процедур

(Procedure) позволяют задать местоположение выражения в программе.

Выражение может быть набрано вручную в текстовом окне. Кроме того, если в

тексте программы перед вызовом окна выделен какой-либо оператор или его

часть, то оно автоматически появляется в окне (см. рис. 1.22).

Кнопки в области Watch Type определяют условия вывода выражения (Watch

Expression - наблюдение за значением в точках прерывания; Break When Value

Is True - прерывание выполнения программы, когда значение выражения равно

заданному; Break When Value Changes - прерывание выполнения программы,

когда значение выражения меняется).

[pic]

Рис. 1.22 Для вывода в окно Debug нужно также установить точки прерывания

(моменты, когда программа прекращает работу и выдает требуемую информацию в

окно Debug). Обычно такими точками являются места программы, проверяемые на

корректность работы.

Для установки точки прерывания нужно:

. установить курсор или выделить соответствующий оператор программы;

. щелкнуть мышью по пункту Toggle Breakpoint (Поставить точку

прерывания) раскрывающегося меню Run (Старт) Главного меню.

Установленная точка прерывания выделится подсветкой (рис. 1.23).

После запуска программы значение проверяемого выражения выводится в окне

Debug (рис. 1.24.). Оператор прерывания выделяется рамкой, в окне

указывается место прерывания (проект, форма, процедура обработки события).

[pic]

Удалить точку прерывания можно щелкнув мышью по пункту Clear Toggle

Breakpoint (Убрать точку прерывания) раскрывающегося меню Run (Старт)

Главного меню.

При отладке программ целесообразно комбинировать постановку точек

прерывания и точек наблюдения (их установка задается кнопками Break When

Value Is True (Прерывание выполнения программы, когда значение выражения

равно заданному) и Break When Value Changes (Прерывание выполнения

программы, когда значение выражения меняется) окна Add Watch). Точки

наблюдения замедляют выполнение программы. Лучше установить точку

прерывания в подозрительном месте программы и выполнять программу с

нормальной скоростью до этой точки. Далее поставить одну или несколько

точек наблюдения и продолжать более медленный поиск ошибок в локализованной

области программы.

Если нет необходимости прослеживать изменение значения какой-либо

переменной в процессе выполнения программы, то для вывода текущего значения

вместо использования окна Add Watch можно использовать пункт меню Instant

Watch (Быстрый просмотр) раскрывающегося меню Tool Главного меню. Перед

этим, после прерывания выполнения программы, необходимо выделить переменную

в окне кода. В окне Instant Watch (рис. 1.25.) выводится имя переменной,

текущее значение и имя процедуры, в которой используется переменная.

Щелчком мыши по кнопке Add переменную можно добавить в список окна Debug

Windows.

Кнопка Immediate окна Debug (рис. 1.26) позволяет вывести переменную на

форму или изменить ее значение с помощью оператора присваивания (эти

изменения не отражаются на содержании программы). Это окно можно также

использовать для ввода команд, изменяющих свойства элементов управления

(шрифты, цвет фона и др.). Измененные значения выводятся в окне Debug (рис.

1.27).

Если проект включает много процедур, то полезным средством отладки является

трассировка вызова процедур (пункт меню Call... раскрывающегося меню Tool

Главного меню или одноименная кнопка панели инструментов). Окно (рис.

1.28.) показывает всю последовательность вызовов от исходной процедуры до

текущей (в верхней части расположена последняя вызванная процедура, в

нижней - первая). Список позволяет определить, как произошел переход в

текущую точку программы. [pic]

Рис. 1.25

[pic]

Рис. 1.27

[pic]

Рис. 1.28

Эффективным средством отладки является также пошаговое выполнение программы

и наблюдение результатов выполнения каждого оператора. После приостановки

выполнения программы (точки прерывания или кнопка Break) необходимо войти в

окно редактирования кода. Для выполнения одного оператора используется

клавиша F8. При этом будет выполнен оператор, выделенный рамкой, а

вьщеление будет перенесено на следующий оператор. Повторяя нажатие клавиши,

можно осуществлять пошаговое выполнение программы.

Если текущий оператор содержит вызов процедуры, нажатие клавиши F8, щелчок

мыши по пункту Step Into (Шаг внутрь) раскрывающегося меню Run или щелчок

мыши по пиктограмме Step Into Главного меню вызовет выполнение первого

оператора процедуры, которую можно продолжать выполнять по шагам.

Для выполнения всей процедуры (не по шагам) и переходу к оператору,

следующему за вызовом процедуры, используется щелчок мыши по пункту Step

Over (Обойти) или комбинация клавиш Shift+F8.

При пошаговом выполнении некоторый блок операторов можно обойти. Это можно

сделать, установив курсор на оператор, на котором необходимо выполнить

следующее прерывание выполнения программы, и щелкнув мышью по пункту меню

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.

[pic]

Рис. 1.29

В обработчик ошибок можно включить оператор Resume и продолжить выполнение

программы после исправления ошибки операторами, вставляемыми в обработчик

ошибок. Оператор Resume имеет несколько форм:

Resume возобновляет выполнение программы с оператора, вызвавшего ошибку;

Resume ‘Next возобновляет выполнение программы со следующего оператора;

Resume метка возобновляет выполнение программы с оператора, помеченного

меткой.

Пример.

В примере в процедуре Primer происходит деление на О (оператор YY = YY/XX,

перед выполнением которого переменой XX присваивается значение 0). Этот

оператор включен в область обработчика ошибок. При делении на 0 происходит

переход на оператор, помеченный меткой Label: (обработчик ошибок),

переменной XX присваивается значение 2 и программа продолжает выполнение с

оператора, на котором была ошибка на этапе выполнения в результате деления

на 0. Программа заканчивает работу и результат распечатывается на форме

(рис. 1.30).

[pic]

Рис. 1.30

[pic]

[pic] Таблица 2.1

|Название |Для каких |Описание |Возмо |

|свойства |элементов |действия |жность |

| |управления | |измнени|

| |используется | |я |

|Action |Common dialog |Определяет |-/+ |

| | |тип диалога | |

|Action |OLE |Определяет |-/+ |

|(OLE) | |тип действия | |

|Alignment |Check box. |Определяет |+/- |

| |label, option |способ | |

| |button, text |выравнивания | |

| |box |(по левому | |

| | |краю, по | |

| | |правому или | |

| | |по центру) | |

|Auto Redraw|Form, picture |Определяет |+/- |

| |box |возможность | |

| | |автоматическо| |

| | |го | |

| | |перерисования| |

|AutoSize |Label, picture|Определяет |+/- |

| |box |возможность | |

| | |автоматическо| |

| | |го изменения | |

| | |размера при | |

| | |заполнение | |

|BackColor, |Form, check |Определяют |+/+ |

|Fore Color |box, combo |соответственн| |

| |box, command |о цвет фона и| |

| |button |цвет | |

| |(TWibKoBackCol|выводимой | |

| |or) data |ин4юрмации | |

| |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 | | |

|BackStyle |Label, shape |Определяет |+/+ |

| | |прозрачность | |

| | |фона | |

|BorderColor|Line, shape |Определяет |+/+ |

| | |цвет рамки | |

|BorderStyle|Form, grid, |Определяет |Для |

| |image, label, |вид рамки |Form и |

| |line, OLE | |text |

| |control, | |box+/-+|

| |picture box, | |/+ |

| |shape, text | | |

| |box | | |

Продолжение табл 2 I

|Название |Для каких |Описание |Возможн|

|свойства |элементов |действия |ость |

| |управления | |изменен|

| |используется | |ия |

|BorderWidth|Line, shape |Определяет |+/+ |

| | |ширину | |

| | |границы | |

|Cancel |Command button|Определяет, |+/+ |

| | |что элемент | |

| | |выполняет | |

| | |функцию | |

| | |Cancel на | |

| | |форме | |

|Caption |Form, MDI |Определяет |+/+ |

| |form, check |текст, | |

| |box, command |выводимый на | |

| |button, data |элемент или | |

| |control, |возле него | |

| |frame, label, |Для формы | |

| |menu, option |-заголовок | |

| |button | | |

|CellSelecte|Grid |Ячейка |-/- |

|d | |таблицы | |

| | |выделена | |

| | |строкой и | |

| | |столбцом | |

|Class |OLE control |Определяет |+/- |

| | |класс объекта| |

| | |OLE | |

|ClipControl|Form, frame, |Определяет |+/+ |

|s |picture box |необходимость| |

| | |перерисовки | |

| | |всего объекта| |

| | |или | |

| | |появляющейся | |

| | |части | |

|Clip |Grid |Определяет |-/+ |

| | |содержимое | |

| | |выделенных | |

| | |ячеек таблицы| |

|Col, Row |Grid |Определяет |-/+ |

| | |выделенную | |

| | |колонку или | |

| | |строкуа | |

| | |таблицы | |

|ColAlignmen|Grid |Выравнивание |-/+ |

|t | |данных в | |

| | |колонке | |

| | |таблицы | |

|Cols, Rows |Grid |Определяет |+/+ |

| | |число | |

| | |колонок,столб| |

| | |цов таблицы | |

|Columns |List box |Определяет |+/+ |

| | |число колонок| |

| | |в списке | |

|ColWidth |Grid |Ширина |-/+ |

| | |колонки | |

|ControlBox |Form |Определяет |+/- |

| | |наличие | |

| | |кнопки | |

| | |системного | |

| | |меню на форме| |

|CuncntX, |Form, picture |Текущие |-/+ |

|CurrentY |box, Printer |координаты по| |

| |object |горизонтали и| |

| | |вертикали | |

| | |(для рисующих| |

| | |или | |

| | |печатающих | |

| | |методов) | |

Продолжение табл. 2.1

|Название |управления | |жность |

|свойства |используется | |изменен|

| | | |ия |

|DatabaseName|Data control |Имя и |+/+ |

| | |расположение | |

| | |базы данных | |

|DataChanged |Check box, |Указатель |-/+ |

| |image, label, |изменения | |

| |picture box, |данных в | |

| |text box |элементе при | |

| | |чтении записи| |

| | |(несовпадение| |

| | |) | |

|DataField |Check box. |Определяет |+/+ |

| |image, box |связь | |

| | |с полем | |

| | |записи файла | |

| |Check box, |Определяет |+/- |

| |image, label, |источник | |

| |picture box, |данных для | |

| |text box |элемента | |

| | |управления | |

|Default |Command button|Определяет, |+/+ |

| | |является ли | |

| | |данная | |

| | |командная | |

| | |командной | |

| | |кнопкой по | |

| | |умолчанию | |

| |box. Printer |рисуемой |-/+ |

| |object, shape.|линии (точки)| |

|DrawWidth |Form, picture |Определяет |-/+ |

| |box, Printer |ширину | |

| |object |рисуемой | |

| | |линии (точки)| |

|Enabled |Form, 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 | | |

|FillColor |Form, picture |Определяет |+/+ |

| |box, Printer |цвет | |

| |object, shape |заполнения | |

|FillStyle |box. Printer |заполнения | |

| |object, | | |

|FixedCols, |Grid |Число |+/+ • |

|Fixed Rows | |выделенных | |

| | |колонок,столб| |

| | |цов | |

Продолжение табл. 2.1

|Название |Для каких |Описание |Возможн|

|свойства |элементов |действия |ость |

| |управления | |изменен|

| |используется | |ия |

|FontBold, |Form, check |Вид |+/+ |

|Fontltalic,|box, combo |выводимого | |

|FontStriket|box, command |текста(жирный| |

|hr. |button, common|, курсив, | |

|FontTranspa|dialog, data |зачеркнутый, | |

|r. |control, |“ясный”) | |

|FontUnderli|directory list| | |

|ne |box, drive | | |

| |list box, file| | |

| |list box, | | |

| |frame, grid, | | |

| |label, list | | |

| |box, | | |

| |optionbutton, | | |

| |picture box, | | |

| |Printer | | |

| |object, text | | |

| |box | | |

|FontNarne |Form, check |Тип шрифта |+/+ |

| |box, combo |выводимого | |

| |box, command |текста | |

| |button, common| | |

| |dialog, data | | |

| |control, | | |

| |directory list| | |

| |box, drive | | |

| |list box, file| | |

| |list box, | | |

| |frame, grid, | | |

| |label, list | | |

| |box, | | |

| |optionbutton | | |

| |picture box. | | |

| |Printer | | |

| |object, text | | |

| |box | | |

|FontSize |Form, check |Размер шрифта|+/+ |

| |box, combo |выводимого | |

| |box, command |текста | |

| |button, common| | |

| |dialog, data | | |

| |control, | | |

| |directory list| | |

| |box, drive | | |

| |list box, file| | |

| |list box, | | |

| |frame, grid, | | |

| |label, list | | |

| |box, | | |

| |optionbutton, | | |

| |picture box, | | |

| |Printer | | |

| |object, text | | |

| |box | | |

|BackColor, |Form, check |Цвет фона и | |

|ForeColor |box, combo |основной цвет| |

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10


бесплатно рефераты
НОВОСТИ бесплатно рефераты
бесплатно рефераты
ВХОД бесплатно рефераты
Логин:
Пароль:
регистрация
забыли пароль?

бесплатно рефераты    
бесплатно рефераты
ТЕГИ бесплатно рефераты

Рефераты бесплатно, реферат бесплатно, сочинения, курсовые работы, реферат, доклады, рефераты, рефераты скачать, рефераты на тему, курсовые, дипломы, научные работы и многое другое.


Copyright © 2012 г.
При использовании материалов - ссылка на сайт обязательна.