
- •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. Результат обчислення площі круга.
- •Що нового ми дізналися?
Робота з модулями класів
Інший тип модулів, що заслуговує на нашу увагу, - модулі класів, або просто класи. Класи є фундаментальними "будівельними блоками" в так званому об'єктно-орієнтованому програмуванні (ТОП). Одні і ті ж об'єкти використовуються на всіх стадіях розробки проекту. Детальніша інформація про ТОП приведена в уроці 15.
Класи дозволяють виділити частину функціональних можливостей програми в один об'єкт, що полегшує проектування і розробку програм. При оптимізації окремих об'єктів знижується вірогідність небажаного впливу на інші фрагменти програми. У ТОП об'єкти в першу чергу служать для моделювання реальних ситуацій.
Visual Basic дозволяє вставляти класи в проект або компілювати їх, перетворюючи на елементи ActiveX - бібліотеки динамічного компонування (DLL) або нестандартні елементи, які раніше називалися OCX. Елемент ActiveX можна використовувати в програмі або впровадити в документ World Wide Web (зазвичай звані документами HTML). Приклад з уроку 10, "Діалогові вікна", показує, як створити клас нестандартного діалогового вікна і відкомпілювати його в ActiveX DLL. У уроці 17, "Використання ActiveX", приведена конкретніша інформація по ActiveX. Як ви переконаєтеся, класи лежать в основі багатьох нових можливостей Visual Basic. А доки ми розглянемо модулі класів і їх роль у ваших проектах, не вдаючись до теоретичних тонкощів ТОП.
Клас містить властивості і методи, які виконують деякі взаємозв'язані операції. Клас є самостійним фрагментом програми. Це означає, що клас можна перенести з одного проекту в іншій, і він буде правильно працювати без всяких модифікацій. Об'єкти Visual Basic створюються на основі класів. Наприклад, об'єкт-кнопка насправді створюється на основі спеціального класу. Кнопка працюватиме в будь-якому застосуванні, при цьому її не доводиться змінювати. Проектовані вами класи повинні поводитися так же.
Класи, як і стандартні модулі, зберігаються в окремих файлах, проте вони обов'язково включають дві процедури - Class_Initialize() і Class_Terminate():
Процедура Class_Initialize() задає значення властивостей за умовчанням або виконує інші підготовчі дії. Наприклад, створений вами клас на початку роботи може виводити діалогове вікно з повідомленням або переглядати системний реєстр у пошуках деякого параметра.
Процедура Class_Terminate() містить код для виконання завершуючих дій. Можливо, ваш клас створює тимчасові файли на жорсткому диску -в кінці роботи їх слід видалити. Для подібних дій і призначена процедура Class_Terminate.
Методи
Методи класів виконують майже ті ж завдання, що і процедури модулів. Ім'я методу може мати модифікатор Private або Public залежно від його зони видимості. Відкриті (Public) методи утворюють програмний інтерфейс класу, і програми можуть працювати з ними без всяких обмежень. Закриті (Private) методи використовуються класами для виконання внутрішніх операцій, недоступних за межами класу.
Прикладом закритого методу може послужити метод для витягання інформації з бази даних персоналу. Доступ до таких даних має бути обмежений, тому вони витягаються закритим методом. Потім ви можете написати відкритий метод, усередині якого викликатиметься закритий. Наступний приклад - клас, що імітує роботу банкомату:
Private Function GetBalance(AccountNo As String) As Double
GetBalance = 10000000
End Function
Public Function DisplayAccountInfo(AccountNo As String, PIN As _
String) As Double
If AccountNo = "123456" And PIN = "5551289" Then
DisplayAccountlnfo = GetBalance(AccointNo)
End If
End Sub
Функція GetBalance оголошена закритій, оскільки стороннім абсолютно немає чого знати про стан чужих рахунків. Тільки уявіть собі, як багато друзів у вас з'явиться, коли усі дізнаються про ваш рахунок в 10 мільйонів доларів! Щоб обмежити доступ до інформації, користувач повинен пройти через процедуру DisplayAccountlnfo. У цій процедурі перед отриманням інформації про стан рахунку перевіряються номер рахунку і особистий ідентифікатор (PIN).