Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lutay_A.P._Informatsiyni_tehnologiyi_ta_sistemi...doc
Скачиваний:
43
Добавлен:
16.11.2019
Размер:
46.89 Mб
Скачать

5.4.3 Система програмування Visual Basic 6.0

Основні положення

Visual Basic є потужною системою програмування, дає змогу зручно та ефективно створювати складні програми, які працюють в ОС Microsoft Windows. Завершені програми утворюють проект, до складу якого можуть входити такі файли:

  • файл проекту (розширення *.vbp), що містить зв'язки між усіма елементами, а також форми та модулі проекту;

  • файл форми (розширення *.frm), в якому є перелік усіх елементів форми, оголошення змінних, констант, масивів тощо, процедури оброблення подій, функції;

  • файл основних модулів (розширення *.bas), що містить процедури, функції, змінні, які можуть використовуватися в інших модулях проекту;

  • файл модулів класів (розширення *.cls), який використовується для створення і визначення властивостей власних класів.

У проектах Visual Basic легко створювати елементи графічного інтерфейсу користувача (Graphical User Guide — GUI). Для цього не потрібно в програмах описувати побудову і розташування елементів на екрані дисплея, а досить лише за допомогою вибраного з панелі інструментів елемента керування розмістити їх у потрібному місці.

Використовуючи можливості мови Visual Basic, можна:

  • розробити зручний інтерфейс;

  • створити меню (головне, контекстне тощо);

  • працювати з таймером часу;

  • упровадити об'єкти інших додатків (Word, Excel тощо);

  • працювати з файлами і каталогами, які є на диску;

  • обробляти події, пов'язані з активізацією миші та клавіатури;

  • створювати графічні зображення.

Для завантаження Visual Basic треба активізувати команди Пуск, Программы, Microsoft Visual Basic 6.0 або кнопку Vb6 панелі Microsoft Office (її необхідно туди додати заздалегідь). У результаті на екрані дисплея з'являється вікно нового проекту (рисунок 5.4.3.1), в якому вкладка New містить перелік різних типів проектів, які можна використати для створення нового проекту; при цьому проект Standard EXE виділяється за замовчуванням.

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

У вкладці Recent поданий перелік існуючих проектів.

Після вибору потрібного проекту (або його типу при створенні) слід активізувати кнопку Открыть.

Складові частини вікна Visual Basic

Після завантаження Visual Basic на екрані дисплея з'являється вікно, що складається з таких частин (див. рисунок 5.4.3.2):

Рисунок 5.4.3.1 - Створення нового проекту

  • рядок головного меню (1), який містить команди для керування роботою над проектами. Це команди стандартного типу (як у більшості вікон Windows), а також команди для роботи над проектом (наприклад, Run, Debug);

  • панель інструментів Standard (2), на якій розташовані кнопки для зручного виконання більшості команд головного меню. Якщо панель закрито, для її активізації використовують команди View, Toolbars, Standard;

  • вікно Project (3), яке містить ієрархічну структуру елементів, що утворюють проект (у наведеному проекті є лише одна форма — Forml), а також може мати перелік кількох відкритих проектів. У цьому вікні визначають вид проекту (у вигляді форми або програмних кодів). Перемикатися між цими режимами можна за допомогою команд контекстного меню або кнопок View Code та View Object вікна Project;

  • вікно Properties (4), що містить установлені властивості активного об'єкта (на рис. 5.2 — це форма) з певними параметрами. Кожен об'єкт Visual Basic (наприклад, командна кнопка, текстове поле тощо) має власний набір властивостей, які можна переглядати в алфавітному порядку (вкладка Alphabetic) або за категоріями (вкладка Categorized);

  • вікно макета форми (Form Layout) (5), яке дає змогу визначити розташування форми на екрані при виконанні створеного об'єкта;

  • вікно проекту з відкритою формою та вміщеними в ній елементами керування (6). Після виділення будь-якого об'єкта відповідно змінюється також вікно властивостей;

  • елемент керування Image (7);

  • панель General (8), що містить набір елементів керування, які використовуються при створенні проекту. Ними можуть бути такі елементи, як CommandButton, Label, TextBox тощо.

Рисунок 5.4.3.2 - Складовы ы частини вікна Visual Basic

Загальні рекомендації

Для відкривання існуючого проекту використовують команди File, Open Project; у наступному вікні вибирають потрібний диск, папку, а з переліку активізують потрібний файл, після чого натискають на кнопку Открыть.

Для збереження проекту передусім треба зберегти всі його компоненти (форми, модулі програм тощо). Для цього застосовують команди File, Save Project As, після чого для всіх компонентів на екрані дисплея послідовно будуть з'являтися такі вікна, як на рисунку 5.4.3.3.

Рисунок 5.4.3.3 - Збереження проекту

У вікні потрібно визначити місцерозташування файла (поле Папка, 1) та його ім'я (поле Имя файла, 2).

Якщо проект зберігають під існуючим іменем, то досить активізувати кнопку Save Project панелі інструментів Standard (позиція 2 на рисунку 5.4.3.2).

Засіб керування використовується для створення об'єктів у формі. Це можуть бути командні кнопки, а також кнопки списків, вікна рисунків тощо. Для створення об'єкта необхідно активізувати відповідну кнопку панелі інструментів General (позиція 8 на рисунку 5.4.3.2) і при зміненій формі покажчика миші провести ним у потрібному місці форми.

Об'єкт — це елемент інтерфейсу користувача, що створюється у формі за допомогою засобів керування. Такими об'єктами є командні кнопки, а також кнопки списків, текстові вікна тощо. У вікні Properties можна змінювати розміри об'єктів і окремі властивості, переміщувати їх по формі. Після активізації об'єкта у вікні Code можна додавати програмні оператори для виконання цим об'єктом певних дій.

Властивість — характеристика об'єкта, що встановлюється вибором із переліку у вікні Properties або за допомогою програмного коду у вікні Code (наприклад, колір тексту, наявність рамки навколо об'єкта, назва тощо, таблиця 5.4.3.1). Загальний вигляд програмного коду для встановлення властивості такий:

Об'єкт.Властивість=Значення

Наприклад, команда Labell.Caption=Time використовується для присвоєння об'єкту типу Label значення функції поточного часу.

Процедура події — частина програми, що виконується після активізації об'єкта. Наприклад, після ч клацання мишею на командній кнопці автоматично виникає подія Commandl_Click, а керування програмою передається на створені оператори, вміщені між командами Private Sub Commandl_Click() та End Sub.

Наприклад, після активізації командної кнопки виконується процедура завершення роботи, яка має такий вигляд:

Private Sub Commandl_Click()

End Sub

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

Наприклад, елементу масиву А присвоюється значення, введене користувачем за допомогою функції InputBox:

А(і)= InputBox (Mess$)

Метод — це команда, що виконується об'єктом. Наприклад, оператор Forml.Sh.ow виводить форму на екран.

Таблиця 5.4.3.1 - Характеристика деяких властивостей об'єктів

Властивість об'єкта

Суть властивості

Alignment

Вирівнювання інформації у створеному об'єкті (відносно центру, по лівому чи правому краю)

Border Style

Створення рамки навколо об'єкта (0 — None — рамки не існує; 1 — Fixed Single — рамка існує)

Caption

Назва об'єкта, яка за замовчуванням збігається з іменем (Name), наприклад командна кнопка — Command!, текстове поле — Labell тощо

Font

Установлення виду, розміру та накреслення шрифту

ForeColor

Установлення кольору тексту в об'єкті; вкладка Palette містить кольори, доступні системі; вкладка System — установлені системні кольори для віконного інтерфейсу

PasswordChar

Установлення символу, на який перетворюється вся введена в текстове поле інформація користувача (наприклад, при введенні паролів)

Picture

Вибір і завантаження рисунка в об'єкт

Stretch

Установлення розміру вбудованого графічного об'єкта: True — масштаб не змінюється; False — можлива будь-яка зміна розміру (при цьому зображення може бути викривленим)

Visible

Установлення видимості створеного об'єкта: False — об'єкт невидимий; True — об'єкт видимий у формі

Робота зі змінними у програмі

Змінна — місцерозташування даних у програмі. Змінні можуть зберігати початкові значення, результати розрахунків, значення властивостей. Змінну у програмі бажано спочатку оголосити, тобто визначити ім'я, тип і, можливо, її розмір.

Ім'я змінної завжди починається з літери, може мати довжину до 255 символів, не повинно містити крапок. Іменем змінної не можуть бути назва об'єкта, властивості або ключові слова Visual Basic.

Змінна має тип. За замовчуванням усі дані мають тип Variant. У таблиці 5.4.3.2 вміщено стандартні типи даних Visual Basic.

Без попереднього оголошення процес використання змінної є неявним оголошенням.

Таблиця 5.4.3.2 - Типи даних Visual Basic

Тип даних

Об'єм пам'яті, байти

Діапазон значень

Integer

2

Від 32768 до 32767

Long Integer

4

Від 2147483648 до 2147483647

Single-precision Floating point

4

Від 3.402823Е38 до 3.402823Е38

Double-precision Floating point

8

Від 1.79769313486232D308 до 1.79769313486232D308

Currency

8

Від 922337203685477.5808 до 922337203685477.5808

String

1 на символ

Від 0 до 65535 символів

Boolean

2

True або False

Date

8

Від 01.01.100 до 31.12.319999

Variant

16 для чисел;

22 + 1 на

символ

Для визначення типу даних змінної при першому її використанні кінцевою літерою імені можуть бути такі символи: таблиця 5.4.3.3.

Таблиця 5.4.3.3 - Типи даних змінної

Тип змінної

Символ

Integer

%

Long

&

Single

I

Double

#

Currency

@

String

$

Наприклад:

NameTov$ = «Computer» PriceTov! = 155.21

Явне оголошення змінних

При програмуванні всі змінні бажано оголошувати. Для цього використовують оператор

Dim <ім'я змінної> [As <тип змінної>]

Наприклад:

Dim NamePassW As String

Крім наявних, можна також створити новий тип даних. Для цього застосовується оператор Туре.

Нехай, наприклад, треба працювати із структурою даних, що описує товар. Тоді створюється новий тип даних:

Type Tovar Kod As Variant NameTov As String Cost As Integer

При використанні такого типу даних у програмі спочатку оголошуються дані створеного типу, після чого змінним присвоюється значення, наприклад:

Dim Sklad As Tovar Sklad.NameTov=«Computer»

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

Приклад. Програма виконання розрахунків у формі. Програма виконує множення двох введених користувачем значень і виводить у форму результат розрахунку. Для виконання цих дій у формі створюють об'єкти типу Label і змінюють відповідно їхні властивості:

• назва над першим полем для введення значень

Name: Labell; Alignment: 2 — Center; BorderStyle: 1 — Fixed Single; Caption: значення 1

• назва над другим полем для введення значень

Name: Label2; Alignment: 2 — Center; BorderStyle: 1 — Fixed Single; Caption: значення 2

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

Name: Label3; Alignment: 2 — Center; BorderStyle: 1 — Fixed Single; Caption: результат

• поле для виведення результату розрахунку

Name: Label4; Alignment: 2 — Center; BorderStyle: 1 — Fixed Single; Caption: (порожньо)

Ці об'єкти мають майже однакові властивості (крім останньої назви); тому їх після створення виділяють при натиснутій клавіші Ctrl або Shift і встановлюють значення властивостей, що повторюються.

Далі створюють об'єкти типу TextBox:

• поле для введення першого значення

Name: Textl; Alignment: 2 — Center; BorderStyle: 1 — Fixed Single; Text: (порожньо)

• поле для введення другого значення

Name: Text2; Alignment: 2 — Center; BorderStyle: 1 — Fixed Single; Text: (порожньо)

Крім того, створюють об'єкти типу CommandButton:

• кнопка для виконання розрахунку

Name: Commandl; Caption: Розрахунок

• кнопка для виходу з програми Name: Command2; Caption: Вихід

Після цього для додавання програмних операторів треба активізувати вікно Code. З цією метою двічі клацають мишею на командній кнопці Розрахунок. У результаті на екрані дисплея з'являється вікно Code, в якому додають такі оператори для оброблення процедури активізації командної кнопки:

Private Sub Commandl_Click() Dim al, a2 оголошення змінних для збереження введених значень al = Textl.Text присвоєння змінним значень, уведених користувачем у текстовому полі (Textl) а2 = Text2.Text

Label4.Caption = al * а2' виведення результату розрахунку в полі типу ' Label End Sub

Щоб додати програмні оператори для оброблення процедури активізації командної кнопки Вихід, необхідно у вікні Code в переліку об'єктів (позиція / на рисунку 5.4.3.4) активізувати ім'я Command2. У результаті відкривається процедура Command2_Click(), в яку додають оператор End для закінчення роботи програми. При цьому вікно Code має вигляд, показаний на рисунку 5.4.3.4.

Для виконання цієї програми активізують кнопку (Start)

панелі інструментів Standard. У результаті на екрані дисплея з'являється форма (рисунок 5.4.3.5), в яку вводять, наприклад, значення 10 та 15 та активізують кнопку Розрахунок, після чого в полі Результат виводиться розраховане значення. Далі можна вводити і розраховувати інші значення. Щоб припинити роботу програми,

активізують кнопку Вихід.

Робота з функціями

Функція — це оператор, що виконує певні дії та повертає результат роботи у програму. Функція може мати один або кілька аргументів, які беруться в дужки і відокремлюються комами.

Функція InputBox використовується для збереження вхідних даних. Загальний вигляд функції InputBox такий:

InputBox (аргумент1[, аргумент2,...])

Нехай, наприклад, змінній PI присвоюється значення, введене користувачем, але збільшене в 10 разів:

Р1 = InputBox ("Введіть значення а", а)*10

Після активізації цієї функції на екрані дисплея з'являється діалогове вікно (рисунок 5.4.3.6) із запитом для введення значень, які присвоюються змінній, що є аргументом функції.

Рисунок 5.4.3.4 – Вікно Code

Рисунок 5.4.3.5 - Форма для розрахунку введених значень

Рисунок 5.4.3.6 - Використання функції InputBox

Функція MsgBox виводить у вікні форми введені дані або текстове повідомлення. Загальний вигляд функції MsgBox такий:

MsgBox (Messaged Button][Title]),

де Message — повідомлення на екрані; Button — число, залежно від значення якого змінюється вигляд діалогового вікна (наприклад, 16 — повідомлення про помилку, 64 — інформаційне повідомлення, 3 — кнопки Да, Нет, Отмена); Title — текст у рядку заголовка вікна.

У разі використання тільки першого аргументу функція MsgBox має такий вигляд (рисунок 5.4.3.7):

MsgBox "Інформація неправильна".

Суть математичних функцій Visual Basic розкрито у таблиці 5.4.3.4.

Рисунок 5.4.3.7 - Використання функції MsgBox

Таблиця 5.4.3.4 - Математичні функції Visual Basic

Функція

Дія

Abs(n)

Обчислює абсолютне значення п

Cos(n)

Обчислює косинус кута п, вираженого в радіанах

Exp(n)

Обчислює константу є в степені п

Log(n)

Обчислює логарифм п

Rnd(n)

Генерує випадкове число між 0 та 1

Sgn(n)

Повертає - 1, якщо п < 0; 0, якщо п = 0; 1, якщо п > 0

Sin(n)

Обчислює синус кута п, вираженого в радіанах

Sqr(n)

Обчислює квадратний корінь з п

Str(n)

Перетворює числове значення п на рядкову величину

Tan(n)

Обчислює тангенс кута п, вираженого в радіанах

Val(n)

Перетворює рядкову величину на числове значення

У табл. 5.4.3.5 наведено функції для роботи з рядковими змінними.

Таблиця 5.4.3.5 - Функції для роботи з рядковими змінними

Функція

Дія

Приклад

Ucase

Переводить усі символи рядка у верхній регістр

Ucase ("Ivanenko") — IVANENKO

Lease

Переводить усі символи рядка в нижній регістр

Lease ("Ivanenko") — ivanenko

Len

Визначає довжину рядка

Len ("Ivanenko") — 8

Right

Повертає задане число символів, починаючи від кінця рядка

Right ("Ivanenko", 2) — "ko"

Left

Повертає задане число символів, починаючи від початку рядка

Left ("Ivanenko", 4) — "Ivan"

Mid

Повертає задане число символів, починаючи від указаної позиції

Mid ("Ivanenko", 2, 3) — "van"

String

Повторює вказаний символ установлену кількість разів

String (4, "$") — $$$$

Asc

Повертає ACSII-код для вказаного символу

Asc ("R") — 82

Chr

Повертає символ для вказаного ACSII-коду

Chr (114) —г

Створення стандартного модуля

При створенні складних програм деякі змінні можуть бути використані в інших процедурах програми. Такі змінні називаються загальними, або глобальними.

Модуль окрема функціонально незалежна частина програми, що виконує певну функцію, результати виконання якої можуть бути використані іншими частинами програми або іншими програмами.

Спочатку створюють стандартний модуль проекту за допомогою команд Project, Add Module, в результаті чого на екрані дисплея з'являється вікно (рисунок 5.4.3.8), в якому активізують вкладку New і кнопку Открыть.

Створюється модуль із стандартним іменем Modulel (ім'я можна змінити у властивості Name). Далі оголошують змінні за допомогою оператора

Public <ім'я змінної> [As <тип змінної>]

Рисунок 5.4.3.8 - Створення стандартного модуля

Після введення операторів модуль зберігають за допомогою команд File, Save <ім'я модуля>. Розширення модуля —.Bas.

Крім змінних, у стандартних модулях також можуть міститися процедури типу Function та Sub, які можна використовувати в будь-якій процедурі програми.

Умовні оператори

Умовні оператори застосовуються в програмах для керування виконанням дій залежно від результату перевірки заданої умови. Результатом перевірки умови може бути значення True (істина) або False (хибність). Відповідно ці значення можуть бути збережені в змінних типу Variant або Boolean.

В умовних виразах використовуються такі оператори: таблиця 5.4.3.6

Таблиця 5.4.3.6 - Оператори

Оператор

Значення

<

Менше

>

Більше

<=

Менше або дорівнює

>=

Більше або дорівнює

=

Дорівнює

Не дорівнює

Оператор If для створення умов

Існує простий тип умовного оператора

If <умова> Then <дія>

У такому операторі <дія> виконується лише тоді, коли значенням <умова> є True (істина).

Наприклад, при правильному паролі завантажується форма

If passw="121" Then Load Forml

Оператор може також складатися з кількох рядків, тоді після слова Then відбувається перехід на наступний рядок і кінцевим є оператор End If. Наприклад:

If passw="121" Then

Load Forml

Forml.Show End If

Якщо умова має значення False (хибність), то виконується оператор, розташований після умовного оператора (або блоку операторів).

У випадку, коли дія має виконуватися при значенні умови False, використовують оператор Not.

Наприклад, при будь-якому неправильному паролі на екрані дисплея з'являється повідомлення і програма закінчує свою роботу:

If Not passw="121" Then

MsgBox"Пароль — неправильний"

End If End

Умовний оператор може мати кілька умов для перевірки значень, тоді він є складним умовним оператором і має такий вигляд:

If <умова 1> Then

<дія 1> — виконується, коли значення умови 1 — True; Else

lf <умова 2> Then

<дія 2> — виконується, коли значення умови 2 — True; Else

<дія 3> — виконується, коли значення умови 1 та умови 2 —

False, тобто в усіх інших випадках; End If

У наведеному нижче прикладі залежно від значення змінної Pay виконуються такі дії (змінні Pay та Sum оголошені як Integer):

If Pay < 0 Then

Sum = Sum — Abs(Pay) Elself Pay > 0 Then

Sum = Sum + Pay Else

MsgBox "Сума не змінюється" End If

MsgBox (Sum)

Ключове слово

Дія

And

Якщо обидві умови мають значення True,

то й результат перевірки умов має значення True

Or

Якщо одна з умов має значення True,

то й результат перевірки умов має значення True

В умовних операторах для пов'язування кількох умов використовуються такі ключові слова: таблиця 5.4.3.7.

Таблиця 5.4.3.7 - Ключові слова

Побудова умовних виразів за допомогою операторів Select Case

Більш наочною і зручною є структура Select Case. Ці вирази дають змогу виконувати вибір із кількох фрагментів програми залежно від значення умовного виразу або змінної. Загальний вигляд структури Select Case такий:

Select Case <змінна> Case оначення 1> програмні оператори 1

Case оначення 2> програмні оператори 2

Case Else програмні оператори З

End Select

У такій структурі завжди виконується лише одна група програмних операторів, причому параметри Змінна та Значення повинні мати однаковий тип. Параметр Значення може бути:

  • оператором порівняння, наприклад Case X < 2;

  • числом (змінною) — Case 3;

  • списком значень — Case 2,4,6;

  • діапазоном значень — Case 5 То 10.

Нехай, наприклад, залежно від значення X розраховується Y. Тоді маємо таку структуру Select Case:

Select Case X Case 5 то 10 ' значення X від 5 до 10

Y = X*2

Case Is = 100' значення X дорівнює 100

Y = X/2

Case Is > 500 ' значення X більше 500

Y = XA(l/2)

Case Else ' в інших випадках

Y = X End Select

Оператор Case Else передає керування групі операторів тоді, коли жодна умова у створеній структурі Select Case не може бути виконана.

Додавання інших форм у проект

При створенні складного проекту іноді потрібно утворювати не одну, а кілька форм. Кожна форма при цьому має свої властивості, власне ім'я, набір об'єктів і процедур, а також одна форма може завантажувати іншу.

Для додавання іншої форми використовують команди Project, Add Form. У результаті на екрані дисплея з'являється вікно Add Form (рисунок 5.4.3.9), в якому активізують вкладку New. тип Form і кнопку Открыть.

Рисунок 5.4.3.9 - Додавання іншої форми до створеної

Далі створюють нову форму (або додають існуючу), в яку вводять потрібні об'єкти і встановлюють властивості.

Для завантаження форми при виконанні програми використовують команду

Load <ім'я форми>

Наприклад, Load Forml — завантаження форми Forml.

Для відображення форми на екрані дисплея застосовується команда

<ім'я 0opMM>.Show

Наприклад, Forml.Show.

Приклад. Створення проекту з двох форм із використанням умовних операторів. Нехай, наприклад, треба створити форму (Name — Form2), яка після перевірки введеного пароля та імені користувача завантажує іншу форму для проведення розрахунку. Для цього у формі створюють такі об'єкти й установлюють відповідні властивості:

CommandButton — Commandl (Name), Введіть свій пароль (Caption) — кнопка, після активізації якої в текстовому блоці (Textl) вводиться пароль.

CommandButton — Command2 (Name), Введіть ім'я (Caption) — кнопка, після активізації якої виводиться діалогове вікно для введення імені користувача.

CommandButton — Command3 (Name), Перевірка (Caption) — кнопка, після активізації якої виконується перевірка введених значень пароля та імені.

TextBox — Textl (Name), (Text — порожньо), * (PasswordChar), False (Visible).

Після цього створюють стандартний модуль для оголошення змінних PassW, User (рисунок 5.4.3.10).

Рисунок 5.4.3.10 - Оголошення змінних у стандартному модулі

У вікні Code для форми Form2 створюють такі програмні оператори:

Private Sub Commandl_Click() Textl.Visible = True ' текстове поле для введення пароля стає видимим PassW = Textl.Text' введення користувачем пароля в текстове поле End Sub

Private Sub Command2_Click() Textl.Visible = False' текстове поле для введення пароля стає невидимим User = InputBox ("введіть ім'я")' введення користувачем імені за допомогою функції InputBox End Sub

Private Sub Command3_Click() If PassW = "ABC And User = "grl" Then ' перевірка введених значень MsgBox ("пароль та імена — правильні") Load Forml' завантаження форми розрахунків Forml.Show ' виведення на екран форми розрахунків Else

MsgBox ("Інформація — неправильна") End If End Sub

Оператори Load Form та Forml.Show при правильності введених значень завантажують іншу форму, в якій виконується розрахунок.

Використання циклів

Цикл — програмна структура керування потоком виконання програмних операторів, яка має початок і кінець типу Do While ... Loop, For ... Next. Сукупність операторів, які вміщені між початком і кінцем циклу, виконується доти, доки не буде виконана умова виходу із циклу або завершена певна дія.

Цикли типу For... Next

Такий тип циклів має у своїй конструкції змінну-лічильник, для якої задають її початкове значення, дані для зміни цього значення у процесі виконання циклу, кінцеве значення. Цикл виконується доти, доки поточне значення змінної-лічильника не дорівнюватиме кінцевому; далі буде виконуватися оператор, розташований після опису циклу. При створенні циклу типу For ... Next можна також додавати крок приросту (або зменшення) значення змінної-лічильника, але він не є обов'язковим.

Загальний вигляд операторів циклу такий:

For <змінна = початкове значення> То <кінцеве значення> [Step<число>]

група операторів, що виконуються в циклі Next [змінна]

Наприклад, програма друкування у формі номера рядка і символів * з кроком 3 після активізації командної кнопки має такі оператори:

Private Sub Commandl_Click() CIs

For і = 1 To 15 Step 3 Print і & " .******" If і = 10 Then Exit For Next End Sub

Символ & використовується для з'єднання двох рядкових змінних. У цій програмі також є оператор дострокового виходу з циклу Exit For, який при досягненні змінною-лічильником значення 10 припиняє роботу циклу.

Сама форма після виконання програми має вигляд, показаний на рисунку 5.4.3.11.

При створенні форми змінюються такі властивості у вікні Properties:

Рисунок 5.4.3.11 - Програма виконання циклу типу For... Next

• для форми

Caption — Цикл For... Next Font — розмір шрифту 14;

• для командної кнопки Caption — Виконання

У наведеному прикладі початкове значення змінної-лічильника дорівнює 1, крок приросту — 3, кінцеве значення змінної-лічильника — 15. Після виконання чергового кроку циклу до змінної-лічильника додається значення З, а розраховане значення порівнюється з кінцевим (15). Якщо останнє ще не досягнуто, то друкується черговий рядок, інакше цикл закінчує свою роботу і керування передається оператору, розташованому після оператора Next (у програмі — це команда на закінчення процедури оброблення події активізації кнопки Виконання (рисунок 5.4.3.11).

Цикли типу Do

У циклах такого типу група операторів виконується доти, доки істинною є умова, якою може бути логічний вираз (наприклад, PassW = «121») або функція, що повертає логічне значення (наприклад, EOF). Такі цикли використовуються тоді, коли кількість повторень циклу невідома. Існує два види цього оператора:

Do While <умова> — виконується доти, доки умова є істинною; Do Until <умова> — виконується доти, доки умова є хибною.

Загальний вигляд циклу типу Do такий:

Do While <умова>

група операторів, що виконуються Loop Do

група операторів, що виконуються Loop While <умова>

Різниця між такими циклічними блоками полягає в місці перевірки значення умовного виразу (на початку циклу або в кінці). Відповідно змінюється також розташування змінної (або кількох змінних), значення якої аналізується в умові.

У кожному новому кроці циклу перевіряється умова; тому важливо при створенні програми стежити за тим, щоб у тілі циклу значення змінної в умові циклу могло бути змінено так, аби умова стала хибною, тобто цикл закінчився.

Нехай, наприклад, треба розрахувати значення Y залежно від уведеного значення X. Тоді фрагмент програми матиме такий вигляд:

X = InputBox ("Значення X") DoWhileX>0

У = ХЛ(2/3)

X = InputBox ("Значення X")

Print X; Y Loop

Наступний блок циклічних операторів працює доти, доки не буде виконана умова:

Do Until <умова>

група операторів, що виконуються Loop

Наприклад, розрахунок Y відбувається доти, доки X не перевищує 15:

...Х = 2

Do Until X > 15

Y = Y + X

X = InputBox ("Значення X") Loop

Процедури типів Function і Sub

Функції створюються тоді, коли деякі дії у програмі потрібно виконувати кілька разів. Для створення власної процедури типу Function необхідно використати такі оператори:

Fuction <ім'я функції> ([аргументи функції]) [As <тип>]

оператори функції End Function

Де:

  • ім'я функції — значення, яке повертається у процедуру виклику після виконання процедури;

  • аргументи — імена змінних, значення яких використовуються функцією;

  • тип — тип значень, які повертає функція.

Для активізації цієї процедури треба ввести в програму ім'я процедури з тією кількістю аргументів, які використовувалися при її оголошенні.

Наприклад, процедура Sq розраховує площу ромба при відомих діагоналях dl та d2:

Fuction Sq (dl, 62) As Double

Sq = (dl*d2)/2 End Function

Після створення такої функції у програмі досить лише її активізувати з відомими аргументами. Наприклад: Sq(10, 15).

Процедура типу Sub, на відміну від процедури типу Function, після її виконання повертає значення в аргументах процедури або виконує певні дії (наприклад, друкування інформації).

Для створення такої процедури використовують оператори

Sub -сім'я > ([аргументи]) [As <тип>]

оператори процедури End Sub

Де:

  • ім'я — ім'я процедури, що створюється;

  • аргументи — імена змінних, значення яких використовуються функцією і повертаються у процедуру виклику;

• тип — тип значень, які повертає функція. Процедура, що виконує друкування значень, має вигляд

Sub PR (X,Y) Printer.FontName = "Arial"' установлення шрифту Printer.FontSize = 16 ' установлення розміру шрифту Print X;Y

End Sub

Статичні процедури використовуються для збереження значень змінних процедури Sub у разі її повторного виклику. Для створення таких процедур застосовується оператор

Sub <ім'я процедури> Static <аргументи> [<тип>]

оператори процедури End Sub

Щоб припинити роботу процедури, використовується оператор

Exit Sub

Створення завантажувального файла

Програмний файл може виконуватися поза середовищем Visual Basic, якщо він має розширення Ехе. Для створення такого файла активізують команди File, Make Projectl.exe.

У результаті на екрані дисплея з'являється вікно Make Project (рисунок 5.4.3.12), в якому у полі Имя файла вводять ім'я файла (наприклад, PrMenu) й натискають на кнопку ОК. Після цього для виконання програми досить активізувати створений файл.

Рисунок 5.4.3.12 - Створення завантажувального файла

Робота з об'єктом Timer

На панелі інструментів General є елемент Timer, за допомогою якого у програмі можна виконувати дії через певний проміжок часу, встановлювати обмеження часу для виконання дії тощо.

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

Властивість Interval містить числові значення від 1 до 65 535, які визначають у мілісекундах проміжок часу роботи таймера. Властивість Enabled може мати значення True або False, які відповідно означають активізацію або припинення відліку часу таймером.

Після активізації таймера у програмі виникає процедура оброблення події Timerl_Timer ().

Наприклад, для виведення поточного часу у формі створюють такі об'єкти з відповідними значеннями властивостей:

Label: Font — MS Sans Serif, розмір шрифту — 18, напівжирний курсив;

Caption — (порожньо)

Timer:Interval — 1000

У вікні Code після активізації об'єкта Timer виникає процедура оброблення події Timerl_Timer (), в яку додають оператор присвоєння значення поточного часу об'єкту типу Label:

Labell. Caption = Time

Після активізації кнопки Start панелі інструментів Standard форма має вигляд, показаний на рисунку 5.4.3.13.

Рисунок 5.4.3.13 - Виведення поточного часу за допомогою об'єкта Timer

Створення власного меню

Visual Basic надає можливість створити власне меню з переліком команд, в якому деякі команди можуть містити діалогові вікна для додаткової інформації (тоді така команда закінчується трьома крапками).

Такі меню створюються за допомогою редактора меню Menu Editor, який дає змогу коригувати, вилучати наявні меню, додавати «гарячі» клавіші для виконання команд тощо.

З цією метою спочатку активізують вікно нового проекту (команди File, New Project). Далі клацають мишею

на кнопці Цу (New Project) стандартної панелі інструментів. У результаті на екрані дисплея з'являється вікно, показане на рисунку 5.4.3.14.

Рисунок 5.4.3.14 - Вікно редактора меню

У полі Caption (2) визначають назву меню, а в полі Name (3) — його ім'я, яке буде використовуватись у програмі.

Кнопки (1) мають таке призначення: Next — створення нового пункту меню; Insert — додавання нового пункту в меню; Delete — вилучення попередньо виділеного пункту меню.

Призначення кнопок-стрілок (5) таке:

  • кнопки із стрілками ліворуч, праворуч — для зміни рівня виділеної команди в ієрархії меню;

  • кнопки із стрілками вгору, вниз — для зміни порядку розташування команд або заголовків меню.

Щоб створити «гарячі» клавіші, необхідно у вікні редактора меню у полі Caption додати символ & перед тією літерою в назві команди меню, яку активізують разом із клавішею Alt для виконання цієї команди.

Перемикач Enabled (4) визначає наявність команди меню на екрані (вона може бути неактивною в певний момент роботи програми).

Нехай, наприклад, треба створити програму для вибору варіантів перегляду значень поточної дати. З цією метою у вікні Menu Editor виконують такі дії:

  • визначають ім'я заголовка меню у полі Caption вікна Menu Editor (наприклад, «Вибір»);

  • у полі Name вводять ім'я, яке буде використовуватись у програмі (наприклад, mnuCase);

  • активізують кнопку Next для переходу до створення іншої команди меню;

  • наступна команда є вбудованою командою меню Вибір, тому при її створенні спочатку активізують кнопку із стрілкою праворуч. Після цього вводять такі імена: Caption — дата та час, Name — mnuDateltem. Ці команди відображено на рисунку 5.4.3.15;

  • активізують кнопку Next для створення наступних пунктів меню з такими іменами:

Caption — день, Name — mnuDayltem; Caption — час, Name — mnuTimeltem; Caption — рік, Name — mnuYearltem;

• додають «гарячі» клавіші, вставляючи символ & перед відповідною літерою.

Для виведення значень у формі потрібно створити об'єкт за допомогою кнопки Label панелі інструментів General, для якого у вікні Properties змінюють такі властивості: Alignment (2-Center), Border Style (1-Fixed Single), Caption (порожньо), Font (MS Sans Serif Bold 16 point).

Рисунок 5.4.3.15 - Створення меню команд для наведеного прикладу

Для додавання програмних операторів слід активізувати вікно Code. З цією метою користуються командами View, Code головного меню або у вікні Project клацають правою клавішею миші на формі, активізуючи команду View Code. У результаті на екрані дисплея з'являється вікно, показане на рисунку 5.4.3.16

У цьому вікні, відкриваючи список, вибирають потрібний об'єкт, внаслідок чого на екрані з'являються початковий та кінцевий оператори процедури, між якими вводять оператор, що виконує дію.

Наприклад, після активізації об'єкта mnuDayltem виникає процедура оброблення події з іменем

Private Sub mnuDayltem_Click()

Після вибору пункту меню у форму виводиться номер поточного дня місяця. Це значення присвоюється створеному у формі об'єкту типу Label. Оператор процедури має такий вигляд:

Labell.Caption = Day(Date)

Рисунок 5.4.3.16 - Вибір об'єкта у вікні Code

Для інших пунктів меню у вікні Code активізують відповідний об'єкт і додають оператори.

Після введення всіх значень вікно Code має вигляд, показаний на рисунку 5.4.3.17.

Рисунок 5.4.3.17 - Програма виконання меню

Для збереження створеного проекту активізують команди File, Save Project або кнопку Save Project. У результаті на екрані дисплея з'являється вікно Save File As, в якому вибирають потрібний диск, папку, у полі Имя файла вводять ім'я форми, активізують кнопку Сохранить. На екрані дисплея з'являється вікно Save Project As для введення імені всього проекту (який може складатися з кількох форм), після чого активізують кнопку Сохранить.

Далі перевіряють роботу створеної форми. Для цього активізують кнопку Start панелі інструментів Standard або команди Run, Start чи натискають на клавішу F5.

Після вибору команди Рік форма матиме вигляд, показаний на рисунок 5.4.3.18.

Рисунок 5.4.3.18 - Виконання команди створеного меню

Створення контекстних меню

Контекстні меню, на відміну від звичайних, на екрані дисплея з'являються лише після виконання користувачем певних дій (наприклад, клацання правою клавішею миші). Для створення такого меню також використовують редактор меню Menu Editor. Однак це меню є неявним, тобто елементу меню верхнього рівня присвоюють властивість Visible з параметром False.

Нехай, наприклад, треба створити контекстне меню, що складається з команд копіювання, вставлення, вилучення. Для цього виконують такі дії:

1.У формі активізують діалогове вікно Menu Editor.

2. Створюють команду Edit головного меню (поле Caption) із програмним іменем mnuEdit (поле Name). Параметр Visible роблять неактивним.

З. Далі створюють команди підменю (за допомогою кнопки Next і кнопки із стрілкою праворуч) з такими іменами: таблиця 5.4.3.8.

Таблиця 5.4.3.8 - Імена

Caption

Name

Копіювання

мгшСору

Вставлення

Mnulnsert

Вилучення

MtiuDel

4. У вікні Code у переліку об'єктів вибирають елемент мпиСору, додаючи функцію для демонстрації дії процедури MsgBox «копіювання тексту».

5.У переліку об'єктів вибирають елемент Form. У переліку процедур активізують подію MouseUp, додаючи такі оператори оброблення події натиснення на праву клавішу миші:

If Button = vbRightButton Then Forml.PopupMenu mnuEdit End If

6. Після збереження проекту (за допомогою команд File, Save Project As) активізують створену програму (кнопка Start). Форма завантажується, а після клацання правою клавішею миші у формі з'являється контекстне меню, в якому вибирають команду Копіювання.

Проект у командному вигляді можна переглянути, скориставшись вікном, показаним на рисунок 5.4.3.19.

Рисунок 5.4.3.19 - Створення контекстного меню

Узгодження імен при створенні програм

При створенні програм у Visual Basic рекомендується користуватись такими іменами об'єктів: таблиця 5.4.3.9.

Таблиця 5.4.3.9 – Імена об'єктів

Ім'я

Об'єкт

мпи

Меню

chk

Поле прапорця

cmd

Командна кнопка

dig

Діалогове вікно

dat

Дані

dir

Поле списку каталогу

drv

Поле списку дисків

fil

Поле списку файлів

fra

Фрейм

frm

Форма

hsb

Горизонтальна лінійка прокручування

img

Поле зображення

Поле мітки

1st

Поле списку

ole

Об'єкт OLE

opt

Кнопка вибору

pic

Поле рисунка

txt

Текстове поле

trnr

Таймер

vsb

Вертикальна лінійка прокручування

Створення графічних зображень і робота з ними

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

Елементи керування Line та Shape.

Найпростішим способом додавання графічних зображень є використання елементів керування Line та Shape, розміщених на панелі інструментів General.

За допомогою елемента Line можна створювати прямі лінії у формі та визначати їхні координати. Змінити вигляд лінії можна, змінюючи такі властивості:

  • Border Width — товщина лінії (одиниця товщини — twip —дорівнює 1/20 пункту, або 1/1440 дюйма);

  • BorderStyle — тип лінії (суцільна, кілька типів ліній), причому у випадку, коли товщина лінії (Вог-derWidth) перевищує 1 twip, значення BorderStyle не змінюється;

  • BorderColor — колір лінії;

  • XI, Х2, Yl, Y2 — кординати кінцевих точок лінії (точка 0,0 — верхній лівий куток форми).

Елемент Shape дає змогу створювати такі графічні об'єкти, як прямокутники, квадрати, овали, круги та інші, початковою фігурою для яких є квадрат, а інші можна створити, змінюючи значення властивості елемента Shape, а також установити:

  • FillColor — колір заливання;

  • FillStyle — тип заливання (вертикальні та горизонтальні лінії, діагональний і прямий хрести тощо);

  • BorderColor — колір рамки;

  • BorderWidth — товщина рамки;

  • BackStyle — прозорість графічного об'єкта (значення Transparent).

Елементи керування Image та PictureBox. Ці елементи застосовуються для завантаження наявних файлів із зображеннями. Visual Basic підтримує такі формати графічних файлів, як BMP, DIB, ICO, CUR, WMF, EMF, GIF, JPEG, JPG.

При використанні елемента Image у формі створюється фрейм. Щоб уставити в нього зображення, треба активізувати властивість Picture і вибрати зображення. Властивість Stretch повинна мати значення True для автоматичної зміни розміру зображення при вміщенні у фрейм. При цьому зображення можуть бути викривлені. У програмі для завантаження зображення використовують оператор

Imagel.Picture = LoadPicture (<ім'я файла>)

Наприклад:

Imagel.Picture = LoadPicture ("C:\Vb6sbs\Priklad.BMP")

Елемент PictureBox створює об'єкт, в який, крім зображення, можна також додавати інші графічні об'єкти (наприклад, Line або Shape). Переміщення об'єкта відбувається разом з усіма вміщеними в ньому об'єктами. Початковий розмір зображення об'єкта PictureBox, на відміну від елемента Image, змінювати не можна, але після встановлення значення True у властивість AutoSize розмір зображення буде збігатися з розміром самого елемента.

Переміщення об'єктів

При переміщенні об'єктів за програмою застосовується система координат, що складається з рядків (вісь X) та стовпців (вісь Y). Точка в системі координат визначається перетином рядка і стовпця, а її координата записується у вигляді (х, у). Початок системи координат (0, 0) — у верхньому лівому кутку форми.

Для переміщення об'єктів у формі також використовують команду Move, яка має такий загальний вигляд:

об'єкт.Моуе X,Y,

де X — відстань між лівою межею форми та об'єктом; Y — відстань від верхньої межі форми до об'єкта. Наприклад, оператор

Picturel.Move 1000,1000

установлює об'єкт у точку із заданими координатами.

Властивості об'єкта Top, Left (зверху, ліворуч) визначають відстань від відповідних меж форми і використовуються для виконання відносного переміщення об'єкта. Наприклад, оператор

Picturel.Move Picturel.Left + 25, Picturel.Top - 25 пересуває об'єкт на 25 одиниць від лівого краю та на 25 одиниць до верхнього краю форми.

Приклад. Програма створення ефекту анімації. У цій програмі за допомогою оператора Move та об'єкта Timer відбувається переміщення об'єкта PictureBox після активізації командної кнопки Початок руху.

Для реалізації цього алгоритму у формі треба створити об'єкти з такими значеннями властивостей:

CommandButton (командна кнопкаї)

Caption — Pyx

CommandButton (командна кнопка2)

Caption — Зупинка

PictureBox

Picture — вибір графічного файла Timerl

Enabled — False Interval — 75

У вікні Code для кожного об'єкта додають такі програмні оператори:

Private Sub Comrnandl_Click()

Timerl.Enabled = True End Sub Private Sub Command2_Click()

Timerl.Enabled = False End Sub Private Sub Timerl_Timer()

Picturel.Move Picturel.Left + 25, Picturel.Top End Sub

Програма працює під керуванням таймера. Перша кнопка активізує його дію, починається рух зображення на екрані дисплея; друга кнопка зупиняє таймер, при цьому процедура оброблення дії таймера припиняється (Private Sub Timerl_Timer()).

Екранна форма має вигляд, показаний на рисунку 5.4.3.20.

Рисунок 5.4.3.20 - Створення ефекту анімації

Робота з масивами

Для підвищення продуктивності оброблення певного обсягу даних їх можна об'єднати в окрему групу.

Масив група однотипних елементів, об'єднаних одним іменем і впорядкованих за індексами, які визначають місцероз-ташування елемента в групі.

Перед створенням масив оголошують, при цьому залежно від місця оголошення масив може бути як локальним, так і глобальним. Якщо кількість елементів масиву відома, він є масивом із фіксованими межами. У випадку змінної кількості елементів створюють динамічний масив. Для оголошення масиву використовують оператор

Dim <ім'я масиву> (<число1>[, <число2>]) [As <тип даних>],

де ім'я масиву — ім'я змінної типу «масив»; числої — розмір масиву (кількість рядків); число2 — розмір масиву (кількість стовпців), якщо він двовимірний; тип даних — тип даних масиву, за замовчуванням — тип Variant.

Кожен елемент масиву має свій індекс (місце розташування в масиві), що складається з номера рядка і номера стовпця, причому нумерація починається з 0. Для спрощення роботи з індексами масивів на початку процедури (або в стандартному модулі) використовують оператор Option Base 1, тоді індекс першого елемента змінюється з 0 на 1.

Наприклад, елементи одновимірного масиву А з п'яти елементів мають такі індекси:

А(0) А(1) А2) А(3) А4

Елементи двовимірного масиву, що складається з трьох рядків і чотирьох стовпців, характеризуються такими індексами: таблиця 5.4.3.10.

Таблиця 5.4.3.10 – Індекси

А(0,0)

А(0,1)

А(0,2)

А(0,3)

А(1,0)

А(1,1)

А(1,2)

А(М)

А(2,0)

А(2,1)

А(2,2)

А(2,3)

Під час роботи з масивами використовують оператори циклу For...Next, при цьому лічильник повторень циклів пов'язується з індексами елементів.

Приклад. Робота з масивами. Нехай треба створити двовимірний масив А(2,3), розрахувати максимальне і середнє його значення та суму елементів масиву.

Для виконання такого завдання у формі створюють три командні кнопки з відповідними параметрами:

Commandl — Елементи масиву (Caption), cmdMas (Name);

Command2 — Розрахунок (Caption), cmdRezult (Name);

Command3 — Вихід (Caption), cmdExit (Name).

Далі створюють стандартний модуль (команди Project, Add Module, New, Открыть) і вводять такі оператори:

Option Base 1 'зміна індексів масиву'

Public A(2,3) 'масив доступний у всіх процедурах'

Після цього закривають вікно Code і двічі клацають клавішею миші на кнопці Елементи масиву, завдяки чому відкривається процедура cmdMas_Click, в якій додають такі оператори:

CIs

Mess$ = "введіть значення елементів масиву"

For і = 1 То 2

Forj = ІТоЗ

А(і, j) = lnputBox(Mess$) Next Next

Для створення наступної процедури оброблення події активізації другої кнопки слід двічі клацнути клавішею миші на кнопці Розрахунок або активізувати об'єкт cmdRezult із переліку у вікні Code. Завдяки цьому відкривається процедура cmdRezult_Click(), в якій додають такі оператори:

FontSize = 12 'встановлення розміру шрифту'

Dim S, SR, Max As Long 'оголошення змінних'

Print "Масив А:"

Мах = А(1,1)' присвоєння значення першого елемента змінній Мах

For і = 1 То 2

Forj = 1 То З

S = S + А(і, j) 'розрахунок суми If A(i, j) > Max Then Мах = А(і, j) 'порівняння значень змінної Мах

і значення поточного елемента

Print A(i,j) & ""; 'друкування значення елемента з пробілом Next Print Next

Print "Максимальне значення ="; Max Print "Середнє значення ="; Round(S / 6, 2) Print "Сума всіх елементів ="; S

Для кнопки Вихід у процедуру оброблення події додають оператор, який закінчує роботу програми:

End

Після виконання програми екранна форма має вигляд, показаний на рисунку 5.4.3.21.

Рисунок 5.4.3.21 - Програма виконання розрахунків у масиві

При створенні динамічних масивів кількість елементів масиву заздалегідь не відома і визначається у процесі виконання програми введенням значення або розрахунком. У такому разі при створенні масиву користуються оператором

Public <ім'я масиву>() As <тип даних>

Після визначення розмірів масиву (наприклад, розмір зберігається у змінній Кої) у програму вводять оператор

ReDim <ім'я масиву>(КоІ)

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

Програма має вигляд, показаний на рисунку 5.4.3.22. Екранну форму для роботи з розглядуваним масивом зображено на рисунку 5.4.3.23.

Рис. 5.4.3.22 - Програма роботи з одновимірним масивом

Рис. 5.4.3.23 - Екранна форма для робота з масивом

Контрольні запитання:

  1. Назвіть можливості мови Visual Basic.

  2. Назвіть складові частини вікна Visual Basic.

  3. Що таке об'єкт, властивість, процедура події, програмний оператор, метод, змінна?

  4. Дайте характеристику властивостей об'єктів.

  5. Робота з функціями

  6. Математичні функції Visual Basic.

  7. Назвіть функції для роботи з рядковими змінними?

  8. Що це таке модуль?

  9. Як створити стандартний модуль проекту?

  10. Де застосовуються умовні оператори?

  11. Які оператори використовуються в умовних виразах?

  12. Побудова умовних виразів за допомогою операторів Select Case.

  13. Використання циклів.

  14. Робота з об'єктом Timer.

  15. Як створити власне меню.?

  16. Елементи керування Image та PictureBox.

  17. Робота з масивами

  18. Що таке масив?