РУБРИКИ

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

   РЕКЛАМА

Главная

Зоология

Инвестиции

Информатика

Искусство и культура

Исторические личности

История

Кибернетика

Коммуникации и связь

Косметология

Криптология

Кулинария

Культурология

Логика

Логистика

Банковское дело

Безопасность жизнедеятельности

Бизнес-план

Биология

Бухучет управленчучет

Водоснабжение водоотведение

Военная кафедра

География экономическая география

Геодезия

Геология

Животные

Жилищное право

Законодательство и право

Здоровье

Земельное право

Иностранные языки лингвистика

ПОДПИСКА

Рассылка на E-mail

ПОИСК

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

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

VISUAL BASIC 6

Глава 1. ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ НА VISUAL BASIC 4 В СРЕДЕ WINDOWS

1. 1. ЭКРАННЫЕ ЭЛЕМЕНТЫ

После запуска Visual Basic на экране появляются следующие окна (рис 1 1)'

. основное окно сверху экрана Miciosoft Visual Basic Project 1 (design),

содержащее главное меню и панель инструментов (Toolbar);

. окно формы в центре с заголовком Form;

. окно шаблонов (palett windows) или инструментов (Toolbox) слева от

формы;

. окно свойств (Properties) сверху справа;

. окно проекта (Project 1) снизу справа

[pic]

Рис 1 1

1. 1. 1. Основное окно

Главное меню основного окна содержит стандартные для Windows меню Файл

(File), Правка (Edit), Вид (View) и меню собственно Visual Basic Вставка

(Insert), Выполнить (Run), Tools (Средства), Add-in (Дополнения), (Help)

Файл (File) - команды для открытия, сохранения, печати и компиляции

проекта Visual Basic

Правка (Edit) - команды редактирования.

Вид (View) - команды просмотра компонентов Visual Basic

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

форм и модулей

Выполнить (Run) - команды для выполнения и компиляции проекта

Tools (Средства) - команды для конфигурирования среды

программирования Visual Basic

Add-in (Дополнения) - дополнительные средства для расширения

возможностей Visual Basic

(Help) - доступ к справочному руководству Панель инструментов (Toolbar)

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

используемых команд (рис 1 2)

[pic]

Функции пиктограмм (слева направо) следующие-создать форму (New Form);

создать модуль (New Module);

открыть проект (Open Project);

сохранить проект (Save Project),

блокировка элементов управления на форме (Lock

contro s),

редактор меню (Menu Editor), свойства (Properties Windows), просмотр

объектов (Object Browser), проект (Project);

старт (Start),

прервать выполнение (Break);

поставить/убрать точку прерывания (BieakPoint), • немедленный просмотр

(Instant Watch);

. вызовы (Calls);

. пошаговое выполнение (Single Step);

. выполнение по процедурам (Procedure Step).

Кнопки создания формы (New Form), создания модуля (New Module), открытия

проекта (Open Project), сохранения проекта (Save Project) позволяют создать

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

в него новые диалоговые окна (формы) и сохранить проект на диске с

внесенными изменениями.

Кнопка блокировки элементов управления на форме (Lock controls) позволяет

зафиксировать положение элементов управления на форме.

Кнопка редактора меню (Menu Editor) используется для создания

пользовательского меню проекта и определения его свойств.

[pic]

Рис 1 3

Кнопка свойств (Properties Windows) используется для вывода окна со списком

свойств и их значений для формы и элементов управления.

Кнопка просмотра объектов (Object Browser) выводит окно, в котором можно

для выбранного подмножества Visual Basic или

проекта получить список его компонентов или модулей и относящихся к каждому

из них список методов и свойств (рис. 1.3). Для выбранных элементов списка

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

Кнопка проекта (Project) активизирует окно проекта. Кнопки “Старт” (Start),

“Прервать выполнение” (Break), “Конец выполнения” (End), “Поставить/убрать

точку прерывания” (Breakpoint), “Немедленный просмотр” (Instant Watch),

“Вызовы” (Calls), “Пошаговое выполнение” (Single Step), “Выполнение по

процедурам” (Procedure Step) используются при отладке программ.

Окно проекта (рис. 1.4) содержит список всех файлов, необходимых для

выполнения создаваемой программы. Имя Forml.frm присваивается по умолчанию

первой диалоговой форме проекта (это имя можно изменить или сохранить для

дальнейшего использования). Этот файл содержит описание формы, элементов

управления (кнопок, текстовых окон и др.) и текст программ, связанных с

этими элементами.

[pic]

Файл специальных средств управления имеет расширение .ОСХ или -ВСХ и

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

Обычно хранится в каталоге WINDOWS/SYSTEM, и его можно использовать в

разных проектах.

Файл стандартных модулей имеет расширение .BAS и содержит текст программ.

Файл модулей классов имеет расширение .CLS и содержит определения классов.

Файл ресурсов имеет расширение .RES и содержит данные для проекта

(текстовые строки, битовые образы и др.).

Файл проекта имеет расширение .VBP или .МАК и содержит пути назначения

(диски и каталоги) и имена всех перечисленных файлов проекта.

Файл проекта может быть откомпилирован с целью получения исполняемого файла

программы с расширением .ЕХЕ. В окне проекта имеются также две кнопки: View

Form (Просмотр формы) и View Code (Просмотр кода). По умолчанию Visual

Basic при выборе какого-либо файла проекта показывает форму (см. рис. 1.1с

общим экраном Visual Basic).

При щелчке на кнопке View Code (Просмотр кода) открывается окно кода

(текста программы), относящегося к рассматриваемой форме (заголовок

Forml.frm) и задаваемым на ней диалоговым элементам. Окно (рис. 1.5)

содержит раскрывающиеся окна Object и Ргос и поле для записи программы. В

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

(Form). Второе содержит список процедур обработки событий, относящихся к

рассматриваемому диалоговому элементу формы (в данном случае к самой форме

- Form).

[pic]

Рис 1 5

Каждому диалоговому элементу в Visual Basic поставлен в соответствие

определенный набор событий (эти события перечислены в раскрывающемся меню:

Load, LostFokus и др.), происходящих в период выполнения программы.

Например, событие Load (Загрузка) происходит при загрузке формы, событие

Clik (Щелчок) вызывается щелчком кнопки мыши, событие DblClick (Двойной

щелчок) вызывается двойным щелчком кнопки мыши и т.д.

В свою очередь, событию ставится в соответствие процедура обработки события

(процедура (procedure) в языках программирования состоит из набора

операторов, выполняемых при вызове процедуры). То есть событие может

вызывать программируемое изменение данных. Visual Basic содержит заготовки

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

событию (строки Sub Form_Load () и End определяют первый и

последний операторы процедуры обработки события Load (Загрузка)). В поле

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

конечный оператор. Имя процедуры формируется автоматически и состоит из

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

элемента и имя выделенного события (строки Sub Form_Load () и End

определяют первый и последний операторы процедуры обработки события Load

(Загрузка)).

1.1.3. Окно шаблонов или инструментов

Достоинством GUI является то, что имеется стандартный набор объектов

диалога (окна, кнопки, линейки прокрутки и т.д.), позволяющий создать

стандартный Windows интерфейс программируемой системы. Диалоговые элементы

программной системы создаются на основе стандартных шаблонов или

инструментов, которые выбираются из окна шаблонов или инструментов

(Toolbox) и размещаются на форме.

Имеются следующие основные элементы управления (инструментальные средства):

[pic]

Указатель (Pointer) не является инструментальным средством. Используется

для перемещения или изменения размеров помещенных на форму элементов

управления.

[pic]

Изображение или картинка (Picture Box) используется для показа на форме

графических объектов (статических или динамических), которые получаются с

помощью графических методов.

Метка (Label) используется для вывода текста, который не должен изменяться

пользователем (например, заголовок какого-либо объекта управления).

[pic]

[pic]

Текстовое окно (Text Box) используется для ввода, вывода и редактирования

пользователем текстовой (символьной) строки информации. [pic]

Рамка (Frame) используется для функциональной или визуальной группировки

(выделения) элементов управления. Для того чтобы сгруппировать элементы

управления, сначала на форме размещается рамка, а затем внутри нее

размещаются элементы

[pic]

Командная кнопка (Command Button) используется для ввода команды

пользователем.

[pic]

Флажок (Check Box) используется в тех случаях, когда пользователь должен

выбрать или отметить на форме некоторое условие (да или нет). Условий,

которые помечаются флажками на форме, может быть несколько и они могут

выполняться одновременно (т.е. несколько флажков на форме может быть по-

мечено одновременно).

[pic]

Переключатель (Option Button) используется в тех случаях, когда

пользователь должен выбрать или отметить на форме некоторое условие (да или

нет). Условий, которые помечаются переключателями на форме, может быть

несколько и только одно из них может быть выбрано (т.е. если одно условие,

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

форме не помечены или не выбраны).

[pic]

Комбинированный список (Combo Box) является комбинацией списка (см. ниже) и

текстового окна. Используется для вывода в специальном окне (списке)

нескольких строк текстовой (символьной) информации, из которых пользователь

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

пользователем текстовой (символьной) строки информации.

[pic]

Список (List Box) используется для вывода в специальном окне нескольких

строк текстовой (символьной) информации, из которых пользователь может

выбрать одну или несколько. Если в списке содержится больше элементов, чем

может одновременно быть показано в окне, возможна прокрутка списка.

[pic]

Горизонтальная линейка прокрутки (Horizontal Scroll Bar) используется для

быстрого движения по длинным спискам или строкам и отображения текущего

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

[pic]

Вертикальная линейка прокрутки (Vertical Scroll Bar) аналогична

горизонтальной линейке прокрутки.

[pic]

Таймер (Timer) используется для задания моментов (интервалов) времени, в

которых должны свершиться какие-либо события. Этот элемент управления

невидим на форме во время выполнения ппиложения.

[pic]

Список дисков (Drive List Box) используется для ото-

браженияи выбора имеющихся в системе дисков.

[pic]

Список каталогов (Directory List Box) используется для отображения

иерархического списка каталогов в пользова-тельской системе.

Список файлов (File List Box) используется для отображения списка файлов в

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

др.).

[pic]

[pic]

Форма (Shape) используется для отображения простых фигур (прямоугольник,

окружность, эллипс) на форме на этапе проектирования формы.

[pic]

Линия (Line) используется для отображения линий различного вида на форме на

этапе проектирования формы.

[pic]

Изображение (Image) используется для отображения на форме растровых

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

только декоративными и требуют меньше ресурсов компьютера, чем Picture Box

[pic]

Сетка (Grid) представляет собой таблицу данных, состоящую из столбцов и

строк. Положение конкретного данного определяется координатой строки и

столбца, на пересечении которых оно находится

[pic]

OLE 2 0 реализует технологию Microsoft OLE (object linking and embending -

связь и внедрение объектов) и позволяет создавать в программе объект,

содержащий данные из другой внешней программы (приложения), например из

электронной таблицы Excel Технология OLE обеспечивает связь с внешним

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

данные в программе на Visual Basic)

[pic]

Элемент данные (Data) позволяет получить доступ к конкретной информации в

базе данных

[pic]

Стандартное диалоговое окно (Common Dialog) включает набор диалоговых окон,

реализующих стандартные и часто используемые функции Windows (открыть,

сохранить как идр)

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

можно получить во встроенной справочной системе Visual Basic и которые

можно добавлять к приведенному основному списку

1.1.4. Окно свойств

Каждый шаблон (инструмент) и сама форма обладают набором специфических

свойств, параметры которых определяют их внешний вид и поведение при работе

программы Список параметров и их значений определяются в окне свойств (рис

1 6)

Раскрывающийся список объектов в верхней части содержит имена и типы

объектов (шаблонов), помещенных на форму, а также самой формы (Form] - имя

формы, Form - тип) Изначально список содержит только форму, каждый новый

шаблон, помещаемый на форму, включается в список

Для фиксированного элемента списка объектов выводится список свойств и их

значений (на рис 1 6 список свойств для формы) Значение выделенного

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

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

Например, свойство Enabled (Доступно) имеет два альтернативных параметра'

True и False

[pic]

В заключение отметим, что среду Visual Basic можно настроить в соответствии

с предпочтениями пользователя (пункт главного меню Tool и далее пункты

раскрывающегося меню Environment Options.., Project Options.., Format

Options...).

Рис 16

1.2. Пример разработки приложения

Создание любой программной системы (проекта) на Visuai Basic состоит из

следующих этапов”

. создания интерфейса (создания окна диалога и размещения в нем

элементов управления),

. установки параметров (свойств) элементов управления;

. ввода текста программ и их отладки;

. сохранения проекта в удобном для последующего использования виде

Рассмотрим реализацию этих этапов на примере простого проекта для

преобразования значений температуры по Цельсию в значения по Фаренгейту и

наоборот Преобразование производится соответственно по формулам

F=(C*9/5)+32, C=(F-32)*5/9

Пользовательский интерфейс показан на рис 1 7 [pic]

При вводе значения температуры по Цельсию (окно Celsius) и нажатии клавиши

Ввода (Enter) в окне Fahreheit выводится значение по Фаренгейту.

При аналогичном вводе значения по Фаренгейту выводится значение по Цельсию.

Проект включает :

. формы (фон, Windows, диалоговые окна);

. элементы управления ((графические объекты, помещенные на форму);

. программный код (процедуры и объявления).

Рис. 1.7

При запуске Visual Basic по умолчанию открывается новый проект с именем

Project 1 и относящаяся к нему форма Formi (рис. 1.8). На форме разместим

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

шаблонов.

Задать элементы управления можно двумя способами:

1. Щелкните мышью на нужном элементе окна шаблонов (стрелка

превращается в”+”), перенесите указатель в верхний левый угол формы,

нажав и не отпуская кнопку мыши переместите указатель вправо и вниз

формы, отпустите кнопку мыши. На форме в верхнем левом углу создается

выбранный элемент управления соответствующего перемещению размера.

2. Дважды щелкнуть мышью на нужном элементе окна шаблонов. При этом

создается элемент управления с размерами по умолчанию в центре формы.

Выберем указанными способами два текстовых окна и разместим их на

форме (рис. 1.9).

Активный в данный момент элемент помечен маркерами (щелчком мыши

элемент делается активным) и его можно перемещать мышью и изменять его

размеры. Это позволяет отредактировать размер и положение управляющих

элементов на форме соответственно желанию разработчика. После ввода

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

рис. 1.10.

По умолчанию последовательно вводимым одинаковым элементам

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

(текстовым окнам последовательно пписваивают-

ся имена Textl и Textl, меткам последовательно присваиваются имена

Label! и Label2).

[pic]

Рис. 1.8

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

(Properrties). Активизируем элемент Label], при этом активизируются

свойства в окне свойств, относящиеся к этому элементу (заголовок Labell

Label). Выберем свойство Caption (Название) и определим его как Celsiu ,

используя строку ввода. Это название появляется на форме (рис. 1.11).

Свойство Caption (Название) для Label2 зададим Fahrenheit. Остальные

оставим по умолчанию.

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

окно (удалим значение Textl свойства Text) и присвоим ему имя txtCels

(свойство Name (Имя), которое будем использовать при написании текста

программ (рис. 1.12). Очистим также второе окно и присвоим ему имя ixtFahr.

Остальные свойства обоих окон оставим по умолчанию. [pic]

[pic]

Рис 111

Для ввода текста необходимых программ щелкните мышью на кнопке View Code

окна “проекты” (окно Piojektl mak) Откроется окно FORM1 (имя проектируемой

формы по умолчанию Formi) Откроем слева раскрывающийся список Object и

выберем в нем объект txtCels (в качестве объекта выбирается верхнее

текстовое окно формы, ранее для этого было задано имя txtCels )

Откроем справа раскрывающийся список Ргос и выберем процедуру обработки

события Keypress (нажатие клавиши) В поле формы появляются первая и

последняя строки процедуры Имя процедуры txtCels_KeyPress формируется

автоматически (первая часть имени определяется именем выбранного элементом

- верхним текстовым окном, вторая - именем выбранной процедуры обработки

события) Параметром процедуры является значение кода нажатой клавиши

(KeyAscii), определенное как целый тип (Integer) (рис 1 13)

Введем теперь необходимые операторы процедуры (рис 1 14) При нажатии

клавиши Enter, ASCII-код которой равняется 13 (комментарий в тексте

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

окне значению температуры по Цельсию и значение вычисленной температуры

выводится в другом окне

[pic]

Рис 1 12

[pic]

Рис 1 13

Функция val преобразует текстовую строку в числовое значение Составные

имена txtFahr Text и txtCels Text связаны с включением в Visual Basic так.

называемых методов для объектов (форм и командных кнопок) Введем также

описания переменных tem_Cels и tem_Fahr в раздел общих (general) описании,

что делает их доступными для обеих процедур

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

кнопке Run панели инструментов главного меню, проект можно отправить на

выполнение Появляется спроектированная форма, в окнах которой можно вводить

информацию (рис 1 15) Кроме ввода и вывода информации, форма соответствует

стандарту Windows приложений (реагирует на кнопки минимизации и

максимизации, изменяет размеры и др )

Щелчок на кнопке Конец выполнения панели инструментов главного меню

завершает выполнение проекта

Отлаженный проект можно сохранить двумя способами • используя команду Save

Project или Save Project as... раскрывающегося меню File главного меню;

. используя команду Make EXE File раскрывающегося меню File главного

меню.

[pic]

Рис 1 14

В первом случае выполнить проект можно только после запуска Visual Basic.

Во втором случае программы проекта компилируются и создается ЕХЕ-файл,

позволяющий выполнить проект автономно без запуска Visual Basic, даже если

на компьютере не установлен Visual Basic.

При выполнении команды Save Project as... появляется окно (рис. 1.16),

позволяющее задать директорию для хранения и имя проекта (проект

сохраняется в директории C:\VB под именем temper, mak).

[pic]

При выполнении команды Make EXE File появляется окно (рис. 1.17),

позволяющее задать директорию для хранения ЕХЕ-файла и его имя (EXE- файл

сохраняется в директории C:\VB под именем temper.exe).

Рис 1 15

При щелчке по кнопке “Options...” появляется специальное окно (рис. 1.18)

для задания необходимой информации по готовому приложению (номер версии,

информация о компании- разработчике, имя созданного приложения (TEMPER),

иконка для формы и др.).

[pic]

Рис 1 16

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

машинный язык (набор команд процессора) специальными программами

переводчиками. Эти программы принципиально делятся на компиляторы

(compilers) и интерпретаторы (interpreters). Первые транслируют всю

программу целиком и создают законченный программный модуль на машинном

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

языке программирования и сразу же

[pic]

Рис 1 17

[pic]

Рис 1 18

исполняют полученный фрагмент программы на машинном языке. Далее

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

программирования, транслирует ее и т. д

Visual Basic относится к языкам программирования интерпретирующего типа

1.3. ОТЛАДКА ПРОГРАММ

Любая программа, написанная даже квалифицированным программистом, содержит

ошибки, которые выявляются и исправляются в процессе отладки программы

Кроме того, при работе с отлаженной программой пользователь может создать

ситуацию, которая программой не обрабатывается корректно Рассмотрим процесс

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

имеющиеся для этого средства в Visual Basic

1.3.1. Синтаксический контроль

При ошибке в наборе текста программы в окне кода автоматически (при

активизации в диалоговом окне Environment Options (Параметры Среды) флажка

Display Syntax Errors (Показывать синтаксические ошибки)) инверсной

подсветкой выделяется неправильный фрагмент оператора программы На этом

этапе Visual Basic отслеживает синтаксические ошибки (неправильно

написанные ключевые слова, неверный порядок операндов в операторах,

некорректную пунктуацию и т п )

Лишняя точка в операторе уже приведенной выше процедуры автоматически

показывается с разъяснением ошибки в окне

[pic]

Рис 1 19 Вызов диалогового окна Environment Options (Параметры Среды)

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

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

выводимые окна среды (Toolbox, Properties, Project, Debag), задать

обязательность объявления переменных (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 |Цвет фона и | |

Страницы: 1, 2, 3, 4, 5


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