ЗМІСТ:
Створення програми починається з розробки інтерфейсу. Елементи інтерфейсу (або елементи керування) розміщуються на формі. Для цього використовується панель елементів керування, конструктор форм та спеціальні інструменти середовища Visual Basic для вирівнювання розмірів і положення елементів управління. Щоб розмістити будь-який елемент управління на форму, треба клацнути по кнопці з потрібною піктограмою на панелі елементів управління, перемістити курсор миші в вікно конструктора форми і, утримуючи ліву кнопку миші, розтягнути прямокутник, в якій буде вписаний обраний елемент управління.
Призначення
Цей елемент керування використовується для того, щоб почати, перервати, чи закінчити який-небудь процес. Кнопка зустрічається у всіх додатках Windows.
Події
Головною подією для кнопки є Сlісk. Крім цієї події у кнопки можуть бути і інші, але вони застосовуються рідко.
Для виклику події Click є різні способи: найпростіший – безпосереднє клацання на кнопці мишею. Ця ж подія викликається також, якщо за допомогою клавіші Таb перемістити фокус на кнопку, а потім натиснути клавішу Enter. Можна програмно викликати подію Click, установивши значення властивості Value рівним True, що доступне тільки під час виконання.
Властивості:
(Name) – ім'я кнопки. Ім'я складають відповідно до правила імен і зазвичай починають з приставки cmd, наприклад cmdStart.
BackColor – колір фону.
Font – налаштування шрифту, яким виводиться напис на кнопці.
ForeColor – колір шрифту.
Text – напис на кнопці.
TextAlign – вирівнювання тексту на кнопці. Можливі дев'ять різних варіантів вирівнювання: текст розташовується в лівому верхньому кутку, вгорі по центру, в правому верхньому куті, в середині кнопки зліва, в центрі кнопки, в середині кнопки праворуч, в лівому нижньому кутку, внизу по центру, в правому нижньому кутку.
Є дві цікавих властивості кнопки, зв'язаних з подією Click. Властивість Default визначає, що дана кнопка є активною за замовчуванням. Якщо ця властивість дорівнює Тrue, то натисканням клавіші Enter автоматично генерується подія Сlісk цієї кнопки, незалежно від того, який елемент має фокус. Привласнювати значення True цій властивості можна тільки для однієї кнопки у формі. Варто враховувати, що в цьому випадку натискання клавіші Enter перехоплюється і передається цій кнопці. Звичайно кнопкою за замовчуванням є кнопка Оk.
Властивість Cancel використовується подібно до Default. Вона забезпечує перехоплення клавіші Esc і виклик події Click для відповідної кнопки. Звичайно цю властивість мають кнопки Cancel (Відміна).
Для того щоб зв'язати програмний код з кнопкою, досить двічі клацнути лівою кнопкою миші по кнопці. Після цього відкриється вікно редактора програмного коду, в якому автоматично буде створена процедура обробки події натискання на кнопку (click). Курсор знаходиться між словами Private Sub і End Sub (рис. ). Саме там потрібно писати програмний код, пов'язаний з даною кнопкою.
Рис.1 Вікно редактора програмного коду із заготовленою процедурою обробки подій
Label (Напис) – це елемент керування, що застосовується для відображення тексту, недоступного для безпосереднього редагування користувачем: заголовків, підписів інших елементів керування тощо.
Призначення
Напис (Label) призначено для відображення тексту, який користувач не може змінити з клавіатури.
Події
Хоча деякі події цього елемента керування можна відображати, однак ця можливість не використовується.
Властивості:
Найважливішою властивістю напису є Caption, що відображає введений текст. Скориставшись властивістю BorderStyle, можна встановити спосіб відображення тексту з рамкою або без неї. Оформлювати текст можна, використовуючи всі можливості форматування тексту, які доступні у вікні властивостей (від виду і розміру шрифту до кольору символів).
Якщо текст довший за поле напису, то частина тексту, яка виходить за поле, не відображається. Щоб цього не сталося, необхідно присвоїти значення True властивості AutoSize. Це приведе розмір напису у відповідність з довжиною тексту. Таким же чином можна коригувати розмір напису по вертикалі. Для цього необхідно встановити властивість WordWrap. Слова, які не вміщуватимуться у рядок, автоматично будуть переноситись у наступний рядок.
Для створення об‘єкту Напис потрібно виконати такі дії:
1) вибрати компонент Label лівою кнопкою миші на панелі компонентів;
2) навести вказівник миші на форму і перетягуванням створити об‘єкт Напис.
Розташування об‘єкта на формі змінюють, перетягуючи його мишею, а розміри об‘єкта можна змінити за допомогою маркерів. Напис містить текст, який можна прочитати під час роботи програми.
Приклад.
Властивостям елементу керування Label1 надані значення:
властивості Captіon (Заголовок) надано значення «Hello, World!»;
для властивості Alіgnment (Вирівнювання) вибрано значення 2-Center.
напис виділено рамкою: для властивості BorderStyle (Тип межі) вибрано 1 – Fixed Single.
параметри шрифту змінено на Arial, 16, жирний.
для виклику вікна Шрифт потрібно активізувати рядок властивості Font;
для властивості BackColor (Колір фону) на вкладці Palette вибрано блакитний колір (FFFF00&).
Призначення
Текстове поле (TextBox) є основним елементом керування, який призначений для введення даних.
Події
При використанні текстового поля викликає цікавість декілька подій. Насамперед, подія Change, яка викликається при зміні змісту текстового поля. Ця подія відбувається кожен раз при введенні, знищенні або зміні символу. Наприклад, при введенні в текстове поле слова "так" подія Change відбувається три рази – по одному разу для кожної літери.
Для аналізу введеного в поле тексту найкраще всього підходить подія LostFocus. Ця подія викликається після того, як текстове поле зробиться неактивним (після передачі фокуса іншому елементу, коли користувач закінчить введення). Однак, якщо це поле є єдиним елементом керування в формі, то воно не може втратити фокус.
Для того, щоб видалити або ініціалізувати зміст текстового вікна, використовується подія GotFocus. Вона викликається тоді, коли користувач "входить" в текстове вікно.
Властивості:
(Name) – ім'я текстового поля. Ім'я дають відповідно до правила імен і зазвичай починають з приставки txt, наприклад txtResult.
BackColor – задає колір фону. Завдання значення відбувається за допомогою стандартного вікна вибору кольору.
BorderStyle – визначає тип рамки, якої обведений елемент управління. Можливі три варіанти: рамка відсутня (None), одинарна рамка (FixedSingle), тривимірна рамка (Fixed3D).
Font – налаштування шрифту, яким виводиться інформація.
ForeColor – колір шрифту.
Text – основна властивість текстового поля, що визначає текст, який ввів користувач, або текст, який буде відображатися на формі.
TextAlign – вирівнювання тексту в текстовому полі. Можливі варіанти вирівнювання: по лівому краю (Left), по правому краю (Right), по центру (Center).
MultiLine – визначає формат виведення тексту в текстове поле. Якщо властивість має значення True, то текст виводиться в кілька рядків (багаторядковий режим). Якщо властивість має значення False, то текст виводиться в один рядок (однорядковий режим).
Lines – це властивість використовується тільки в багаторядковому режимі та являє собою масив рядків. Кожен рядок зберігається окремо. Нумерація рядків починається з нуля.
Призначення
Прапорці – це елементи керування, які можна відмічати, вибираючи з ряду опцій одну або декілька. CheckBox може мати два різних стани – відмічений і не відмічений. Власне, він може мати і третій стан. В цьому випадку елемент керування відображається як відмічений, але недоступний. Встановити такий стан елементу керування можна тільки програмно.
Подія
Найважливішою для прапорця, як і для кнопки, є подія Click.
Властивості
Єдиною важливою властивістю елемента керування CheckBox є його значення (Value). В залежності від того прапорець відмічений або ні. Value може приймати наступні значення:
0 – не відмічений,
1 – відмічений,
2 – відмічений але не доступний.
Призначення
Цей елемент керування призначено для встановлення тільки однієї опції із групи. Зазвичай всі перемикачі форми об'єднані в одну групу. Якщо потрібно сформувати нову групу перемикачів, то потрібно помістити їх в окремий елемент-контейнер, наприклад Frame.
Події
Для перемикачів важлива тільки одна подія – Сlick.
Властивості
Важливішою властивістю перемикачів є Value. З її допомогою можна встановити стан перемикача. Ця властивість може приймати значення True або False.
Призначення
Список ListBox дозволяє користувачу вибирати зі списку один або декілька елементів. У будь-який час в список можна додавати нові елементи або видаляти існуючі. Якщо не всі елементи можуть відображатися у полі списку, то в ньому автоматично відображається смуга прокрутки.
Події
Основна подія списку – Click. Ця подія викликається, якщо користувач за допомогою мишки або клавіш керування вибере елемент зі списку.
Методи
Вікно списку – це перший з елементів керування, для якого важливу роль грають методи. Методи списку необхідні для обробки елементів списку – додавання або видалення. Для додавання нових елементів використовується метод AddItem:
ListBox.AddItem Елемент [, Індекс]
Для видалення елемента зі списку використовується метод RemoveItem, якому як параметр передається індекс елементу, який видаляється. Індексація елементів починається з нуля (0):
ListBox.RemoveItem – індекс елемента
Для видалення усіх елементів використовується метод Clear:
ListBox.Clear
Властивості
Використання властивості списку Text – найпростіша можливість отримати текст вибраного елемента списку. В будь-який момент часу значення цієї властивості містить текст вибраного елемента списку або пустий рядок, якщо жоден елемент не обраний.
Властивість Sorted визначає спосіб розташування елементів у списку. Якщо встановити цю властивість, то всі елементи у списку будуть відсортовані по алфавіту, навіть якщо вони були добавлені з зазначенням індексу. Індекс останнього добавленого елементу містить властивість NewIndex.
Ця властивість пов'язана з іншою цікавою властивістю – ItemData(), за допомогою якої кожному елементу списку можна поставити у відповідність число типу Long. Використовуючи цю властивість, можливо скласти, наприклад, список співробітників, зберігши їх індивідуальні номери у властивості ItemData.
Призначення
Поле зі списком або ComboBox – це комбінований список, який являє собою комбінацію двох елементів керування – самого списку зі значеннями і поля введення тексту (текстового поля). Поля зі списком використовуються у тому випадку, якщо попередньо не можна визначити значення, яке потрібно включити до списку, або список містить багато елементів. У такому списку потрібне значення можна не тільки вибирати, але і безпосередньо вводити в поле введення. Нове значення після введення автоматично поміщається у список.
Події
Для поля зі списком важливу роль відіграють події як поля введення, так і списку. Основні з них – Click, яка використовується для вибору елемента списку, та Сhange – зміна запису в полі введення тексту.
Властивості
Поле зі списком має майже всі властивості текстового поля TextBox і списку ListBox (виключенням є властивість MultiLine). Існує властивість Style, яка визначає зовнішній вигляд і функціонування поля зі списком.
Призначення
Елемент управляння ScrollBar – це смуги прокрутки вікна. Смуга прокрутки як елемент керування не виконує автоматично будь-яких дій, її поведінку необхідно програмувати. Існують горизонтальна і вертикальна смуги прокрутки.
Події
Мають місце дві цікаві події: Change, яка виникає після зміни позиції бігунка або після програмної зміни значення властивості Value, та Scroll, яка відбувається під час прокрутки (коли користувач схопив і переміщує бігунець).
Властивості
Перед використанням смуг прокрутки необхідно встановити для них діапазон, який показує кількість кроків прокрутки між крайніми позиціями бігунка.
Призначення
За допомогою таймера можна запускати або завершувати процеси додатків в визначені моменти часу. Таймер може бути корисним і у випадку коли додаток виконується в фоновому режимі. Під час проектування таймер відображається в формі, але під час виконання програми він є невидимим.
Події
Таймер має єдину подію – Timer, яка викликається по закінченню встановленого часового інтервалу.
Властивості
Для установки інтервалу часу існує властивість Interval (в мілісекундах). Якщо встановлена властивість Timer незалежно від того, який додаток активний, вона спрацьовує через певний час. Для відключення таймеру необхідно присвоїти властивості Interval значення 0 або властивості Enabled значення False.
Призначення
Елемент керування DriveListBox призначений для відображення і роботи з дисками, каталогами та файлами. DriveListBox відображає списки всіх доступних дисків і пристроїв системи та забезпечує можливість їх вибору.
Події
Подією для елемента DriveListBox є Change. Ця подія викликається при зміні носія даних.
Властивості.
Елемент DriveListBox найчастіше використовує властивість Drive, яка повертає обраний диск або пристрій (наприклад, "С:\").
Призначення
DirectoryListBox (DireListBox) – цей елемент керування призначений для вибору файлів. Він відображає структуру обраного диску і дозволяє здійснити вибір і зміну каталогу.
Події
Change – викликається в результаті подвійного клацання мишкою на імені каталогу у вікні перегляду.
Властивості
Головною властивістю є Path, яка повертає повний шлях до обраного каталогу (наприклад, C:\Windows\System).
Призначення
FileListBox відображає файли поточного каталогу, звідки їх можна обирати.
Події
Основною подією є Click, яка викликається при виборі користувачем імені файлу в списку. Подія PathChange виникає після зміни шляху (властивість Path), а подія PatternChange виникає після зміни маски вибору файлів (властивість Pattern).
Властивості
Цей елемент має багато спільних властивостей з елементом ListBox. Однак основною його властивістю є властивість FileName, яка містить ім'я обраного файлу.
Призначення
Рамка (Frame) – це один з елементів-контейнерів. Його призначення – об’єднувати в групу декілька елементів керування. Об'єкти, які об'єднані за допомогою рамки, можна як єдине ціле переміщувати, активізувати та деактивізувати, робити видимими або невидимими.
Події
Події Рамки зазвичай не обробляються, хоча при необхідності це можна зробити.
Призначення
Призначений для виведення рисунків та інших графічних об'єктів. Цей елемент керування також є елементом-контейнером, тому його можна використовувати для об'єднання інших елементів.
Події
Події PictureBox зазвичай не обробляються, хоча при необхідності можна зробити.
Властивості
Положення PictureBox у формі задається властивістю Align, яка визначає чи буде PictureBox у одного з країв форми чи збереже положення, задане розробником проекту. Якщо елемент керування закріплюється у одного з країв форми, то його розмір (ширина або висота) завжди встановлюється у відповідності з розміром форми.
Властивість AutoSize визначає, чи будуть автоматично змінюватись розміри елемента керування для відображення рисунків будь-якого розміру.
Сама важлива властивість PictureBox – Picture, яка містить відображений графічний об'єкт. Це може бути растрове зображення (*.ВМР), піктограма (*.ІСО), мета файл (*.WМF) або розширений мета файл (*.ЕМF), а також GIF та JPEG-файл.
При виконанні додатків для зміни властивостей використовується функція LoadPicture:
Picture1.Picture = LoadPicture("С: \Windows \AuTos.Вмр")
Зберегти зображення можна за допомогою функції SavePicture:
SavePicture Picture1.Picture,”Build.BMP”
Призначення
Елемент керування Image також створений для виведення рисунків. На відміну від PictureBox, він не являється елементом-контейнером, тобто не дозволяє малювати та не допускає групування об'єктів. Однак Image використовує менше ресурсів і перерисовує швидше, ніж PictureBox. Тому для відображення малюнків в русі Image може бути кращим варіантом.
Події
Події Image зазвичай не аналізуються.
Властивості
Головна властивість – Picture. За її допомогою можна відобразити малюнок на стадії програмування або при виконанні програми. Властивість Stretch визначає, як відображується рисунок. Якщо значення властивості Stretch =True, то розміри малюнка змінюються до розмірів елементу керування Image, в протилежному випадку елемент керування змінюється до розмірів малюнка.
Призначення
Елемент керування Shape використовується для відображення геометричних фігур на формі.
Події
Події Shape зазвичай не аналізуються.
Властивості
Форма Shape задається властивістю Shape і може бути наступною:
0 – RectangIe (прямокутник);
1 – Square (квадрат);
2 – Oval (еліпс);
3 – Circle (коло);
4 – Rounded Rectangle (прямокутник із закругленими кутами);
5 – Rounded Square (квадрат із закругленими кутами).
Для елемента керування Shape, як і для Line, можна встановити тип лінії рамки, її товщину та колір.
Призначення
Елемент управління Line – це лінія, що має за замовчуванням товщину 1.
Події
Події Line зазвичай не аналізуються.
Властивості
Щоб змінити вигляд лінії використовується властивість BorderStyle об'єкта Line. Воно може набувати таких значень:
0 – Transparent (прозора лінія);
1 – Solid (суцільна лінія);
2 – Dash (штриховая лінія)
3 – Dot (пунктирна лінія);
4 – Dash-Dot (штрихпунктирна лінія);
5 – Dash-Dot-Dot (штрихпунктир з подвійним штрихом);
6 – Inside Solid (безперервна лінія).
Товщину Line можна змінити за допомогою властивості Borderwidth. Колір змінюється властивістю BorderColor.
З’єднання з існуючою базою даних.
Додавання до додатку функцій інших програмних засобів.
Кожен елемент керування при додаванні на форму отримує унікальне ім‘я (властивість Name). Vіsual Basіc автоматично надає властивості Name значення, яке містить назву типу елемента керування з порядковим номером в кінці. Наприклад, для першого елемента Label значення властивості Name дорівнює Label1, для другого – Label2 і т. д. Ім‘я використовується для позначення елемента керування в програмному коді і може бути змінене тільки у вікні Propertіes на етапі розробки.
Програмісти змінюють ім‘я так, щоб воно вказувало на призначення елемента. При цьому часто використовують префікси, які позначають належність об‘єкта до певного типу.
Якщо елемент керування має змістовне ім’я, то легко визначити його роль у програмі. Таким чином, ім‘я складається з префікса, який ідентифікує тип об‘єкта, і зручної назви, що описує призначення об‘єкта в програмі:
Ім’я елемента = Префікс + Опис призначення
Загальноприйняті префікси для імен основних елементів керування подано у таблиці 1.
Таблиця 1. Загальноприйняті префікси
Для написів застосовують префікс lbl. Наприклад, якщо напис містить коментар, то замість імені Label1 краще взяти lblComment.
Крім виконання різноманітних задач, об’єкти програми можуть реагувати на деякі дії користувача або інші зовнішні дії. Ці дії враховуються за допомогою подій.
Подія відбувається, коли користувач робить з елементом управління певні маніпуляції, наприклад, клацає на кнопці команди або змінює вміст текстового поля. Подія відбувається і тоді, коли користувач залишає форму або переходить до використання іншої програми. Програміст не може відмінити настання події, але він має можливість обрати, як програма відреагує на настання цієї події. Для опрацювання подій пишеться відповідний код.
Завжди, коли з програмою щось “відбувається”, генерується настання деякої події. Кожний об’єкт генерує свої події. Тільки форма може генерувати подію UnLoad і пропонувати на нього відповідь. Але деякі події – наприклад, подія Click – є загальною відразу для багатьох типів елементів управління. Коли користувач клацає на формі, програма може відповідати на це зміною кольору форми. Коли ж здійснюється клацання на кнопці команди в цій формі, то подія Click для цієї кнопки може бути запрограмована так, щоб закрити форму і завершити виконання програми. Обидва об’єкти мають подію того самого типу. Проте подія Click форми відрізняється від події Click кнопки команди.
Далі наведені деякі з головних дій користувача, що генерують виклик подій у програмі.
запуск програми;
натискання клавіші на клавіатурі;
натискання кнопкою миші;
переміщення миші;
перетягування об’єкта;
вихід із програми.
Таблиця 2. Деякі події, що викликаються користувачем
Незважаючи на певну схожість у подіях, між ними є певні відмінності. Наприклад, подія Click генерується лише при натисканні лівої кнопки миші. Натискування інших кнопок цієї події не створює. Події MouseDoun та MouseUp не лише можуть викликатись натискуванням будь-якої кнопки миші, але і можуть повідомити, яка саме кнопка при цьому натискувалась, щоб програміст міг передбачити відповідні дії.
Операційна система автоматично розпізнає події. Коли подія настає, операційна система намагається повідомити про це програмі, що виконується. Програма повинна інтерпретувати повідомлення системи і виконати відповідні дії. Повідомлення, які надсилаються операційною системою в наслідок настання подій, одержуються та опрацьовуються елементами управління та формами, з яких створений інтерфейс користувача. При цьому зовсім не обов’язково передбачити опрацювання абсолютно всіх подій – деякі з них можуть бути проігноровані.
Програма, створена мовою VB, може опрацьовувати два основних типи подій: події, що ініційовані користувачем, і події, викликані операційною системою. Перший тип подій зустрічається частіше. Такі події дають можливість користувачеві управляти роботою програми. З іншого боку, програміст, використовуючи події, може обмежити певні дії користувача в небажаному напрямку, наприклад, заблокувавши деякі кнопки, щоб відмінити подачу некоректних команд.
Подія, що ініціюється користувачем, виникає в результаті його дій з інтерфейсом програми. Перш за все, це натискування клавіш клавіатури і клацання кнопками маніпулятора миша. Однак кожна така дія може викликати появу не однієї, а декількох подій. Наприклад, клацання маніпулятором в текстовому полі генерує подію Click. Але при цьому також генеруються події GotFocus , яка відповідає переміщенню покажчика на даний об’єкт (він одержує фокус), і LostFocus, яка відповідає події втрати фокуса для об’єкта, з якого відбулось переміщення покажчика. Отже, будь-яка з дій користувача з інтерфейсною частиною програми може викликати цілий набір подій і порядок виклику може виявитися важливим.
Опрацювання подій здійснюється за допомогою процедур опрацювання подій.
Як тільки форма завантажиться в пам’ять, перед тим, як вона з’явиться на екрані, викликається подія Load. Стандартна процедура Form_Load дозволяє задати виконання певних дій з проектом до того, як з нею почне роботу користувач. Такими діями може бути програмування властивостей елементів управління форми, виконання певних дій присвоєння змінним деяких значень, тощо. Фактично, вона задає певне налагодження програми при завантаженні форми. Наявність такої процедури є досить зручним. Тому що надає користувачеві можливість управління процесом налагодження програми безпосередньо при її виконання.
Питання для перевірки:
Якими засобами потрібно користуватись, щоб у середовищі Visual Basic відображалися потрібні компоненти?
Яке призначення має панель елементів керування?
Що таке фокус?
Яке призначення має вікно властивостей? Які основні елементи керування ви знаєте?
Що таке інтерпретатор та компілятор? Для чого вони призначені?
Які дії виконуються у вікні коду?
Що означає, що проекти Visual Basic будуються по модульному принципу? Як це впливає на збереження проекту?
Яке призначення мають елементи керування та якими властивостями вони володіють?