
- •5.05150104 "Дизайн друкованої продукції"
- •Робота з модулями і класами
- •Модулі і класи
- •Створення програмної бібліотеки
- •Створення модулів
- •Мал. 4.1. Діалогове вікно Add Procedure.
- •Прискорений спосіб додавання процедур
- •Процедури
- •Функції
- •Мал. 4.2. Вікно програми з функцією для обчислення кубічного кореня.
- •Мал. 4.3. Код виклику функції CubeRoot.
- •Мал. 4.4. Функція повертає кубічний корінь 3.
- •Мал. 4.5. Змінене вікно програми і форма.
- •Мал. 4.6. Новий варіант додатка. Тестування у вікні відпадки
- •Оновлення програмної бібліотеки
- •Передача параметрів
- •Мал. 4.7. Вікно додатка-прикладу.
- •Мал. 4.8. Зміна властивості Caption в програмі.
- •Ключове слово Optional
- •Ключове слово ByRef
- •Ключове слово ByVal
- •Ключове слово ParamArray
- •Ключові слова Public і Private
- •Закриті процедури (Private)
- •Мал. 4.9. Сім форм у вікні проекту.
- •Відкриті процедури (Public)
- •Робота з модулями класів
- •Властивості
- •Створення класу SmartForm
- •Використання Class Builder
- •Мал. 4.10. Утиліта Class Builder.
- •Мал. 4.12. Діалогове вікно Property Builder.
- •Мал. 4.13. Діалогове вікно Event Builder.
- •Мал. 4.14. Клас Person з властивостями, подіями і методами.
- •Що нового ми дізналися?
- •5. Створення і використання меню і панелей інструментів
- •Для чого потрібні меню і панелі інструментів
- •Мал. 5.1. Меню і панелі інструментів Visual Basic.
- •Об'єкт меню
- •Мал. 5.2. Редактор меню.
- •Властивості меню
- •Методи меню
- •Створення меню в редакторові меню
- •Мал. 5.3 Створення меню в редакторові меню.
- •Мал. 5.4. Працююче меню.
- •Проектування меню
- •Створення панелей інструментів
- •Мал. 5.5. Завдання властивості Style. Створення кнопок на панелі інструментів
- •Мал. 5.6. Форма із панеллю інструментів. Створення малюнків на кнопках
- •Мал. 5.7. Вставка растрових зображень в список зображень.
- •Мал. 5.8. Зв'язування панелі інструментів із списком зображень.
- •Мал. 5.9. Панель інструментів зі значками.
- •Використання вдосконаленої панелі
- •Мал. 5.11. Вкладка General в сторінках властивостей вдосконаленої панелі.
- •5.12. Вкладка Bands в сторінках властивостей вдосконаленої панелі.
- •Мал. 5.14. Вдосконалена панель у дії.
- •Що нового ми дізналися?
- •Урок 6. Логіка і послідовність виконання програми
- •Як "думає" комп'ютер?
- •Логічні оператори
- •Логічний оператор and
- •Логічний оператор eqv
- •Логічний оператор or
- •Логічний оператор xor
- •Логічний оператор not
- •Порівняння
- •Перевірка умови "рівно"
- •Мал. 6.1. Гра із вгадуванням числа
- •Перевірка умови "більше"
- •Мал. 6.2. Назване число більше за загадане.
- •Перевірка умови "менше"
- •Мал. 6.3. Назване число менше за загадане. Перевірка умови "не рівно"
- •Перевірка умови "більше або рівно"
- •Мал. 6.5. Перевищення граничної швидкості. Перевірка умови "менше або рівно"
- •Ухвалення рішень в програмі
- •Оператор If..Then..Else
- •Функція iIf
- •Оператор Select Case..End Select
- •Виконання дій, що повторюються
- •Цикл For..Next
- •Цикл Do..Loop
- •Цикл While..Wend
- •Перебір колекцій
- •Приклад використання циклів
- •Мал. 6.7. Створення команди меню.
- •Мал. 6.8. Створення масиву елементів.
- •Мал. 6.9. Форма з масивом текстових полів.
- •Мал. 6.10. Приклад роботи з циклами. Що нового ми дізналися?
- •Урок 7. Змінні
- •Перше знайомство із змінними
- •Що таке пам'ять?
- •Типи змінних
- •Байтові змінні
- •Строкові змінні
- •Puc. 7.3. Діалогове вікно Options.
- •Мал. 7.4. Вікно програми для прикладу.
- •Мал. 7.5. Вікно додатка-прикладу.
- •Універсальні змінні
- •Зона видимості змінних
- •Мал. 7.6. Зона видимості змінних.
- •Мал. 7.7. Форма для реєстрації користувачів.
- •Ключове слово Static
- •Мал. 7.8. Використання циклу For..Next.
- •Динамічні масиви
- •Константи
- •Мал. 7.10. Результат обчислення площі круга.
- •Що нового ми дізналися?
Функція iIf
Замість блоку If..Then..Else можна скористатися конструкцією безпосереднього If, або IIf. Єдина відмінність полягає в тому, що IIf обчислює обидва вирази які повертаються. Розглянемо наступний фрагмент:
Function TasteIt (Food As String) As String
CheckIt = IIf(Food = "Гамбургер". "Ні, спасибі", "Смачно"!)
End Function
Значення другого і третього параметрів, "Немає, спасибі" і "Смачно"!, будуть вичислені незалежно від того, яке з них буде повернено функцією IIf.
Функція TasteIt() надзвичайно проста. Вона перевіряє, чи має змінна Food значення "Гамбургер", і якщо має - повертає рядок "Немає, спасибі". Інакше повертається рядок "Смачно"!
Як значення, функції, що повертається IIf, можуть вказуватися як константи, так і обчислювані вирази.
Оператор Select Case..End Select
Для ухвалення складніших рішень (особливо за наявності декількох умов) можна скористатися блоком Select Case..End Select. Його синтаксис простий:
Select Case x
Case Is =3
' Виконати деякі дії
Case Is > 17
‘ Виконати інші дії
Case Else.
‘ Дії для випадку, коли не виконано
‘ жодна з попередніх умов
End Select
Для кожного оператора Select Case в програмі має бути відповідний оператор End Select. Кількість секцій Case між Select Case і End Select може бути будь-ким.
Для кожної умови, що перевіряється, створюється окрема секція Case. Якщо ви хочете окремо обробити ситуацію, коли не виконується жодна з умов, створіть секцію Case Else. Вона багато в чому схожа на секцію Else оператора If..Then.
У операторові Select Case можна перевіряти строкові літерали, змінні і діапазони значень. Наприклад, наступний фрагмент перевіряє, що число належить інтервалу від 1 до 10:
Select Case guess
Case 1 to 10
Припущення вірне
Case Else
Припущення невірне
End Select
Секція Саsе 1 to 10 виконується для змінної guess, яка належить інтервалу від 1 до 10. Секція Case Else обробляє інші ситуації.
Оператор Select Case..End Select застосовується і для рядків. Наприклад, у вашій програмі може бути присутній наступний фрагмент:
Select Case x
Case Is = "3"
Виконати деякі дії
Case Is > "17"
Виконати інші дії
Case Else
Дії для випадку, коли не виконано
жодна з попередніх умов
End Select
Програмний код, що виконується при виконанні умови, знаходиться у відповідній секції Case. Секція Case може містити декілька команд (див. приклад з вгадуванням чисел). Зверніть увагу: для завершення секції Case не використовується оператор End. Стає зрозуміло, чому так важливо структурувати програмний код за допомогою символів табуляції і пропусків - це дозволяє візуально згрупувати взаємозв'язаний код. Такий підхід не лише спрощує читання програми, але і знижує вірогідність помилок.
При перевірці строкових значень слід пам'ятати про те, що користувач може вводити дані у верхньому, нижньому або змішаному регістрах. Отже, ваша програма повинна обробляти можливі ситуації. Для цього необхідно вирішити два завдання. По-перше, ви повинні видалити з рядка усі ведучі і завершуючі пропуски. Іноді користувач випадково вводить пропуски до або після даних. Щоб видалити їх, слід передати рядок функції Trim$(). По-друге, текст необхідно перетворити до одного регістра, верхнього або нижньому. Для цього можна скористатися функцією UCase$() або LCase$(,). Можливі варіанти виглядають так:
If Trim$(UCase$(txtInput.Text)) = "АДМІНІСТРАТОР" Then
‘ Виконати деякі дії
End If
If Trim$(LCase$(txtInput.Text)) = "адміністратор" Then
‘ Виконати деякі дії
End If
Обидва оператори If..Then призводять до одного результату. Зверніть увагу: рядок в правій частині умови повинен знаходитися в тому ж регістрі, до якого перетвориться вираження в лівій частині.