Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
16
Добавлен:
06.11.2017
Размер:
859.54 Кб
Скачать

Тема 5.1. Стандартные модули и модульная структура приложений в vb

5.1.1. Стандартные модули и их использование

5.1.2. Создание и выполнение Windows-проектов с несколькими формами

5.1.3. Структура приложений в VB

5.1.4. Задачи для самостоятельного решения по теме «Стандартные модули и

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

5.1.5. Тестовые задания по теме «Стандартные модули и модульная структура

приложений в VB»

5.1.1. Стандартные модули и их использование

Программы Visual Basic хранятся в программных модулях, которые могут быть трех видов и файлы которых имеют расширение *.vb: модуль формы, стандартный модуль и модуль класса. Простейшее приложение, состоящее из одной формы, содержит, как правило, только модуль формы (например, Form1.vb). При добавлении в проект, например, второй формы, ее программный код будет храниться в модуле формы Form2.vb. Модули формы, как уже известно, содержат объявления констант, переменных, типов данных, процедур и функций, а также событийных процедур, которые применяются на уровне модуля формы (т.е. используются в этой форме), хотя в них также можно ссылаться на другие формы и объекты данного проекта. Однако повторяющиеся функции и процедуры, выполняемые в нескольких формах, можно выделить в отдельный программный код, который будет являться общим для всех. Такой программный код называется стандартным модулем, и служит для хранения функций, процедур, констант и переменных, которые являются глобальными для всего приложения.

Стандартный модуль – это специальный файл, имеющий расширение *.vb и содержащий объявления переменных и описание про­цедур, которые могут быть использованы в любом месте программного кода проекта.

Как и модули формы, стандартные модули отображаются в окне Обозреватель решений (Solution Explorer), и могут быть сохранены на диске с помощью команды Со­хранить ModuleName.vb как (Save ModuleName.vb As) элемента главного меню Файл (File). Стандартный модуль ModuleName.vb является элементом проекта. В отличие от модуля форм, стандартные модули содержат толь­ко программный код и не содержат интерфейса пользователя. Модули класса создаются при использовании объектно-ориентированного программирования и будут рассмотрены позже. И хотя стандартные модули имеют некоторые сходства с классами (и те и другие являются контейнерами для данных и процедур), они отличаются от классов тем, что не являются объектно-ориентированными, стандартные модули не определяют структуры и характеристики объектов и не могут наследоваться.

Чтобы создать в программе новый стандартный модуль, необходимо щелкнуть на кнопке Добавление нового элемента (Add New Item) стандартной панели инструментов или на команде Добавить новый элемент… (Add New Item…) элемента главного меню Проект (Project). Также можно использовать команду Добавить модуль… (Add Module…) элемента главного меню Проект (Project). В результате выполнения одной из этих команд откроется диалоговое окно Добавление нового элемента … (Add New Item…) , в котором следует выб­рать шаблон Module и указать имя модуля (рис. 5.1-1).

После нажатия на кнопку Добавить (Add) в окне Редактор кода (Code Editor) по­явится новый пустой модуль. Первый модуль программы по умолчанию имеет имя Module1.vb, но это имя можно изменить, сделав щелчок пра­вой кнопкой мыши на модуле в окне Обозреватель решений (Solution Explorer) и введя новое имя моду­ля, или с помощью команды Сохранить Module1.vb как (Save Module1.vb As) элемента меню Файл (File).

Рис. 5.1-1

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

Пример 5.1-1. Создать пустой стандартный модуль.

  1. Запустить VS и создать новый проект с именем Пример 5.1-1.

Будет создан новый проект, и в окне Конструктор (Designer) появится пустая форма.

  1. Выполнить команду Добавить новый элемент… (Add New Item…) элемента главного меню Проект (Project).

Появится диалоговое окно Добавление нового элемента (Add New Item).

  1. Выбрать шаблон Module.

В текстовом поле Имя (Name) появится имя по умолчанию Module1.vb. (рис. 5.1-1).

Диалоговое окно Добавление нового элемента… (Add New Item…) предлагает несколько шаблонов, доступных для использования в проектах. Каждый из этих шаблонов имеет различные характеристики и включа­ет начальный код, который облегчает их использование. VS содержит много шаблонов-форм Windows.

Щелкнуть на кнопке Добавить (Add).

VB добавит в проект модуль Module1. Этот модуль появится в окне Редактор кода (Code Editor), как показано на рис. 5.1-2.

Рис. 5.1-2

  1. Чтобы увидеть окно Обозреватель решений (Solution Explorer), дважды щелкните мышью на строке заголовка окна Обозреватель решений (Solution Explorer), а затем выберите Module1.vb.

Окно Обозреватель решений будет выглядеть так, как на рис. 5.1-3.

Рис. 5.1-3

Окно Обозреватель решений (Solution Explorer) в списке компонент проекта содержит модуль, ко­торый был добавлен в программу. Имя Module1 указывает на имя фай­ла модуля по умолчанию. Впоследствии можно изменить это имя файла.

  1. Чтобы увидеть полный размер окна Свойства (Properties), дважды следует щелкнуть на строке его заголовка.

Как показано на рис. 5.1-4, окно Свойства (Properties) отображает свойства Module1.vb.

Так как модуль содержит только код, он имеет всего несколько свойств. Используя наиболее важное его свойство – File Name (Имя файла) – можно указать другое имя файла модуля, сделав его более описатель­ным в будущем. Обдумайте это название, так как в дальнейшем может возникнуть необходимость встроить этот модуль в еще один проект.

Рис. 5.1-4

  1. Изменить свойство File Name на МатематическиеФункции.vb или другое имя файла и нажать на <Enter>.

Имя файла модуля в окнах Свойства (Properties), Обозреватель решений (Solution Explorer) и в окне Редактор кода (Code Editor) обновится.

  1. Вернуть окна Свойства (Properties) и Обозреватель решений (Solution Explorer) в их нормальные прикреп­ленные положения, дважды щелкнув мышью на их заголовках.

Как вы можете видеть, работа с модулями в проекте очень похожа на работу с формами. В следующем примере необходимо будет добавить в модуль от­крытую переменную.

  1. Чтобы удалить модуль из проекта, следует щелкнуть на модуле в окне Обозреватель решений (Solution Explorer), а затем щелкнуть на команде Исключить из проекта (Exclude From Project) элемента главного меню Проект (Project).

Команда Исключить из проекта (Exclude From Project) не удаляет модуль с жесткого

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

эффект этой команды, щелкнуть на команде Добавить существующий элемент (Add Existing Item) элемента главного меню Файл (File), выбрать файл, который требуется

добавить в проект, и затем щелкнуть на кнопке Добавить (Add).

Объявление глобальной, или открытой переменной в модуле достаточно просто – ввести ключевое слово Public, за которым следует имя переменной и объявление ее типа. После того как переменная будет объявлена, читать ее содержимое, изменять его или отображать его на экране можно в любой процедуре программы.

Например, оператор

Public Global As Integer

объявляет открытую переменную с именем Global типа Integer.

Следующий пример демонстрирует, как можно использовать в модуле открытую переменную с именем Wins. Для этого необходимо дополнить проект Счастливая семерка из Темы 4.1, в которой будет использована переменная Wins для записи числа выигрышей.

Пример 5.1-2. Переработать проект примера 4.3-1 Счастливая семерка.

В программном коде проекта примера 4.3-1 переменную Wins – число выигрышей, процедуру-функцию с именем HitRate( ), которая вычисляет долю выигрышей в игре, т. е. другими слова­ми, процентное выражение игр, в которых появляется хотя бы одна се­мерка, и открытую переменную Spins переместим из модуля формы в стандартный модуль. Причем форма останется такой же, как на рис. 4.3-1, а программный код примет вид, как на рис. 5.1-5.

Module Module1

Public Spins As Short

Public Wins As Short

Function HitRate(ByVal Hits As Short, ByVal Tries As Short) As String

Dim Percent As Single

Percent = CSng(Hits / Tries)

Return Format(Percent, "0.0%")

End Function

End Module

Public Class Form1

Private Sub Button2_Click(ByVal sender As System.Object, _

ByVal e As System.EventArgs) _

Handles Button2.Click

End

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, _

ByVal e As System.EventArgs) _

Handles Button1.Click

PictureBox1.Visible = False ' скрыть картинку

Label1.Text = CStr(Int(Rnd() * 10)) ' выбрать числа

Label2.Text = CStr(Int(Rnd() * 10))

Label3.Text = CStr(Int(Rnd() * 10))

Spins = Spins + 1

If (Label1.Text = "7") Or (Label2.Text = "7") _

Or (Label3.Text = "7") Then

PictureBox1.Visible = True 'скрыть рисунок

Beep()

Wins = Wins + 1

Label5.Text = "Побед:" & Wins

End If

Label6.Text = HitRate(Wins, Spins)

End Sub

Private Sub Form1_Load(ByVal sender As System.Object, _

ByVal e As System.EventArgs) Handles MyBase.Load

Randomize()

End Sub

End Class

Рис. 5.1-5

Соседние файлы в папке 5.1. Стандартные модули и модульная структура приложений в VB