Visual Basic для новичков. Шаг за шагом
Самоучитель / справочник
Евгений Матвеев

© Евгений Матвеев, 2023

ISBN 978-5-4483-0400-2

Создано в интеллектуальной издательской системе Ridero

Введение

О чЁм эта книга?

Книга представляет собой пошаговый самоучитель по программированию на языке Microsoft Visual Basic версии 6.0, с последовательным изучением всех основных компонентов языка Visual Basic и элементов управления Windows, которые в нём используются.

Она будет также очень полезна и при рассмотрении других версий языка Visual Basic, так как отличия между ними на начальном уровне изучения не приниципиальны.

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

Прочитав эту книгу, вы научитесь:

• устанавливать Microsoft Visual Basic 6.0 на свой компьютер,

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

• находить нужную информацию в справочной системе,

• оперировать свойствами и методами объектов Windows,

• программировать различные внешние устройства,

• писать сетевые приложения для работы в Интернете,

• проектировать свое собственное приложение,

• разрабатывать его интерфейс,

• создавать исходный текст программы,

• отлаживать программу и находить в ней ошибки,

• компилировать код программы в исполнимый файл,

• создавать инсталляцию готового приложения,

• распространять свои программы через Интернет,

• …и многому другому!

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

Большая часть информации, содержащейся в этой книге, пригодится вам также и в других целях, не связанных напрямую с изучением Visual Basic:

• для лучшего понимания принципов работы операционной системы Microsoft Windows,

• изучения основ программирования вообще,

• написания программ на других диалектах языка Basic.

История появления языка Visual Basic

Почти сразу же после появления электронных вычислительных машин (ЭВМ), в 50-х годах ХХ века были разработаны первые языки программирования для управления вычислительным процессом.

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

По мере распространения ЭВМ возникла необходимость упрощения языка взаимодействия человека с машиной, в результате чего в Dartmouth College был создан язык программирования BASIC. Это название являлось аббревиатурой, а полное наименование этого языка звучало как Beginner’s All-purpose Symbolic Instruction Code (универсальный символьный программный код для начинающих). В то же время слово Basic переводится с английского как «базовый», «основной». Как бы то ни было, прижился именно короткий вариант названия.

Поначалу Basic был очень простым языком программирования, так как предназначался для обучения. Именно из-за своей простоты и компактности он был выбран в качестве языка для первых микрокомпьютеров серии Альтаир (Altair), выпущенных в 1975 году и имеющих всего 4 кб оперативной памяти. Разрабатывали интерпретатор языка основатели корпорации Microsoft – Билл Гейтс (Bill Gates) и Пол Аллен (Paul Allen).

Когда появились персональные компьютеры фирмы IBM, был создан интерпретатор Microsoft GW-Basic, работающий под управлением операционной системы DOS. У интерпретатора GW-Basic имелся интерфейс командной строки и занимал он менее 100 кб оперативной памяти компьютера.

Следующим шагом в развитии языка Basic для DOS было появление двух компиляторов: Microsoft QuickBasic и Borland TurboBasic. Они оба отличались более удобным оконным интерфейсом, наличием текстового редактора для написания программ, системы отладки и возможностью генерации выполнимых exe-файлов.

Через несколько лет после появления операционной системы Microsoft Windows, в 1991 году был создан Microsoft Visual Basic for Windows версии 1.0. Это был революционный шаг в развитии языка, так как теперь отпала необходимость в скурпулезном программировании интерфейса приложений – достаточно было нарисовать его.

В дальнейшем развитие языка шло в направлении совершенствования Microsoft Visual Basic for Windows, которое было связано, в основном, с добавлением новых инструментальных средств и расширением поддержки работы с объектами операционной системы Windows, а также прикладными программами, прежде всего – с пакетом Microsoft Office.

Отличительные особенности Visual Basic

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

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

Создание объектов интерфейса: окон, кнопок, полей ввода, флажков и т. п., с помощью Visual Basic не представляет большого труда и напоминает рисование в графическом редакторе. После этого остается лишь написать подпрограммы, связанные с этими объектами.

Существенное отличие Visual Basic от QuickBasic, TurboBasic и других диалектов языка Basic для DOS, заключается в том, что в него встроена поддержка работы с объектами Windows, а также предоставлена возможность использования любых функций операционной системы.

Исходный текст программы Visual Basic может считывать и обрабатывать построчно, сразу же выполняя операторы языка, то есть, функционировать как интерпретатор.

Но он же может быть и компилятором, создающим исполняемые файлы, которые работают независимо от самой среды программирования.

Работа в среде Visual Basic очень комфортна, чему способствует наличие большого количества мастеров, многоуровневой справочной системы и удобных средств отладки приложений.

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

Редакции Visual Basic

Фирма Microsoft выпускает Visual Basic 6.0 в нескольких редакциях, которые различаются своими возможностями, поставляемой документацией и, конечно же, своей стоимостью:

Learning Edition (Учебная редакция) – включает основные возможности по созданию приложений и базовый набор элементов управления,

Professional Edition (Профессиональная редакция) – содержит больше инструментов и вспомогательных средств разработки, а также ряд дополнительных элементов управления,

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

Несмотря на имеющиеся отличия, все редакции языка программирования Visual Basic, имеют много общего в среде разработки и совсем не отличаются по своему синтаксису, поэтому практически идентичны между собой для начинающего программиста.

Visual Basic 6.0 Enterprise Edition, какой мы будем рассматривать в этой книге, поставляется не отдельно, как это было в предыдущих версиях, а в составе интегрированного пакета Microsoft Visual Studio 6.0, предназначенного для разработчиков программного обеспечения.

В этот пакет входит, кроме Microsoft Visual Basic еще и Microsoft Visual C++, Microsoft Visual FoxPro, а также ряд других вспомогательных программ и компонентов.

Основные обозначения

Теперь рассмотрим основные обозначения, принятые в данной книге, которые помогут вам свободно в ней ориентироваться.

Списки, в которых перечисляются какие-либо понятия, выглядят так:

• элемент списка 1,

• элемент списка 2,

• …и т. д.

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

Сделайте это… На экране появится следующее…

Названия клавиш, которые придется нажимать на клавиатуре, заключены в квадратные скобки и выделены жирным шрифтом, например: [F1]. Комбинации клавиш, нажимаемые одновременно, содержат между собой знак «плюс», например: [Ctrl] + [Break].

Последовательно выбираемые мышью пункты меню разделены знаком «дефис», а в скобках приводится их перевод на русский язык: File – Open… (Файл – Открыть…).

Названия программ в тексте выглядят таким образом: Microsoft Visual Basic.

Исходные тексты программ, которые придется набирать на клавиатуре вручную, отделены от остального текста пустыми строками и выделены жирным шрифтом, например:

If Check1.Value = Checked Then

Frame1.Enabled = False

Else

Frame1.Enabled = True

End If

Глава 1. Установка Visual Basic на компьютер пользователя

В этой главе вы научитесь:

• устанавливать Microsoft Visual Basic 6.0 на свой компьютер,

• устанавливать другие компоненты пакета Microsoft Visual Studio 6.0.

1.1. Инсталляция

Язык программирования Microsoft Visual Basic 6.0 входит как компонент в состав пакета Microsoft Visual Studio 6.0, большинство из компонентов которого могут устанавливаться выборочно.

Для установки Microsoft Visual Basic 6.0 вставьте в дисковод CD-ROM своего компьютера дистрибутивный компакт-диск Microsoft Visual Studio 6.0 и запустите программу инсталляции. Обычно она запускается автоматически, но если автозапуск CD-дисков отключен в Windows, то придётся запустить установку вручную.

На экране появится начальный экран мастера установки Microsoft Visual Studio 6.0 (Рис.1.1).

Рис.1.1. Начальный экран мастера установки

Microsoft Visual Studio 6.0

Здесь вы можете щелкнуть мышью на кнопке View Readme (Просмотр Readme), чтобы прочитать краткую информацию об установке пакета, но можно этого и не делать, особенно если не знаете английского языка.

Для продолжения установки нажмите кнопку Next (Следующий). Появится экран End User License Agreement (Лицензионное соглашение конечного пользователя) с текстом стандартного лицензионного соглашения фирмы Microsoft (Рис.1.2).

Рис.1.2. Экран End User License Agreement

(Лицензионное соглашение конечного пользователя)

Щелчком мыши установите переключатель в положение I accept the agreement (Я принимаю условия данного соглашения) и нажмите кнопку Next (Следующий). Это стандартное действие при установке коммерческих программных продуктов любых разработчиков.

Появится экран Product Number and User ID (Номер продукта и идентификатор пользователя) (Рис.1.3).

Рис.1.3. Экран Product Number and User ID

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

Два поля ввода с надписью Please enter your product’s ID number (Пожалуйста, введите идентификационный номер вашего продукта) заполните номером с вашего лицензионного соглашения фирмы Microsoft.

Затем заполните поле Your name (Ваше имя). Тут нужно вписать свое полное имя, но можно и любой другой текст – особых ограничений на содержимое этого поля не накладывается.

В поле Your company’s name (Название вашей компании) впечатайте название фирмы, в которой вы работаете, или также произвольный текст.

Щелкните мышью на кнопке Next (Следующий) для перехода к следующему экрану мастера установки, в котором предлагается выбрать вариант инсталляции Microsoft Visual Studio 6.0 (Рис.1.4).

Рис.1.4. Экран выбора варианта установки

Установите переключатель Enterprise Setup Options (Варианты установки) в положение Custom (Пользовательский). Это необходимо для выборочной установки только одного программного пакета – Visual Basic – потому что Visual Studio содержит и другие языки программирования.

Нажмите кнопку Next (Следующий) для перехода к экрану Choose Common Install Folder (Выберите общую папку для установки) (Рис.1.5).

Рис.1.5. Экран Choose Common Install Folder

(Выберите общую папку для установки)

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

Затем появится предупреждение об авторских правах фирмы Microsoft, где также говорится о необходимости закрыть выполняемые приложения (Рис.1.6).

Рис.1.6. Предупреждение об авторских правах фирмы Microsoft

Закройте все другие выполняемые в настоящее время приложения и нажмите кнопку Continue (Продолжить).

Открывшийся диалог Product ID (Идентификатор продукта) уведомляет пользователя о номере программного продукта, который будет запрошен фирмой Microsoft при попытке получения пользователем технической поддержки по продукту Microsoft Visual Studio 6.0 (Рис.1.7).

Рис.1.7. Диалог Product ID (Идентификатор продукта)

Здесь достаточно щелкнуть на кнопке OK – ничего другого делать не нужно – но можно записать данный Product ID, если в будущем вы планируете обращаться в техническую поддержку фирмы Microsoft.

Гораздо более важным для нас является диалог выбора компонентов для инсталляции, где можно произвести детальный выбор устанавливаемых компонентов (Рис.1.8).

Рис.1.8. Диалог выбора компонентов для установки

Теперь выберите компоненты пакета Microsoft Visual Studio 6.0, которые вы хотите установить на свой компьютер. Если у вас достаточно места на жестком диске и вы планируете в будущем ознакомиться со всем пакетом, то нажмите кнопку Select All (Выбрать все).

Чтобы не устанавливать другие программы пакета Microsoft Visual Studio 6.0, кроме Visual Basic, щелчком мыши снимите флажки у следующих компонентов:

Microsoft Visual C++6.0,

Microsoft Visual FoxPro 6.0,

Microsoft Visual InterDev 6.0,

Microsoft Visual SourceSafe 6.0.

Нажмите кнопку Continue (Продолжить). Появится диалог, отображающий процесс копирования файлов на жесткий диск вашего компьютера (Рис.1.9).

Рис.1.9. Копирование файлов на жесткий диск

Иногда в процессе установки может появиться диалог с запросом о замене файла динамически загружаемой библиотеки, один из которых уже установлен на компьютере и поддерживает язык Русский, а устанавливаемый – Английский (США) (Рис.1.10).

Рис.1.10. Диалог с запросом о замене файла

динамически загружаемой библиотеки

Нажмите кнопку No (Нет), чтобы оставить уже установленную версию библиотеки, поддерживающую русский язык.

После завершения процесса копирования файлов появится диалог о необходимости перезагрузки Windows (Рис.1.11).

Рис.1.11. Диалог о необходимости перезагрузки Windows

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

Щелкните мышью на кнопке Restart Windows (Перезагрузить Windows). Произойдет перезагрузка системы и появится экран инсталляции MSDN Library (Библиотека сети разработчиков Microsoft) (Рис.1.12).

Рис.1.12. Экран инсталляции MSDN Library

(Библиотека сети разработчиков Microsoft)

Вставьте в дисковод CD-ROM своего компьютера дистрибутивный компакт-диск MSDN Library (Библиотека сети разработчиков Microsoft).

Установите флажок Install MSDN (Установить библиотеку сети разработчиков Microsoft).

Щелкните мышью на кнопке Next (Следующий). Когда завершится установка библиотеки сети разработчиков Microsoft, включая справочную систему, появится экран Other Client Tools (Другой пользовательский инструментарий) (Рис.1.13).

Рис.1.13. Экран Other Client Tools

(Другой пользовательский инструментарий)

Выделите элемент InstallShield (Установочный экран) в списке Client Tools (Пользовательский инструментарий) и нажмите кнопку Install (Установить). Произойдет установка сервисной утилиты, позволяющей создавать инсталляции своих программ.

Нажмите кнопку Next (Следующий), после чего появится экран Server Setups (Серверные установки) (Рис.1.14).

Рис.1.14. Экран Server Setups (Серверные установки)

Если у вас достаточно места на жестком диске, то можно установить все дополнительные серверные компоненты, либо только некоторые из них. В любом случае, выберите нужные элементы списка Server Components (Серверные компоненты) и нажмите кнопку Install (Установить).

Затем щелкните мышью на кнопке Next (Следующий). Откроется финальный экран мастера установки Microsoft Visual Studio 6.0 (Рис.1.15).

Рис.1.15. Финальный экран установки Microsoft Visual Studio 6.0

Щелчком мыши снимите флажок у надписи Register Now (Зарегистрироваться сейчас), если вы не хотите немедленно пройти процедуру регистрации на Интернет-сайте корпорации Microsoft, и нажмите кнопку Finish (Завершить) для окончания процесса установки пакета Microsoft Visual Studio 6.0.

1.2. Добавление/удаление отдельных компонентов

Выполните команду меню Пуск – Настройка – Панель управления (Start – Settings – Control Panel). Появится окно Панель управления (Control Panel) (Рис.1.16).

Рис.1.16. Панель управления (Control Panel)

Сделайте двойной щелчок мыши на значке Установка и удаление программ (Add/Remove Programs). Откроется диалог Свойства: Установка и удаление программ (Properties: Add/Remove Programs) (Рис.1.17).

Рис.1.17. Диалог Свойства: Установка и удаление программ

(Properties: Add/Remove Programs)

В списке установленных программ найдите Microsoft Visual Studio 6.0 Enterprise Edition, выделите ее щелчком мыши, а затем нажмите кнопку Добавить/удалить… (Add/Remove…), расположенную прямо под списком программ.

Запустится программа установки Microsoft Visual Studio 6.0 в режиме (Рис.1.18).

Рис.1.18. Программа установки Microsoft Visual Studio 6.0

С помощью имеющихся здесь кнопок можно выполнить следующие действия:

Add/Remove… (Добавить/Удалить…) – выборочно добавить новые компоненты или удалить некоторые из текущей конфигурации,

Reinstall (Переустановить) – полностью повторить процесс последней установки для восстановления отсутствующих файлов и измененных настроек,

Remove All (Удалить все) – удалить все ранее установленные компоненты,

Exit Setup (Выйти из программы установки) – выйти из программы установки без внесения каких-либо изменений в текущую конфигурацию Microsoft Visual Studio 6.0 Enterprise Edition.

Чаще всего бывает нужно нажать кнопку Add/Remove… (Добавить/Удалить…), после чего появится диалог выбора компонентов для инсталляции мастера установки Microsoft Visual Studio 6.0, работа с которым уже подробно описана в настоящей главе.

Глава 2. Знакомство с Visual Basic

В этой главе вы научитесь:

• запускать Visual Basic,

• находить нужные пункты меню,

• пользоваться кнопками панели инструментов,

• разбираться во всех основных объектах интерфейса,

• создавать проекты приложений,

• выбирать подходящий тип приложения,

• сохранять и открывать записанные проекты,

• напишите свою первую программу,

• правильно пользоваться справочной системой.

2.1. Обзор среды программирования

В главном меню Windows выберите команду Пуск – Программы – Microsoft Visual Studio 6.0 – Microsoft Visual Basic 6.0 (Start – Programs – Microsoft Visual Studio 6.0 – Microsoft Visual Basic 6.0) Запустится Visual Basic и на экране появится диалог New Project (Новый проект), раскрытый на вкладке New (Новый) (Рис.2.1).

Рис.2.1. Вкладка New (Новый)

диалога New Project (Новый проект)

Диалог New Project (Новый проект) предлагает пользователю возможность создания нового, либо открытия уже существующего проекта. Проект представляет собой разрабатываемое приложение. Он состоит из нескольких компонентов, хранящихся на диске в виде отдельных файлов, каждый из которых имеет соответствующее расширение:

• файлы форм с исходным кодом (*.frm),

• файлы форм с исполняемым кодом (*.frx),

• файлы модулей (*.bas),

• файлы модулей классов (*.cls),

• файлы дополнительных элементов управления (*.ocx),

• файл проекта (*.vbp),

• файл ресурсов (*.res),

• другие файлы.

Выбрав один из значков на вкладке New (Новый), можно создать новый пустой проект нужного типа или воспользоваться услугами одного из мастеров генерации приложений.

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

А теперь перечислим варианты создаваемых приложений или компонентов, которые выбираются на вкладке New (Новый) диалога New Project (Новый проект):

Standard EXE – стандартное приложение,

ActiveX EXE – компонент ActiveX в виде приложения,

ActiveX DLL – компонент ActiveX в виде динамически загружаемой библиотеки,

ActiveX Control – компонент ActiveX в виде инструмента Visual Basic для создания элементов управления,

VB Application Wizard – мастер приложений Visual Basic,

VB Wizard Manager – управляющая программа по созданию пользовательских мастеров,

Data Project – приложение для работы с базами данных,

IIS Application – приложение для Microsoft Internet Information Server,

Addin – дополнение для Visual Basic,

ActiveX Document Dll – документ ActiveX в виде динамически загружаемой библиотеки,

ActiveX Document Exe – документ ActiveX в виде приложения,

DHTML Application – приложение в виде динамической web-страницы,

VB Enterprise Edition Controls – стандартное приложение Windows с возможностью использования дополнительных элементов управления.

Для ознакомления со следующей вкладкой диалога New Project (Новый проект) щелкните мышью на ярлыке Existing (Существующий) (Рис.2.2).

Рис.2.2. Вкладка Existing (Существующий)

диалога New Project (Новый проект)

Вкладка Existing (Существующий) позволяет открыть сохраненный проект с любого постоянного или съемного диска, либо сетевого устройства, для чего сначала выберите папку, где он размещен, в открывающемся списке Папка (Folder), затем имя файла проекта в главном окне и нажмите кнопку Открыть (Open).

Теперь перейдем к вкладке Recent (Недавний) диалога New Project (Новый проект) (Рис.2.3).

Рис.2.3. Вкладка Recent (Недавний)

диалога New Project (Новый проект)

Здесь можно быстро вернуться к одному из последних редактируемых проектов Visual Basic, для чего достаточно выделить щелчком мыши имя файла проекта и нажать кнопку Открыть (Open).

Чтобы продолжить ознакомление с интерфейсом среды программирования Visual Basic, следует создать проект стандартного приложения. В этом случае станут доступными большинство пунктов меню и кнопок панели инструментов.

Вернитесь на вкладку New (Новый) (Рис.2.1) диалога New Project (Новый проект), щелчком мыши выберите значок Standard EXE (Стандартное приложение) и нажмите кнопку Open (Открыть). После этого будет создан новый проект с именем Project1, которое присваивается по умолчанию, и мы увидим среду программирования Visual Basic в режиме design (проектирование) (Рис.2.4).

Рис.2.4. Среда программирования Visual Basic

в режиме design (проектирование)

Перечислим объекты интерфейса среды программирования Visual Basic, видимые в настоящий момент:

• заголовок окна (Window Header),

• строка меню (Menu Bar),

• панель инструментов (Tool Bar),

• панель элементов управления (Tool Box),

• проводник проекта (Project Explorer),

• окно свойств (Properties Window),

• окно размещения формы (Form Layout Window).

Заголовок окна (Window Header) отображает название редактируемого проекта и текущий режим работы Visual Basic, как об этом говорилось выше.

Строка меню (Menu Bar) предоставляет программисту возможность пользования мощным арсеналом функций среды программирования Visual Basic (Рис.2.5).

Рис.2.5. Функции строки меню (Menu Bar)

Прямо под строкой меню, как у многих приложений Windows, находится панель инструментов (Tool Bar), кнопки которой дублируют наиболее часто используемые пункты меню Visual Basic. На панели инструментов, также, отображается справочная информация о положении и размерах выделенного объекта, либо расположении курсора в тексте программы (Рис.2.6).

Рис.2.6. Функции панели инструментов (Tool Bar)

В левой части окна Visual Basic располагается панель элементов управления (Tool Box) (Рис.2.7).

Рис.2.7. Панель элементов управления (Tool Box)

Большая часть элементов управления используется для оформления внешнего вида приложения и взаимодействия с пользователем. Подробно они будут рассмотрены в соответствующей главе.

Справа в верхнем углу расположено окно проводника проекта (Project Explorer), озаглавленное как Project – Project1 (Проект – Project1). В данном окне имеется древовидная структура со списком компонентов, которые входят в состав проектируемого приложения. Сейчас список содержит один единственный компонент – форму с именем Form1 (Рис.2.8).

Рис.2.8. Проводник проекта (Project Explorer)

Если щелкнуть правой кнопкой мыши на имени объекта в проводнике проекта, то появится контекстное меню, из которого можно выбрать нужное действие над этим объектом, например:

• отобразить на экране,

• скрыть,

• сохранить на диске,

• распечатать на принтере,

• и т. д.

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

Ниже находится окно свойств (Properties Window), имеющее заголовок Properties – Form1 (Свойства – Form1) (Рис.2.9).

Рис.2.9. Окно свойств (Properties Window)

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

Под заголовком окна находится открывающийся список, содержащий перечень элементов управления активной формы. Еще ниже можно увидеть список свойств выбранного элемента в виде пары: название свойства – его значение. Например, свойство Caption (Заголовок) имеет значение Form1.

Чтобы было удобнее ориентироваться в большом количестве информации, у списка свойств предусмотрено две вкладки, позволяющие выбрать порядок сортировки: Alphabetic (Алфавитный) или Categorized (По категориям). Наконец, под списком свойств находится подсказка о назначении свойства, выделенного щелчком мыши.

Следующее окно, которое мы рассмотрим – это окно размещения формы (Form Layout Window) (Рис.2.10).

Рис.2.10. Окно размещения формы

(Form Layout Window)

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

Все подчиненные окна прикрепляются к краям главного окна Visual Basic. Такой тип интерфейса называется MDI – Multiple Document Interface (Многодокументный интерфейс). В ранних версиях Visual Basic использовалась другая его разновидность, именуемая SDI – Single Document Interface (Однодокументный интерфейс), когда каждое дочернее окно было независимым.

Если требуется установить другой тип интерфейса, выберите команду меню Tools – Options… (Инструменты – Параметры…). Появится диалог Options (Параметры), где нужно перейти на вкладку Advanced (Дополнительно) (Рис.2.11).

Рис.2.11. Вкладка Advanced (Дополнительно)

диалога Options (Параметры)

После установки флажка SDI Development Environment (Однодокументная среда разработки) и нажатия кнопки OK, тип интерфейса поменяется на SDI – Single Document Interface (Однодокументный интерфейс).

Можно регулировать режим прикрепления отдельных дочерних окон и при использовании MDI – Multiple Document Interface (Многодокументный интерфейс), для чего следует перейти к вкладке Docking (Прикрепление) этого же диалога (Рис.2.12).

Рис.2.12. Вкладка Docking (Прикрепление)

диалога Options (Параметры)

Установка флажка слева от названия соответствующего подчиненного окна включает режим прикрепления к краю главного окна Visual Basic, а сброс флажка – выключает его.

Кроме объектов интерфейса среды программирования Visual Basic, примерно посередине экрана (Рис.2.4) располагается окно созданного проекта, имеющее заголовок Project1 – Form1 (Form) (Project1 – Form1 (Форма)), внутри которого находится отображаемая форма будущего приложения (Рис.2.13).

Рис.2.13. Форма Form1

в окне проекта Project1

Форма является отдельным окном будущего приложения. На ее поверхности в дальнейшем могут быть размещены элементы управления Windows: кнопки, поля для ввода текста, списки, флажки и др.

Сетка из мелких точек видна только во время разработки приложения и помогает программисту пропорционально разместить элементы управления на форме.

Та же самая форма в режиме выполнения будет выглядеть несколько по-иному, без направляющей сетки для размещения элементов и окна проекта (Рис.2.14).

Рис.2.14. Форма Form1

в режиме выполнения

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

Большинство других компонентов среды программирования Visual Basic, также, в той или иной степени связаны с формой, и содержат в своём имени её название, поэтому форму желательно не переименовывать, во избежание необходимости ручного переименования других компонентов программы.

Некоторые окна интерфейса Visual Basic по умолчанию не видны. Управлять их отображением на экране можно с помощью команд меню View (Вид). Одним из важнейших является Code Window (Окно кода), в котором вводится исходный текст подпрограмм, входящих в состав приложения.

Выполните команду меню View – Code (Вид – Код), после чего вы увидите окно кода (Рис.2.15).

Рис.2.15. Code Window

(Окно кода)

Другим часто используемым окном является Object Browser (Просмотр объектов), где можно не только просмотреть иерархический список доступных объектов, но и увидеть краткую информацию об их использовании в программе (Рис.2.16).

Рис.2.16. Object Browser

(Просмотр объектов)

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

2.2. Справка об объектах и их свойствах

Объектов в Visual Basic существует довольно много, а свойств у них еще больше. Запомнить все трудно, если не сказать, что практически невозможно, поэтому необходимо постоянно пользоваться встроенной справкой.

То же самое касается и инструкций, а также встроенных функций языка Visual Basic. Они конечно будут запоминаться постепенно, но не стоит переживать, если вы не помните точно название или синтаксис какой то инструкции.

Контекстно-зависимую справку среды программирования Visual Basic можно легко и просто вызвать на экран с помощью клавиши [F1].

Справка называется контекстно-зависимой потому, что отображаемый раздел справки зависит от текущего контекста, который определяется выделением любого объекта, а также названия свойства, метода или оператора языка Visual Basic, внутри которого установлен текстовый курсор.

Попробуем воспользоваться контекстной справкой Visual Basic на практике. Например, мы хотим получить подробную информацию об элементе управления ProgressBar (Индикатор выполнения).

Выделите мышью кнопку ProgressBar (Индикатор выполнения) в ToolBox (Панель элементов) и нажмите клавишу [F1]. Откроется окно справочной системы Visual Basic с информацией о данном объекте (Рис.2.17).

Рис.2.17. Справочная система Visual Basic – ProgressBar (Индикатор выполнения)

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

See Also (Смотри также) – информация по родственным темам,

Example (Пример) – текст примеров кода,

Properties (Свойства) – перечень свойств,

Methods (Методы) – перечень методов,

Events (События) – перечень событий.

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

По идее, мы должны были бы выбрать пункт Example (Пример). Но в данном случае этот пункт недоступен, так как примеры кода расположены ниже. Поэтому, переместитесь вниз по тексту с помощью вертикальной линейки прокрутки, пока не появится пример процедуры с использованием элемента управления ProgressBar (Индикатор выполнения) (Рис.2.18).

Рис.2.18. Справочная система Visual Basic – текст примера процедуры с использованием ProgressBar

(Индикатор выполнения)

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

Выделите нужную часть кода с помощью мыши и скопируйте в буфер обмена Windows с помощью комбинации клавиш [Ctrl] + [C] или [Ctrl] + [Insert].

Перейдите в свою программу и нажмите комбинацию клавиш [Ctrl] + [V] или [Shift] + [Insert] для вставки фрагмента кода.

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

Чтобы найти нужную информацию, щелкните мышью на ярлыке Search (Поиск), расположенном в левой части окна справки. Раскроется вкладка Search (Поиск) справочной системы Visual Basic (Рис.2.19).

Рис.2.19. Вкладка Search (Поиск)

справочной системы Visual Basic

Щелкните мышью на поле ввода Search for following words (Искать следующие слова) и введите ключевые слова для поиска, при необходимости используя логические операторы: And (И), Or (Или), Near (Близко), Not (Не). Ввод этих операторов возможен не только вручную, но и выбором из списка, вызываемого при нажатии на кнопку справа от данного поля.

Для запуска поиска разделов справки, содержащих введенную комбинацию ключевых слов, нажмите кнопку Topics (Разделы) и ждите окончания процесса поиска. По его завершению, в левой части окна отобразится список найденных разделов.

Описанные выше возможности использования справочной системы доступны из меню Visual Basic. Содержание справки вызывается командой Help – Contents… (Помощь – Содержание), алфавитный указатель – следующим пунктом Help – Index… (Помощь – Указатель), а поиск – Help – Search… (Помощь – Поиск). С помощью меню Help, также, можно перейти на Web-сайт Microsoft для получения технической поддержки.

2.3. Первое приложение на языке Visual Basic

Теперь опробуем на практике весь процесс разработки приложения с помощью Visual Basic на примере простейшей программы Hello, World! (Привет, мир!). Это приложение будет иметь только две кнопки: Приветствие и Выход.

После нажатия кнопки Приветствие должен появляться диалог с сообщением Привет, мир!, а после нажатия кнопки Выход – происходить выход из программы.

Общеизвестная программа Hello, World! (Привет, мир!), обычно пишется всеми начинающими программистами, делающими свои первые шаги в освоении нового для них языка программирования.

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

В меню Visual Basic выберите пункт Project — Project1 Properties… (Проект – Свойства Project1…). На экране появится диалог настройки Project1 – Project Properties (Project1 – Свойства проекта), раскрытый на вкладке General (Общие) (Рис.2.20).

Рис.2.20. Вкладка General (Общие)

диалога настройки Project1 – Project Properties

(Project1 – Свойства проекта)

Дважды щелкните мышью на поле ввода Project Name (Название проекта) и замените имеющийся в нем текст Project1 на новый – HelloWorld. После этого нажмите кнопку OK для закрытия диалога настройки Project1 – Project Properties (Project1 – Свойства проекта).

Переименуем единственную форму нашего приложения. Для этого щелкните мышью в любом месте формы Form1, после чего в окне Properties – Form1 (Свойства – Form1) отобразится полный перечень ее свойств (Рис.2.21).

Рис.2.21. Окно свойств Properties – Form1 (Свойства – Form1)

В левом столбце окна свойств найдите свойство с названием Name (Имя), имеющее текущее значение Form1. Название свойства Name (Имя) заключено в круглые скобки потому, что используется в коде программ Visual Basic несколько по-другому, чем все остальные свойства.

Дважды щелкните мышью на значении свойства Name (Имя) в правом столбце и введите ПриветМир, после чего нажмите клавишу [Enter].

Таким же образом измените значение свойства Caption (Заголовок). Вместо старого значения Form1 впишите новое – Привет, мир! Обратите внимание, что здесь уже можно использовать пробелы, запятые и другие символы. Форма примет следующий вид (Рис.2.22).

Рис.2.22. Форма ПриветМир в окне проекта HelloWorld

Чем же отличаются эти два свойства? Свойство Name (Имя) обязательно присутствует у любого объекта Visual Basic. Оно однозначно идентифицирует или, другими словами, указывает на этот объект, чтобы к нему можно было обратиться из текста программы. Имя формы ПриветМир можно увидеть в строке заголовка окна текущего проекта: HelloWorld – ПриветМир (Form). Это окно служит для информационной цели и отображается только в режиме разработки приложения. Окно проекта внутри себя содержит саму форму ПриветМир.

Свойство Caption (Заголовок) есть только у тех объектов, которые могут иметь надпись, видимую на экране монитора, например, у объектов Form (Форма), CommandButton (Командная кнопка) или Frame (Рамка). У нашей формы надпись Привет, мир! можно сейчас увидеть в строке заголовка, где она, также, будет видна в момент выполнения приложения.

Теперь все готово для того, чтобы продолжить проектирование интерфейса нашего приложения, состоящего из одной формы, на которой должны располагаться две кнопки. Форма у нас уже есть. Остается разместить на ней кнопки и написать подпрограмму вывода на экран диалога с сообщением Привет, мир!

Размещение кнопки на поверхности формы подобно рисованию прямоугольника в стандартной программе Paint. Щелкните мышью на значке инструмента CommandButton (Командная кнопка) панели элементов управления (Tool Box) и установите указатель мыши над формой, который примет вид крестика:

Нажмите левую кнопку мыши и, удерживая ее в таком положении, переместите указатель мыши на пару сантиметров вправо и вниз от этой точки, а затем отпустите кнопку мыши. В заданном месте формы появится командная кнопка с надписью Command1.

Таким же образом разместите на форме вторую кнопку. После этого, она примет приблизительно такой вид (Рис.2.23).

Рис.2.23. Форма ПриветМир с двумя командными кнопками

Конечно, сразу трудно установить нужные размеры и расположение кнопок. Но Visual Basic позволяет затем изменить эти параметры, причем несколькими способами, которые являются общими для всех элементов управления:

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

Для более точной установки геометрических размеров элемента управления следует выделить его и установить числовые значения свойств Left (Левый), Top (Верхний), Width (Ширина) и Height (Высота) в Properties Window (Окне свойств). Первые два свойства указывают на координаты левого верхнего угла элемента управления, а последние – ширину и высоту объекта.

Теперь изменим надписи на кнопках, которые должны быть не Command1 и Command2, а Приветствие и Выход соответственно, а также дадим более информативные названия этим объектам.

Щелчком мыши выделите кнопку Command1, после чего в Properties Window (Окне свойств) отобразится список ее свойств.

Дважды щелкните мышью на значении свойства Caption (Заголовок) и вместо Command1 введите Приветствие. После этого, текст на кнопке сразу же поменяется.

Таким же образом измените свойство Name (Имя), установив у него новое значение – cmdHello.

Аналогичные действия произведите с кнопкой Command2, у которой свойствам Name (Имя) и Caption (Заголовок) присвойте значения cmdExit и Выход соответственно.

На этом этап проектирования интерфейса заканчивается, и мы переходим, собственно, к написанию текста программы.

Дважды щелкните мышью на кнопке с надписью Приветствие. Откроется окно кода с уже оформленным шаблоном подпрограммы cmdHello_Click, которая будет вызываться при нажатии на эту кнопку (Рис.2.24).

Рис.2.24. Окно кода с процедурой cmdHello_Click

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

В левом списке можно выбрать элемент управления, а в правом – тип события, для реагирования на которое планируется написать подпрограмму на языке Visual Basic.

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

В данном случае, нужный элемент управления и тип события уже выбраны. Это – кнопка с именем cmdHello и событие Click (Щелчок). Текст пустой процедуры обработки события выглядит следующим образом:

Private Sub cmdHello_Click ()

End Sub

Ключевое слово Sub, сокращение от Subroutine (Подпрограмма), служит для объявления (Declaration) процедуры cmdHello_Click, которая занимается обработкой события нажатия на кнопку cmdHello.

Название процедуры состоит из имени объекта, символа подчеркивания "_" и типа события. Именно это название указывает Visual Basic на связь данной процедуры с событием Click (Щелчок) кнопки cmdHello. Пустые круглые скобки говорят нам о том, что процедуре не передаются никакие параметры.

Модификатор Private (Частная) указывает на то, что данная процедура видна только в пределах своего контейнера, в данном случае – формы. Завершает процедуру инструкция End Sub.

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

С этого момента начинается процесс кодирования (Coding), представляющего собой написание самого текста программы, выполняющей нужный функционал.

Кодирование является центральным звеном любой системы программирования. Visual Basic не является исключением, несмотря на то, что он позволяет минимизировать затраты времени на кодирование.

Нам остается, только, внутри процедуры вписать единственную инструкцию языка Visual Basic, выводящую на экран диалог с сообщением Привет, мир!:

MsgBox («Привет, мир!»)

Готовая процедура после этого примет следующий вид:

Private Sub cmdHello_Click ()

MsgBox («Привет, мир!»)

End Sub

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

В теле процедуры cmdExit_Click впишите инструкцию End, выполняющую функцию завершения работы приложения при возникновении события Click (Щелчок).

Текст второй процедуры теперь будет выглядеть таким образом:

Private Sub cmdExit_Click ()

End

End Sub

Вот, собственно, и все! Остается только полюбоваться сделанной работой, проверив работоспособность написанного кода.

Для проверки жизнеспособности созданной программы, щелкните мышью на кнопке Start (Запуск) панели инструментов или нажмите клавишу [F5].

Visual Basic перейдет в режим выполнения и на экране появится работающее приложение Hello, World! (Привет, мир!) (Рис.2.25).

Рис.2.25. Работающее приложение

Hello, World! (Привет, мир!)

Сделайте несколько щелчков мышью на кнопке с надписью Приветствие. Появится диалог с нужным текстовым сообщением (Рис.2.26).

Рис.2.26. Диалог с текстовым сообщением

программы Hello, World! (Привет, мир!)

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

Теперь щелкните мышью на кнопке Выход. Произойдет завершение работы программы и Visual Basic вернется в режим проектирования.

2.4. Сохранение проекта на диске и его загрузка
для продолжения программирования

Автор не сомневается в том, что создание приложений с помощью Visual Basic увлечет вас и возникнет необходимость в сохранении проекта на диске, а также его последующей загрузке для продолжения работы. Сделать это очень просто, аналогично сохранению документа Microsoft Office.

Просто щелкните мышью на кнопке Save Project (Сохранить проект) панели инструментов (Tool Bar), либо выберите команду меню File – Save Project (Файл – Сохранить проект) для сохранения всех компонентов проекта на диск. После этого Visual Basic последовательно выдаст запрос о сохранении отдельных компонентов. Сначала появится диалог Save File As (Сохранить файл как) с запросом о сохранении формы (Рис.2.27).

Рис.2.27. Диалог Save File As (Сохранить файл как)

Вы можете откорректировать предлагаемое имя формы в поле ввода File Name (Имя файла) или оставить его без изменений. Затем нажмите кнопку Сохранить (Save). После сохранения формы, появится диалог Save Project As (Сохранить проект как) с запросом о сохранении проекта (Рис.2.28).

Рис.2.28. Диалог Save Project As (Сохранить проект как)

Сразу нажмите кнопку Save (Сохранить) или предварительно измените имя файла проекта в поле ввода File Name (Имя файла).

На этом сохранение проекта будет завершено. При повторном сохранении не придется проделывать все действия заново – достаточно нажать кнопку Save Project (Сохранить проект) панели инструментов.

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

В проводнике проекта (Project Explorer) разверните ветку Forms (Формы) щелчком мыши на значке. Здесь мы увидим имя формы ПриветМир (Рис.2.29).

Рис.2.29. Обзор компонентов проекта HelloWorld

в проводнике проекта (Project Explorer)

Щелкните правой кнопкой мыши на имени формы. Появится контекстное меню, с помощью которого можно выполнить все допустимые действия над данным объектом (Рис.2.30).

Рис.2.30. Контекстное меню

в проводнике проекта (Project Explorer)

Выберите пункт меню Save ПриветМир.frm (Сохранить ПриветМир.frm) для сохранения формы на диске.

Для настройки режима автоматического сохранения проекта воспользуйтесь пунктом меню Tools – Options (Инструменты – Параметры). Откроется диалог Options (Параметры). Щелчком мыши перейдите на вкладку Environment (Среда) (Рис.2.31).

Рис.2.31. Вкладка Environment (Среда)

диалога Options (Параметры)

Переключатель When a program starts (Когда программа запускается) установите в положение Save Changes (Сохранять изменения) и нажмите кнопку OK.

Вот и все, что касается сохранения проекта. Теперь попробуем загрузить сохраненный проект с диска.

Для того, чтобы открыть проект, выберите команду меню File – Open Project… (Файл – Открыть проект…). На экране появится диалог Open Project (Открыть проект), раскрытый на вкладке Existing (Существующий) (Рис.2.32).

Рис.2.32. Вкладка Existing (Существующий)

диалога Open Project (Открыть проект)

Сначала в открывающемся списке Folder (Папка) выберите диск и каталог, где находится проект, затем щелкните на имени файла и нажмите кнопку Open (Открыть).

Если вы уже раньше работали с сохраненным проектом, то его удобнее открыть немного по-другому. Щелчком мыши на ярлыке перейдите к вкладке Recent (Недавний) диалога Open Project (Открыть проект) (Рис.2.33).

Рис.2.33. Вкладка Recent (Недавний)

диалога Open Project (Открыть проект)

На этой вкладке не нужно выбирать папку, просто щелкните на имени проекта и нажмите кнопку Open (Открыть).

Тем или иным способом мы открыли нужный проект, но сам по себе Visual Basic не будет выводить формы на экран для редактирования, для этого их нужно отобразить сознательно.

Для вывода на экран дважды щелкните мышью на имени формы ПриветМир в окне проводника проекта (Project Explorer) (Рис.2.29), либо сначала щелкните на нем правой кнопкой мыши, а затем из появившегося контекстного меню (Рис.2.30) выберите пункт View Object (Просмотреть объект).

Глава 3. Использование мастеров

В этой главе вы научитесь:

• использовать мастера приложений Visual Basic,

• использовать мастера форм доступа к данным,

• создавать собственные приложения в виде мастеров.

3.1. Мастер приложений Visual Basic

Несмотря на то, что создание интерфейса приложений с помощью Visual Basic и так упрощено до предела, разработчики этой системы программирования пошли еще дальше и добавили дополнительное инструментальное средство, позволяющее буквально за считанные минуты создавать почти готовые приложения – VB Application Wizard (Мастер приложений Visual Basic).

Для запуска этого мастера выполните команду меню File – New Project (Файл – Новый проект). На экране появится диалог New Project (Новый проект) (Рис.3.1).

Рис.3.1. Диалог New Project (Новый проект)

Щелчком мыши выберите значок VB Application Wizard (Мастер приложений Visual Basic) и нажмите кнопку OK. Появится начальный экран мастера приложений Visual Basic (Рис.3.2).

Рис.3.2. Начальный экран VB Application Wizard

(Мастер приложений Visual Basic)

В случае, если мастер запускается не в первый раз и вы хотите использовать настройки, уже использованные ранее, то щелкните мышью на кнопке с многоточием, рядом с открывающимся списком From what profile do you want to load your settings? (Из какого профиля вы хотите загрузить настройки?). Откроется диалог Open Profile (Открыть профиль) (Рис.3.3).

Рис.3.3. Диалог Open Profile (Открыть профиль)

VB Application Wizard (Мастер приложений Visual Basic)

Выберите нужный файл и нажмите кнопку Открыть (Open). Теперь осталось нажать кнопку Finish (Закончить) (Рис.3.2) – остальную работу мастер выполнит сам.

Но гораздо чаще приходится выполнять все действия мастера по шагам, для чего щелкните мышью на кнопке Next (Следующий). Отобразится следующий экран мастера – Interface Type (Тип интерфейса) (Рис.3.4).

Рис.3.4. Экран Interface Type (Тип интерфейса)

VB Application Wizard

(Мастер приложений Visual Basic)

Установите переключатель What type of interface would you like for your application? (Какой тип интерфейса вы хотели бы использовать для вашего приложения?) в одно из трех возможных состояний:

Multiple Document Interface (MDI) (Многодокументный интерфейс) – содержит главное окно и несколько подчиненных окон для возможности одновременной работы с несколькими документами, например, как в Microsoft Word,

Single Document Interface (SDI) (Однодокументный интерфейс) – содержит единственное окно для работы только с одним документом, например, как в стандартной программе Блокнот (Notepad),

Explorer Style (Стиль Проводника) – интерфейс, похожий на SDI, но окно приложения содержит дерево ресурсов и список, выглядит аналогично Проводнику Windows (Windows Explorer).

Название будущего приложения укажите в поле ввода What name do you want for the application? (Какое имя вы хотите использовать для данного приложения?) вместо имеющегося там по умолчанию Project1.

Нажмите кнопку Next (Следующий) для перехода к экрану Menus (Меню) мастера приложений (Рис.3.5).

Рис.3.5. Экран Menus (Меню) VB Application Wizard

(Мастер приложений Visual Basic)

Выберите названия меню верхнего уровня, которые вы хотите использовать в своем приложении, оставив флажки у нужных элементов списка Menus (Меню).

Для корректировки списка Menus (Меню) применяются кнопки:

Add a Top Level Menu (Добавить меню верхнего уровня),

Delete the Selected Top Level Menu (Удалить выделенное меню верхнего уровня),

Move the Selected Item Up (Переместить выделенный элемент вверх),

Move the Selected Item Down (Переместить выделенный элемент вниз).

Когда меню верхнего уровня будет сформировано, выделяйте название каждого меню в списке Menus (Меню) и редактируйте вложенные меню с помощью другого списка – Sub Menus (Подменю). В списке Sub Menus (Подменю) можно применять аналогичные кнопки для добавления и удаления пунктов вложенных меню, а также изменения их взаимного расположения.

Щелкните мышью на кнопке Next (Следующий). Мастер VB Application Wizard выведет свой следующий экран Customize Toolbar (Настройка панели инструментов) (Рис.3.6).

Рис.3.6. Экран Customize Toolbar

(Настройка панели инструментов)

VB Application Wizard

(Мастер приложений Visual Basic)

Здесь вы видите два списка. Справа перечисляются кнопки, которые будут на панели инструментов вашего приложения, а слева – те, которые доступны для добавления. Над этими списками отображается панель инструментов именно в таком виде, в каком она будет в готовом приложении.

Чтобы добавить или убрать кнопку на панели инструментов, можно перетащить мышью выделенные элементы из одного списка в другой, либо воспользоваться следующими кнопками:

Move the Selected Button to the Right (Переместить выделенную кнопку в правый список),

Move the Selected Button to the Left (Переместить выделенную кнопку в левый список),

Move All Buttons to the Left (Переместить все кнопки в левый список),

Move the Selected Button Up (Переместить выделенную кнопку вверх),

Move the Selected Button Down (Переместить выделенную кнопку вниз),

Load an External Bitmap or Icon (Загрузить изображение из файла *.bmp или *.ico).

После определения состава панели инструментов, можно изменить свойства кнопок, установленные по умолчанию, для чего щелкните мышью на нужной кнопке в верхней части окна мастера приложений. Откроется диалог Button Attributes (Свойства кнопки) (Рис.3.7).

Рис.3.7. Диалог Button Attributes (Свойства кнопки)

VB Application Wizard (Мастер приложений Visual Basic)

При необходимости измените содержимое полей Button Name (Имя кнопки), Tool Tip Text (Текст всплывающей подсказки) или нажмите кнопку Change Bitmap (Изменить рисунок) для загрузки другого значка кнопки из файла, после чего щелкните мышью на кнопке OK.

Нажмите кнопку Next (Следующий). Появится экран Resources (Ресурсы) мастера приложений (Рис.3.8).

Рис.3.8. Экран Resources (Ресурсы) VB Application Wizard

(Мастер приложений Visual Basic)

На вопрос Would you like to use a Resource file for the strings in your application? (Вы хотите использовать файл ресурсов для текстовых строк в вашем приложении?) ответьте Yes (Да), если вы собираетесь распространять свою программу через Интернет и хотите добавить поддержку нескольких языков интерфейса. В противном случае отвечайте No (Нет).

Перейдите к экрану Internet Connectivity (Связь с Интернетом) с помощью кнопки Next (Следующий) (Рис.3.9).

Рис.3.9. Экран Internet Connectivity (Связь с Интернетом)

VB Application Wizard (Мастер приложений Visual Basic)

Установите переключатель Do you want your users to be able to access the Internet from your application? (Вы хотите предоставить пользователям возможность доступа к Интернету из вашего приложения?) в положение Yes (Да), если вы собираетесь оказывать поддержку пользователей через сеть Интернет, либо знакомить их с новыми версиями разрабатываемого программного обеспечения. В этом случае, введите адрес страницы вашего web-сайта, например:

http://elstrana.ru

Нажмите кнопку Next (Следующий) для переходу к экрану Standard Forms (Стандартные формы) (Рис.3.10).

Рис.3.10. Экран Standard Forms (Стандартные формы)

VB Application Wizard (Мастер приложений Visual Basic)

Щелчком мыши установите флажки слева от названий стандартных форм, которые нужно включить в ваше приложение:

Splash screen at application start up (Информационный экран во время запуска приложения),

Login dialog to accept an ID and Password (Диалог при входе для проверки идентификатора и пароля),

Options dialog for custom settings (Диалог настройки пользовательских параметров),

About Box (Окно с информацией о приложении).

Чтобы выбрать какую-либо из дополнительных форм, нажмите кнопку Form Templates… (Шаблоны форм…). Откроется одноименный диалог (Рис.3.11).

Рис.3.11. Диалог Form Templates (Шаблоны форм)

VB Application Wizard (Мастер приложений Visual Basic)

Выберите одну или сразу несколько дополнительных форм для включения в ваше приложение:

Dialog (Диалог),

ODBC Log In (Подключение к базе данных через драйвер ODBC),

Tip of the Day (Совет дня),

Web Browser (Окно просмотра web-страниц).

Нажмите кнопку OK, чтобы подтвердить свой выбор и закрыть диалог Form Templates (Шаблоны форм).

Щелкните на кнопке Next (Следующий). Появится экран Data Access Forms (Формы для доступа к данным) (Рис.3.12).

Рис.3.12. Экран Data Access Forms

(Формы для доступа к данным)

VB Application Wizard

(Мастер приложений Visual Basic)

Нажмите кнопку Create New Form… (Создать новую форму…). Запустится мастер форм доступа к данным, который рассматривается в следующем разделе данной главы. После завершения создания формы появится диалог Create another Data Form? (Создать другую форму для доступа к базе данных?) (Рис.3.13).

Рис.3.13. Диалог Create another Data Form?

(Создать другую форму для доступа к базе данных?)

VB Application Wizard (Мастер приложений Visual Basic)

Щелкните мышью на кнопке Да (Yes), если хотите создать еще одну форму для доступа к базе данных, или откажитесь от этого предложения, щелкнув на кнопке Нет (No).

Нажмите кнопку Next (Следующий) для перехода к финальному экрану мастера приложений Visual Basic (Рис.3.14).

Рис.3.14. Финальный экран VB Application Wizard

(Мастер приложений Visual Basic)

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

Для этого нажмите кнопку с многоточием у открывающегося списка To what profile do you want to save your settings? (В какой профиль вы хотите сохранить настройки?). Откроется диалог Save Profile (Сохранить профиль) (Рис.3.15).

Рис.3.15. Диалог Save Profile (Сохранить профиль)

VB Application Wizard (Мастер приложений Visual Basic)

В поле ввода Имя файла (File Name) впечатайте произвольное имя файла и нажмите кнопку Сохранить (Save).

Чтобы просмотреть отчет мастера о проделанной работе, можно щелкнуть мышью на кнопке View Report (Просмотреть отчет). Но особо обольщаться не следует – он будет на английском языке.

Теперь осталось нажать кнопку Finish (Закончить) для завершения работы мастера приложений Visual Basic. Через некоторое время появится диалог Application Created (Приложение создано) (Рис.3.16).

Рис.3.16. Диалог Application Created (Приложение создано)

VB Application Wizard (Мастер приложений Visual Basic)

Щелкните мышью на кнопке OK для закрытия диалога. Остается полюбоваться сделанной работой (Рис.3.17).

Рис.3.17. Один из вариантов приложения, созданного с помощью VB Application Wizard

(Мастер приложений Visual Basic)

3.2. Мастер форм доступа к данным

Вспомогательный мастер Data Form Wizard (Мастер форм доступа к данным) используется для создания форм, связанных с таблицами локальных и удаленных баз данных.

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

Мастер форм доступа к данным вызывается из экрана Data Access Forms (Формы для доступа к данным) мастера приложений Visual Basic (Рис.3.12). Сначала появляется начальный экран Data Form Wizard (Мастер форм доступа к данным) (Рис.3.18).

Рис.3.18. Начальный экран Data Form Wizard

(Мастер форм доступа к данным)

Для использования предыдущих настроек, можно нажать кнопку с многоточием у открывающегося списка From what profile do you want to load your settings? (Из какого профиля вы хотите загрузить настройки?) и загрузить сохраненный ранее профиль, после чего щелкнуть на кнопке Finish (Завершить).

Нажмите кнопку Next (Следующий), чтобы перейти к следующему экрану мастера – Database Type (Тип базы данных) (Рис.3.19).

Рис.3.19. Экран Database Type (Тип базы данных)

Data Form Wizard (Мастер форм доступа к данным)

Здесь предлагается выбрать формат базы данных, к которой будет осуществляться доступ:

• Access – база данных Microsoft Access, расположенная на диске или в локальной сети,

• Remote (ODBC) – любая база данных, к которой можно получить доступ через драйвер ODBC, она может быть локальной или находиться на удаленном сервере.

Если выбрать элемент списка Access, то после нажатия кнопки Next (Следующий) откроется экран Database (База данных) (Рис.3.20).

Рис.3.20. Экран Database (База данных)

Data Form Wizard (Мастер форм доступа к данным)

В поле ввода Database Name (Имя базы данных) внесите полный путь к имени файла Microsoft Access, либо щелкните мышью на кнопке Browse… (Просмотреть…) для открытия диалога Access Database (База данных Access) (Рис.3.21).

Рис.3.21. Диалог Access Database (База данных Access)

Data Form Wizard (Мастер форм доступа к данным)

Выберите папку и файл, затем щелкните мышью на кнопке Открыть (Open). В поле Database Name (Имя базы данных) пропишется путь к базе данных.

После нажатия кнопки Next (Следующий) мы перейдем к экрану Form (Форма) (Рис.3.24).

Несколько по-другому осуществляется доступ к базе данных, если на экране Database Type (Тип базы данных) (Рис.3.19) выбран другой тип базы данных – Remote (ODBC).

Тогда после нажатия кнопки Next (Следующий) откроется новый экран мастера – Connect Information (Информация о подключении) (Рис.3.22).

Рис.3.22. Экран Connect Information

(Информация о подключении)

Data Form Wizard

(Мастер форм доступа к данным)

Группа элементов управления ODBC Connect Data (Данные о подключении через ODBC) служит для ввода следующей информации:

DSN – тип файла,

UID – идентификатор пользователя,

PWD – пароль,

Database – имя базы данных,

Driver – тип драйвера ODBC,

Server – адрес сервера.

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

Если введено не все, то мастер форм доступа к данным предупредит вас об этом появлением предупреждающего сообщения: Incomplete Data. You must enter valid connect information before you can continue. (Неполные данные. Вы должны ввести правильную информацию о подключении перед тем, как продолжить.) (Рис.3.23).

Рис.3.23. Диалог Incomplete Data (Неполные данные)

Data Form Wizard

(Мастер форм доступа к данным)

При правильном заполнении всех полей появится новый экран Form (Форма) мастера Data Form Wizard (Мастер форм доступа к данным) (Рис.3.24).

Рис.3.24. Экран Form (Форма)

Data Form Wizard

(Мастер форм доступа к данным)

В поле What name do you want for the form? (Какое имя вы хотите дать форме?) введите имя формы.

Список Form Layout (Компоновка формы) позволяет выбирать формат отображения данных на экране:

Single Record – просмотр, редактирование и добавление одиночных записей,

Grid (Datasheet) – сеточная форма с несколькими записями,

Master/Detail – вывод одной записи из главной таблицы и всех связанных из подчиненной таблицы,

MS HFlexGrid – другая сеточная форма с несколькими записями,

MS Chart – диаграмма.

Щелчком мыши выделите нужный элемент списка Form Layout (Компоновка формы).

Переключатель Binding Type (Тип связи) лучше оставьте в том положении, которое было установлено мастером по умолчанию (ADO Data Control).

Нажмите кнопку Next (Следующий). Отобразится экран Record Source (Источник записей) (Рис.3.25).

Рис.3.25. Экран Record Source (Источник записей)

Data Form Wizard (Мастер форм доступа к данным)

Выберите таблицу, с которой будет связана форма, в открывающемся списке Record Source (Источник записей). Список Available Fields (Доступные поля) покажет названия полей выбранной таблицы.

С помощью кнопок Move the Selected Field to the Right (Переместить выбранное поле направо) или Move All Fields to the Right (Переместить все поля направо) переместите названия полей, которые нужно отображать в форме, из левого списка Available Fields (Доступные поля) в правый – Selected Fields (Выбранные поля).

При необходимости откорректируйте последовательность полей в списке Selected Fields (Выбранные поля) кнопками Move Field Up in List (Переместить поле вверх в списке) и Move Field Down in List (Переместить поле вниз в списке).

Кроме того, можно отсортировать записи таблицы по содержимому одного из полей, выбрав его имя в открывающемся списке Column to Sort By (Сортировать столбец по).

Щелкните мышью на кнопке Next (Следующий) для отображения следующего экрана – Control Selection (Выбор управляющих кнопок) (Рис.3.26).

Рис.3.26. Экран Control Selection (Выбор управляющих кнопок)

Data Form Wizard (Мастер форм доступа к данным)

Группа элементов управления Available Controls (Доступные управляющие кнопки) позволяет выбрать те управляющие кнопки, которые необходимы вашему приложению при работе с записями базы данных:

Add Button (Кнопка «Добавить»),

Edit Button (Кнопка «Редактировать»),

Delete Button (Кнопка «Удалить»),

Refresh Button (Кнопка «Обновить»),

Close Button (Кнопка «Закрыть»).

Оставьте флажки только у тех управляющих кнопок, которые вам необходимы, и щёлкнув на кнопке Next (Следующий) перейдите к финальному экрану мастера форм доступа к данным (Рис.3.27).

Рис.3.27. Финальный экран Data Form Wizard

(Мастер форм доступа к данным)

Чтобы сохранить выполненную последовательность действий в файле профиля для последующего использования, нажмите кнопку с многоточием у открывающегося списка To what profile do you want to save your settings? (В какой профиль вы хотите сохранить настройки?) и сохранить профиль.

После нажатия кнопки Finish (Завершить) мастер форм доступа к данным закончит свою работу.

3.3. Создание приложений в виде мастеров

Разработчики Visual Basic предусмотрели, также, возможность конструирования пользователями собственных приложений-мастеров с помощью VB Wizard Manager (Менеджер мастеров Visual Basic).

Чтобы запустить VB Wizard Manager (Менеджер мастеров Visual Basic), используйте команду меню File – New Project (Файл – Новый проект). Откроется диалог New Project (Новый проект) (Рис.3.28).

Рис.3.28. Диалог New Project (Новый проект)

Выберите внутри диалогового окна значок VB Wizard Manager (Менеджер мастеров Visual Basic) и щелкните мышью на кнопке OK.

При первом запуске менеджера мастеров должно появится сообщение: No Wizard Form Found! Main Wizard must be called «frmWizard’. Create a New Wizard Project? (Не найдена форма мастера! Главный мастер должен называться frmWizard’. Создать нового мастера?) (Рис.3.29).

Рис.3.29. Диалог No Wizard Form Found!

(Не найдена форма мастера!)

VB Wizard Manager

(Менеджер мастеров Visual Basic)

Нажмите кнопку Да (Yes), что приведет к созданию главного мастера VB Wizard Manager (Менеджер мастеров Visual Basic) и открытию диалога Save New Wizard As… (Сохранить нового мастера как…) (Рис.3.30).

Рис.3.30. Диалог Save New Wizard As…

(Сохранить нового мастера как…)

VB Wizard Manager

(Менеджер мастеров Visual Basic)

Введите название нового мастера в поле Имя файла (File Name) и щелкните мышью на кнопке Сохранить (Save). Появится главное окно VB Wizard Manager (Менеджер мастеров Visual Basic) (Рис.3.31).

Рис.3.31. Главное окно VB Wizard Manager

(Менеджер мастеров Visual Basic)

Рассмотрим функции кнопок панели инструментов VB Wizard Manager (Менеджер мастеров Visual Basic), которые позволяют программисту работать со списком последовательно выполняемых действий (шагов), каждому из которых соответствует отдельная форма:

Move All Steps Off Screen (Убрать все шаги с экрана),

Add a New Step to the Wizard (Добавить новый шаг),

Insert a Step Ahead of the Current Step (Вставить шаг перед текущим),

Move the Current Step Up (Переместить текущий шаг вверх),

Move the Current Step Down (Переместить текущий шаг вниз),

Refresh the List of Steps (Обновить список шагов).

Щелкните правой кнопкой мыши внутри окна VB Wizard Manager (Менеджер мастеров Visual Basic). Появится контекстное меню (Рис.3.32).

Рис.3.32. Контекстное меню VB Wizard Manager

(Менеджер мастеров Visual Basic)

Большинство пунктов меню выполняет те же самые функции, что и кнопки панели инструментов, но есть и такие действия, которые можно выполнить только с помощью меню, так как такие кнопки отсутствуют:

Delete – удалить выделенный шаг,

Edit Name – изменить название выделенного шага,

New Wizard – создать новый мастер,

Help – вызвать справку,

Show Toolbar – убрать или показать панель инструментов.

Для обновления текущего списка шагов мастера воспользуйтесь пунктом контекстного меню Refresh (Обновить), либо одноимённой кнопкой панели инструментов.

В окне VB Wizard Manager (Менеджер мастеров Visual Basic) появится список шагов, которые будут выполняться мастером (Рис.3.33).

Рис.3.33. Новый мастер в окне VB Wizard Manager

(Менеджер мастеров Visual Basic)

Выделите щелчком мыши шаг Introduction Screen (Начальный экран). На экране появится окно формы созданного вами мастера (Рис.3.34).

Рис.3.34. Окно формы нового мастера, созданного с помощью

VB Wizard Manager (Менеджер мастеров Visual Basic)

На данной форме располагаются кнопки и другие элементы управления. Их можно изменять, как и в любом другом проекте Visual Basic.

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

Глава 4. Операторы и выражения

В этой главе вы научитесь:

• разбираться в синтаксисе элементов программы на языке Visual Basic,

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

• правильно составлять сложные выражения с учетом приоритетов выполнения операций.

4.1. Что такое синтаксис

Прежде чем перейти к описанию конкретных операторов языка, сделаем несколько замечаний о синтаксисе, который будет использоваться в дальнейшем при описании элементов программы на языке Visual Basic, а также различных элементов управления.

Синтаксис (Syntax) – это набор правил, определяющий последовательности символов, допустимые в языке программирования. Например, использование метода SetFocus (Установить фокус) имеет простейший синтаксис:

объект.SetFocus

Здесь достаточно вместо слова объект подставить имя реального объекта:

cmdHello.SetFocus

Другой часто используемый метод Print (Напечатать), выводящий текст на поверхность формы или другого объекта, обладает более сложным синтаксисом:

[объект.] Print [[выражение] [{;|,}]]…

Перечислим основные синтаксические правила, которые здесь использованы:

• элементы в квадратных скобках ([]) не обязательны,

• многоточие за квадратными скобками ([] …) говорит о том, что последовательность в скобках может повторяться несколько раз,

• список в фигурных скобках, разделенный вертикальными черточками ({|}) означает, что нужно выбрать только один из элементов данного списка,

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

Исходя из этого, правильными вариантами использования метода Print (Напечатать) будут следующие:

Print

Form1.Print 1, 2, 3, 4, 5

Picture1.Print «Он»; « и»; «она»

Debug.Print «Name:» & cmdHello.Name «Caption:» & cmdHello.Caption

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

4.2. Операторы языка Visual Basic

Программа на языке Visual Basic состоит из последовательности операторов (Statements), являющихся элементарными единицами в структуре программы и выполняющих определенные действия над данными. Синтаксис большинства операторов таков:

операнд1 оператор операнд2

На месте одного или обоих операндов (Operands) чаще всего находятся выражения (Expressions) – элементы программы, вырабатывающие значения. Выражения, в свою очередь, могут состоять из одного или нескольких операторов:

2 +2

varX> 4 And varX <10

Form1.Caption & " " & Form1.Tag

Операторы можно разбить на следующие группы:

• присвоения,

• арифметические,

• конкатенации,

• сравнения,

• логические.

4.3. Оператор присвоения

Наиболее часто в программах на языке Visual Basic используется оператор присвоения, имеющий следующий формат:

приемник_данных = источник_данных

Символ "=" в данном случае является не знаком равенства, а оператором присвоения, а приемник_данных и источник_данных – его операндами.

Операция присвоения может задавать новые значения переменным, либо менять свойства объектов, например:

Number1 = 500

Form1.Caption = «Новый заголовок формы»

Сначала в переменную Number1 заносится целое число 500. Во второй строке свойство Caption (Заголовок) объекта Form1 после операции присвоения будет содержать текст «Новый заголовок формы» (без кавычек, которые являются ограничителями строки символов).

На этих простых примерах мы рассмотрели использование одного оператора присвоения, хотя в правой части может находиться выражение, состоящее из нескольких операторов:

Form1.Caption = «Программа:» & Form1.Name

При работе программы Visual Basic сначала вычисляет значение выражения в правой части оператора, а затем присваивает его в левой части.

4.4. Арифметические операторы

С большинством арифметических операторов вы должны быть знакомы еще со средней школы. Следующая таблица включает полный список арифметических операторов (Рис.4.1).

Рис.4.1. Арифметические операторы

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

Print (1 +2) * 3

Тип данных результата арифметического выражения определяется типами данных составляющих его операндов. Если же типы разные, то используется тип операнда, имеющий наибольший размер. Так, если вы складываете число 1000 типа Integer (Целый) с числом 100000 типа Long (Длинный целый), то результат будет иметь тип Long (Длинный целый).

4.5. Операторы конкатенации

Операторы конкатенации используются только со строками символов. Их всего два: амперсант "&" и плюс "+». Если быть более точным, то единственный оператор конкатенации может быть выражен одним из этих символов. Операция конкатенации заключается в соединении двух строк в одну.

Пример конкатенации строк:

strWelcome = «Добро» & " " & «пожаловать!»

Результатом соединения трех строк будет одна – «Добро пожаловать!», которая и будет занесена в переменную strWelcome. Обратите внимание, что оператор конкатенации сам не вставляет пробелы между словами. Вторая строка " " в выражении состоит из одного пробела, без которого результирующая строка получилась бы слитной: «Добропожаловать!».

4.6. Операторы сравнения

Операторы сравнения, также похожи на аналогичные знаки математических операций (Рис.4.2).

Рис.4.2. Операторы сравнения

Результатом любой операции сравнения всегда является True (Истина) или False (Ложь), поэтому они часто используются в качестве условий выбора.

Пример использования операции сравнения:

bolYesNo = varX> 4

Здесь в переменную bolYesNo заносится результат сравнения varX> 4. Если varX больше четырех, то переменная принимает значение True (Истина), в противном случае – False (Ложь).

4.7. Логические операторы

И, наконец, завершают множество операторов Visual Basic логические операторы (Рис.4.3).

Рис.4.3. Логические операторы

Их часто называют Булевыми операторами, потому что они заимствованы из математической логики – Булевой алгебры. Операнды и результат логической операции имеют тип Boolean (Логический).

Самым простым является оператор логического отрицания – Not. Если он стоит перед единственным операндом, значение которого – True (Истина), то результатом всего выражения будет False (Ложь), и наоборот (Рис.4.4).

Рис.4.4. Результаты вычисления выражений

с оператором логического отрицания Not

Оператор логического умножения And всегда находится между двумя операндами. Значение всего выражения будет True (Истина), только если оба из них возвращают True (Истина), иначе – False (Ложь) (Рис.4.5).

Рис.4.5. Результаты вычисления выражений

с оператором логического умножения And

Логическое сложение Or – еще один из наиболее часто встречающихся логических операторов. По написанию он похож на предыдущий и возвращает True (Истина), если хотя бы один из операндов имеет значение True (Истина) (Рис.4.6).

Рис.4.6. Результаты вычисления выражений

с оператором логического сложения Or

Исключающее сложение Xor работает аналогично Or, кроме случая, когда оба операнда имеют значение True (Истина) (Рис.4.7).

Рис.4.7. Результаты вычисления выражений

с оператором исключающего сложения Xor

Оператор логической эквивалентности Eqv возвращает True (Истина), если оба операнда имеют одинаковое значение. Иными словами, его результат противоположен использованию оператора исключающего сложения Xor (Рис.4.8).

Рис.4.8. Результаты вычисления выражений

с оператором логической эквивалентности Eqv

Логическая импликация Imp является единственным оператором, результат выполнения которого зависит от положения операндов. Он всегда равен True (Истина), кроме случая, когда первый операнд True (Истина), а второй – False (Ложь) (Рис.4.9).

Рис.4.9. Результаты вычисления выражений

с оператором логической импликации Imp

4.8. Приоритеты операций

Порядок вычисления сложного выражения, состоящего из нескольких операторов, зависит от их приоритетов (Рис.4.10).

Рис.4.10. Операторы языка Visual Basic

в порядке убывания их приоритета

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

В качестве примера попробуйте разобраться с порядком вычисления следующего выражения:

Form1.Visible = 2 <> 3 And Not 2 ^ 3> 2 +3

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

Form1.Visible = (2 <> 3) And (Not ((2 ^ 3)> (2 +3)))

Глава 5. Условные переходы и циклы

В этой главе вы научитесь:

• изменять порядок выполнения операторов программы,

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

• вводить циклы там, где это необходимо.

5.1. Передача управления в программе

Операторы программы обычно выполняются последовательно, друг за другом. Тем не менее, часто возникает необходимость перехода к другой части программы в зависимости от выполнения определенного условия, а также повторного выполнения группы операторов некоторое количество раз. Для этого используются специальные инструкции языка Visual Basic, производящие передачу управления:

• условные переходы,

• безусловные переходы,

• циклы,

• вызовы подпрограмм.

Условные переходы проверяют одно или несколько условий и в зависимости от этого осуществляют выполнение того или иного блока операторов из нескольких возможных, либо вообще ни один из блоков не выполняется. Безусловные переходы передают управление безо всякой проверки.

Циклы дают возможность повторения несколько раз подряд части программы. Некоторые типы циклов делают фиксированное число повторений, другие – выполняются до тех пор, пока не будет выполнено заданное условие.

Подпрограммы будут рассматриваться в следующей главе.

5.2. Условный переход If…Then… Else

Наиболее часто встречается инструкция условного перехода If…Then… Else. В упрощенном варианте эта инструкция может располагаться в одну строку, тогда ее синтаксис будет следующим:

If условие Then инструкция [Else инструкция_else]

Ключевое слово If (Если) начинает строку. После этого находится условие, представляющее собой булево выражение, в зависимости от значения которого происходит выполнение последующих инструкций:

• если результат = True (Истина), то выполняется инструкция после Then (Затем),

• если результат = False (Ложь), то выполняется инструкция после Else (Иначе), а при отсутствии ключевого слова Else (Иначе) – ничего не выполняется.

Приведем несколько примеров использования упрощенного варианта условной инструкции If…Then… Else:

If 5 <varX Then varY = varX * 2

If Form1.Width <> 3800 Then Form1.Width = 3800

If Button = 2 Then PopupMenu mnuSelColor Else PSet (X, Y)

Гораздо более широкие возможности для программиста предоставляет блоковая форма синтаксиса инструкции If…Then… Else, которая допускает проверку не одного, а нескольких условий. В этом случае инструкции располагаются в несколько строк:

If условие Then

[инструкции]

[ElseIf условие-n Then

[инструкции_elseif]…

[Else

[инструкции_else]]

End If

Многое в блоковом синтаксисе похоже на предыдущую форму записи, но есть и отличия: если результатом проверки условия будет False (Ложь), то перед выполнением блока Else (Иначе) возможна проверка дополнительных условий с помощью ElseIf (Иначе Если). Весь блок завершается ключевым словом End If (Конец Если).

Вот пример, где дважды проверяется свойство Value (Значение) элемента управления HScrollBar (Горизонтальная полоса прокрутки). При достижении свойства Value (Значение) минимума (HScroll1.Value = HScroll1.Min) и максимума (HScroll1.Value = HScroll1.Max) выдаются соответствующие сообщения, в противном случае – происходят вычисления с использованием значения этого свойства:

If HScroll1.Value = HScroll1.Min Then

MsgBox «Достигнут минимум!»

ElseIf HScroll1.Value = HScroll1.Max Then

MsgBox «Достигнут максимум!»

Else

varY = varX / HScroll1.Value

End If

Инструкция условного перехода If…Then… Else может содержать внутри себя другие условные инструкции, причем допускается несколько уровней вложенности, например:

If varX> = 1 And varX <= 1000 Then

If varX <500 Then

MsgBox «Значение меньше 500»

ElseIf varX> 500 Then

MsgBox «Значение больше 500»

Else

MsgBox «Значение равно 500»

End If

Else

MsgBox «Исходное значение вне допустимого диапазона!»

End If

5.3. Условный переход Select Case

Условная инструкция Select Case по своим возможностям аналогична If…Then… Else, но, прежде всего, рассчитана на выбор одного варианта не из двух, а из нескольких возможных. Синтаксис инструкции Select Case следующий:

Select Case выражение

[Case список_значений_выражения-n

[инструкции-n]]…

[Case Else

[инструкции_else]]

End Select

Результат выражения, находящегося после ключевых слов Select Case, используется Visual Basic при выборе одного из блоков инструкций Case (Вариант). В начале каждого блока Case (Вариант) находится список допустимых значений. При совпадении одного из них с результатом выражения, выполняется именно этот блок Case (Вариант).

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

• значением,

• выражением,

• диапазоном,

• оператором сравнения.

С непосредственными значениями и выражениями мы уже встречались. Диапазон использует ключевое слово To (До) и определяет множество допустимых значений, от минимального до максимального:

выражение_минимум To выражение_максимум

Примеры диапазонов:

1 To 5

varX To varX +20

Оператор сравнения обязательно содержит ключевое слово Is (Есть), которое олицетворяет текущий результат выражения:

Is оператор_сравнения выражение

Данный блок инструкций Case (Вариант) выполняется, если результатом оператора сравнения будет True (Истина). Примеры операторов сравнения:

Is <> 0

Is> varX

Блок инструкций Case Else (Другой вариант) выполняется, если Visual Basic не находит подходящего значения ни в одной из блоков Case (Вариант).

В следующем примере Select Case оценивает значение переменной Mark, которой до этого был присвоен номер школьной оценки в цифровом виде, и расшифровывает ее. Если значение переменной Mark отличается от допустимого (от одного до пяти), то выдается сообщение об этом.

Select Case Mark

Case 1

MsgBox «Единица»

Case 2

MsgBox «Двойка»

Case 3

MsgBox «Тройка»

Case 4

MsgBox «Четверка»

Case 5

MsgBox «Пятерка»

Case Else

MsgBox «Оценка введена неправильно!»

End Select

5.4. Безусловный переход GoTo

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

GoTo метка

Метка является символьным идентификатором одного из операторов программы, используемым для передачи к нему управления. Она представляет собой комбинацию латинских букв и цифр, но должна состоять начинаться с буквы. В конце метки ставится символ двоеточия «:». Вот несколько образцов меток:

L2:

Good_Place:

ThisIsLabel800:

Несмотря на кажущуюся простоту, использование безусловных переходов крайне затрудняет понимание логики работы программы и увеличивает число ошибок. С другой стороны, алгоритмически доказано, что в любой программе можно обойтись без GoTo, применяя вместо этого инструкции If…Then… Else и Do… Loop.

Поэтому применение инструкции GoTo крайне не рекомендуется. Она поддерживается Visual Basic только для совместимости с предыдущими диалектами языка Basic.

5.5 Цикл For…Next

Цикл For…Next повторяет группу операторов программы нужное количество раз. Синтаксис данного цикла следующий:

For счетчик = начало To конец [Step шаг]

[инструкции]

[Exit For]

[инструкции]

Next [счетчик]

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

По умолчанию при каждой итерации цикла переменная счетчика увеличивается на единицу, но с помощью ключевого слова Step (Шаг) это можно изменить. Переход на новую итерацию цикла осуществляется с помощью инструкции Next.

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

В случае применения оператора Exit For будет продолжаться выполнение других операторов программы, расположенных после цикла.

Например, следующий цикл подает звуковой сигнал 5 раз:

For i = 1 To 5

Beep

Next i

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

Кстати, указание имени счетчика после Next не обязательно и обычно используется для облегчения понимания кода программы. Инструкция Beep единственная в теле цикла. Она производит короткий гудок.

Циклы могут быть многократно вложенными. Приведем пример такого цикла, где внутри одного цикла с переменной i вложен другой цикл с переменной j:

For i = 100 To 0 Step -10

For j = 1 To 20

varY = varY * (i / j)

Next j

If i <20 Then Exit For

Next i

5.6. Цикл For Each…Next

Немного похожий своим написанием на предыдущий, цикл For Each…Next повторяет набор операторов для каждого элемента массива или всех объектов одного семейства. Вот его синтаксис:

For Each элемент In группа

[инструкции]

[Exit For]

[инструкции]

Next [элемент]

Например, чтобы поочередно вывести на экран значения всех элементов массива MyArray, нужно написать следующий цикл:

For Each ArrItem In MyArray

Print ArrItem

Next

5.7. Цикл Do… Loop

Do… Loop – цикл, который выполняется до тех пор, пока не будет выполнено некоторое условие, указанное вначале или в конце цикла.

Он имеет следующий синтаксис (вариант проверки условия в начале):

Do [{While | Until} условие]

[инструкции]

[Exit Do]

[инструкции]

Loop

Допустима также другая форма написания этого цикла (вариант проверки условия в конце) :

Do

[инструкции]

[Exit Do]

[инструкции]

Loop [{While | Until} условие]

Итерации цикла (выполнение этого участка кода программы) будут продолжаются снова и снова, до тех пор, пока не будет выполнено одно из двух условий:

• условие, записанное после ключевого слова While (Пока [истина]), принимает значение False (Ложь),

• условие, записанное после ключевого слова Until (Пока не [истина]), принимает значение True (Истина).

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

Без указания условий цикл Do… Loop будет работать бесконечно. Поэтому для досрочного выхода из цикла можно применять инструкцию Exit Do.

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

intDig1 = 5

Do While intDig1> 0

print 100 / intDig1

intDig1 = intDig1 – 1

Loop

5.8. Инструкция With

Инструкция With не является условием или циклом, а упрощает выполнение нескольких последовательных операций над одним объектом, помогая избежать повторного задания его имени.

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

With Form1

.Left = 3500

.Top = 2500

.Width = 4000

.Height = 3000

End With

Глава 6. Процедуры и функции

В этой главе вы научитесь:

• разбираться в разновидностях подпрограмм,

• создавать собственные подпрограммы,

• использовать встроенные процедуры и функции.

6.1. Разновидности процедур

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

Процедурой (Procedure) в языке Visual Basic называется именованная часть программы, которая вызывается, выполняет определенные действия и возвращает управление в строку, следующую за точку вызова.

Различают следующие основные разновидности процедур:

• обработки событий,

• общего назначения,

• встроенные.

Процедуры обработки событий (Event Procedures) вызываются самим Visual Basic, когда происходят определенные события, связанные с элементами управления. В главе 2 мы уже составляли текст таких процедур, занимающихся обработкой события Click (Щелчок) кнопок cmdHello и cmdExit.

Процедуры общего назначения (General Procedures) не привязаны ни к каким событиям или объектам. Необходимость в их написании возникает, когда в разных частях программы приходится использовать одну и ту же последовательность операторов. Тогда пишется одна процедура общего назначения, а в нужных точках программы вставляются инструкции вызова этой процедуры. Использование процедур общего назначения улучшает читаемость текста программы, а также уменьшает число ошибок.

Встроенные процедуры (Built-In Procedures) поставляются уже готовыми в комплекте Visual Basic. Они выполняют все наиболее часто требуемые операции, но их внутренняя структура скрыта от программиста. Встроенные процедуры вызываются из основной программы так же, как и процедуры общего назначения. Методы и свойства стандартных объектов, также являются встроенными процедурами, однако они могут использоваться только применительно к этим объектам.

Обобщенный синтаксис инструкции вызова процедуры (Procedure Call) выглядит следующим образом:

имя_процедуры [(список_аргументов)]

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

Особенности использования процедур в программе зависит еще и от того, возвращают ли они какие-нибудь значения или нет. По этому признаку все процедуры делятся на две разновидности:

• Sub (Подпрограмма) – не возвращающие значения,

• Function (Функция) – возвращающие значения.

Инструкции вызова процедур Sub (Подпрограмма) пишутся отдельной строкой. Вызов Function (Функция) обязательно должен находиться на месте одного из параметров оператора языка Visual Basic или аргумента другой процедуры, где обычно может располагаться выражение.

Основное различие в синтаксисе вызова процедур различных видов заключается в том, что перечень аргументов процедуры Sub (Подпрограмма) приводится без скобок, а у Function (Функция) – он заключен в круглые скобки.

Примеры вызовов процедур различного типа:

MySub 5, varX +3, varY / varX

Form1.Caption = Now ()

Первой строкой вызывается процедура общего назначения MySub, которой передается три параметра. Во второй строке полученное значение встроенной функции Now без параметров, возвращающей текущую системную дату и время, присваивается свойству Caption (Заголовок) формы Form1.

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

6.2. Процедура Sub (Подпрограмма)

Процедура Sub (Подпрограмма) представляет собой последовательность операторов языка Visual Basic, выполняющая определенные действия, не возвращающая значений. Синтаксис объявления подпрограммы следующий:

[{Private|Public}] [Static] Sub имя ([список_аргументов])

[инструкции]

[Exit Sub]

[инструкции]

End Sub

Ключевое слово Private (Частная) указывает на то, что данная процедура видна только внутри текущего модуля, а Public (Общая) делает ее общедоступной.

Другое ключевое слово Static (Постоянный) информирует Visual Basic о необходимости сохранения значений внутренних переменных между вызовами процедуры, хотя от этого они и не становятся видимыми для других подпрограмм.

Процедура Sub (Подпрограмма) может получать входные данные – аргументы, которые перечисляются в круглых скобках. Если аргументы отсутствуют, круглые скобки должны оставаться пустыми.

Необязательная в использовании инструкция Exit Sub (Выход из подпрограммы) позволяет досрочно завершить работу процедуры в тех случаях, когда это вам бывает необходимо.

Пример определения общедоступной процедуры Sub (Подпрограмма) общего назначения, которая выдает нужное количество гудков:

Public Sub Trill (intCount As Integer) ‘ начало процедуры

If intCount <1 Then Exit Sub ‘ если intCount <1, то выходим

For i = 1 To intCount ‘ цикл For… Next от 1 до intCount

Beep ‘ подача звукового сигнала из динамика компьютера

Next ‘ переходим к следующей итерации цикла For… Next

End Sub

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

Чтобы Visual Basic не воспринимал комментарии в качестве неверного кода, перед ними ставится символ «‘» или инструкция Rem. Когда Visual Basic встречает признак комментария, он игнорирует остальные символы до конца текущей строки.

Теперь в коде любой другой процедуры данной формы можно осуществлять вызов процедуры Trill с аргументом – количеством гудков:

Trill 10

Чтобы процедуру можно было вызывать извне текущего программного модуля, при ее вызове требуется дополнительно указать имя формы или модуля, где она была определена. Например, если процедура Trill находится в форме Проба, то она вызывается аналогично методу данной формы:

Проба.Trill 10

Проиллюстрируем режим сохранения значения внутренних переменных между вызовами процедуры, благодаря использованию ключевого слова Static (Постоянный). Можно привести пример такой процедуры, которая выполняет какие-то действия только ограниченное число раз:

Public Static Sub Proc1 () ‘ процедура Proc1 без аргументов

Dim CallCount As Integer ‘ объявляем целую переменную

If CallCount> = 5 Then Exit Sub ‘ если CallCount> =5 – выход

CallCount = CallCount +1 ‘ увеличиваем переменную на 1

…далее выполняется что-то полезное…

End Sub ‘ завершение процедуры

Эта процедура подсчитывает количество своих вызовов, сохраняя его в переменной CallCount. Процедура Proc1 выполняет какие-то полезные действия только в течение первых 5-ти вызовов, а следующие работают «вхолостую».

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

6.3. Процедура Function (Функция)

Объявление процедуры Function (Функция) по своему синтаксису подобно Sub (Подпрограмма). Отличия обусловлены тем, что функция возвращает значение:

[{Private|Public}] [Static] Function имя [(аргументы)] [As тип]

[инструкции]

имя = выражение

[Exit Function]

[инструкции]

End Function

После ключевого слова As (Как) может быть указан тип данных, возвращаемых функцией. Внутри тела процедуры Function (Функция) обязательно должен встретиться оператор, который присваивает значение имени функции, например:

Private Function GetValue ()

[инструкции]

GetValue = 3

[инструкции]

End Function

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

В данном примере производится преобразование числа в текстовую строку с помощью функции Str и запись ее в переменную strTemp:

Dim strTemp As String

strTemp = Str (-19.436)

Если возвращаемое значение не требуется, можно вызвать функцию так же, как и процедуру Sub. Следует опустить скобки и указать список аргументов. Например, следующая строка выводит сообщение с текущей датой и временем:

MsgBox Now ()

Здесь используются сразу две встроенные функции языка Visual Basic. MsgBox не возвращает никакого значения, а только выводит окно сообщения. Функция Now используется в качестве аргумента, возвращая дату и время.

6.4. Особенности передачи аргументов

При вызове процедур типа Sub (Подпрограмма) или Function (Функция) возможно использование двух способов передачи фактических значений аргументов:

• по ссылке (ByRef),

• по значению (ByVal).

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

Sub Proc2 (ByVal Arg1)

End Sub

Кроме параметров, которые должны быть непременно указаны при вызове процедуры, встречаются и необязательные параметры. Для их обозначения при объявлении применяется ключевое слово Optional (Необязательный):

Sub Proc3 (Arg1, Optional Arg2)

End Sub

При вызове процедуры с аргументом Optional (Необязательный) можно как указывать, так и не указывать необязательный аргумент. Если аргумент не указан, то для него используется имеющееся значение по умолчанию. Если по умолчанию значение не присвоено, аргумент обрабатывается так же, как любая другая переменная соответствующего типа.

В данном случае, правильными будут оба варианта записи вызова этой процедуры:

Proc3 10, 15

Proc3 10

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

Каждый именованный аргумент состоит из имени, за которым следует двоеточие со знаком равенства (:=) и значение аргумента.

Например, следующие три вызова процедуры Proc3 абсолютно равноценны между собой:

Proc3 10, 15

Proc3 Arg1:=10, Arg2:=15

Proc3 Arg2:=15, Arg1:=10

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

Глава 7. Типы данных, переменные и константы

В этой главе вы научитесь:

• использовать константы, переменные и массивы,

• выбирать для них нужные типы данных,

• преобразовать один тип данных в другой.

7.1. Простые типы данных

Константы, переменные или свойства объектов в языке программирования Visual Basic, могут содержать информацию различного формата, например, число, текстовую строку и другие.

Тип данных (Data Type) определяет стандартный способ представления данных в памяти компьютера, включая их формат и количество ячеек памяти в байтах (Bytes), которые потребуются для хранения информации. Типы данных используются для объявления констант, переменных и массивов. Также, свойства объектов и значение любого выражения имеют какой-то определенный тип.

Простые типы данных, которые могут применяться в программах на языке Visual Basic без всякого дополнительного объявления, перечислены в таблице (Рис.7.1).

Рис.7.1. Простые типы данных Visual Basic

Boolean (Логический) является самым простым из вышеперечисленных типов данных. Он может иметь только одно из двух возможных значений:

• True (Истина) – любое число, кроме нуля,

• False (Ложь) – ноль.

Типы Byte (Байт), Integer (Целый) и Long (Длинный целый) может содержать любое целое число в допустимом диапазоне.

Для чисел с плавающей точкой используются типы Single (Одинарной точности), Double (Двойной точности), Currency (Денежный) и Decimal (Десятичный). Разделителем целой и дробной части всегда является точка, независимо от национальных настроек Windows. Тип данных Decimal (Десятичный) не используется отдельно, а только в составе типа Variant (Варьируемый).

Дата и время по отдельности или их комбинация может содержаться в типе данных Date (Дата).

Два типа String (Строковый), предназначены для строк символов переменной или фиксированной длины.

Тип данных Object (Объектный) содержит не сам объект, а лишь указатель на его местоположение в оперативной памяти компьютера.

Самым универсальным типом данных является Variant (Варьируемый), который может содержать значение любого из описанных ранее типов. Однако у него есть и свои недостатки: данные этого типа медленнее всего обрабатываются Visual Basic и возрастает вероятность неправильного использования типов данных в процессе работы приложения.

Важнейшими характеристиками числовых типов данных служат диапазон значений (Range) и точность (Precision). Диапазон значений определяет, сможет ли нужное число уместиться в пределах данного типа, может быть в округленном виде. Точность указывает, какое именно количество десятичных знаков числа будут сохранены без округления.

Например, для сохранения всех разрядов числа 123 456 789 лучше всего подойдут типы данных Long (Длинный целый) и Double (Двойной точности). Если же использовать тип Single (Одинарной точности), нижние 2 разряда числа будут округлены и в результате получится 1,234568E+08 или, другими словами, получится 123 456 800 вместо 123 456 789:

Dim Dig1 As Single ‘ объявляем переменную Dig1 типа Single

Dig1 = 123456789 ‘ записывает туда число 123 456 789

MsgBox Dig1 ‘ выводим значение переменной Dig1

7.2. Преобразование типов данных

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

Такое преобразование осуществляется с помощью встроенных функций языка Visual Basic. Допустимы только некоторые виды преобразований, которые перечислены в таблице (Рис.7.2).

Рис.7.2. Функции языка Visual Basic

для преобразования типов данных

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

Откройте окно кода с процедурой обработки события cmdHello_Click двойным щелчком мыши на кнопке Приветствие.

Удалите тело процедуры, между Private Sub

Конец ознакомительного фрагмента.

Текст предоставлен ООО «ЛитРес».

Прочитайте эту книгу целиком, купив полную легальную версию на ЛитРес.

Безопасно оплатить книгу можно банковской картой Visa, MasterCard, Maestro, со счета мобильного телефона, с платежного терминала, в салоне МТС или Связной, через PayPal, WebMoney, Яндекс.Деньги, QIWI Кошелек, бонусными картами или другим удобным Вам способом.