Модуль 1_VBasic
.pdfThis document is created with trial version of Document2PDF Pilot 2.16.100.
7.2 Робота з формами. Поняття методу
Програма, розроблена засобами Visual Basic, може містити декілька форм. Щоб додати до проекту нову форму, потрібно виконати команду меню Project - Add Form. При завантаженні форми з нею відбувається подія Load. Таким чином можна створити пов’язану з формою процедуру, яка буде виконуватись при завантаженні форми. Для роботи з формами й іншими об'єктами можуть використовуватися методи.
Метод визначає деяку дію, що може бути виконана з об'єктом, але на відміну від процедури вона нерозривно пов'язана з об'єктом, якому він належить. Методи адекватні створеними раніше процедурам, що можуть бути виконані стосовно деяких об'єктів. Наприклад, застосування методу Cls стосовно форми призводить до очищення форми. Об'єднання імені об'єкта і через точку імені методу дає ім'я існуючої процедури, що виконує визначені дії з об'єктом. Кожний об'єкт у середовищі Visual Basic володіє не тільки набором властивостей, але супутнім набором стандартних процедур, які називаються методами. Для форм можуть бути застосовані методи Show - показати форму, Hide - сховати форму (прибрати з екрана).
Якщо в програмі є декілька форм і змінні, які створюються чи редагуються в одній формі, використовуються в інших формах, то такі змінні слід оголошувати як глобальні. Для цього до проекту слід додати модуль командою меню Project – Add Module, у вікні модуля оголосити змінні після зарезервованого слова Global. Приклади оголошення глобальних змінних:
Global Х
Global Zap As String
Приклад програми
Щоб розглянути на прикладі використання елементів управління в формах, слід створити програму, у ході виконання якої можна розрахувати ціну та пож ивність порції морозива на основі визначених вхідних даних. Основним компонентом порції може бути морозиво одног о з трьох видів, у кількості від 75 до 250 гр.
Вид морозива |
Ціна за 100 |
гр. |
Калорійність, ккал. на 100 гр. продукту |
Пломбір |
0,90 грн. |
|
100 |
Вершкове |
1 грн. |
|
110 |
Молочне |
0,80 грн. |
|
90 |
Порція морозива може також вміщувати: |
Додаток |
Ціна |
Калорійність, ккал. |
Джем полуничний |
0,30 грн. |
50 |
Джем вишневий |
0,25 грн. |
47 |
Джем помаранчевий |
0,40 грн. |
48 |
Збиті вершки |
0,70 грн. |
80 |
Шоколад |
0,50 грн. |
120 |
Горіхи |
0,90 грн. |
130 |
Причому, якщо можна обрати лише один з видів джемів, інші інгредієнти можна включати у порцію за смаком.
This document is created with trial version of Document2PDF Pilot 2.16.100.
Програма повинна включати 3 форми. Перша основна форма з’являється при запуску програми, дозволяє перейти до розрахунку, вивести інформацію про автора програми, завершити роботу (рис.7.1. а). Форма з відомостями про автора (рис.7.1. б) з’являєтьс я після натиснення кнопки Відомості про автора. Після знайомства з інформаційним вікном натисненням кнопки Ок можна повернутись до головного вікна програми. Третє вікно використовується для введення даних, виконання розрахунку (рис.7.1. в).
а)
б)
в)
Рисунок 7.1 - Вікна програми – приклада використання декількох форм, різних елементів управління
При розв’язанні задачі використовуються такі змінні: V – вага морозива в порції;
C – ціна порції;
K – калорійність.
Блок-схема розв’язання задачі подана на рис.7.2.
This document is created with trial version of Document2PDF Pilot 2.16.100.
Початок
Введення початкових даних: вид морозива, вага
Обрано пломбір? |
так |
|
ні |
|
|
|
|
|
|
C=V*0.9/100 |
|
|
|
|
K=V |
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
так |
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
||||
Обрано вершкове? |
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|||
ні |
|
|
|
|
|
|
C=V |
K=V*110/100 |
|
|||||
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
так |
|
|
|
|
|
|
|
||||||
Обрано молочне? |
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
||
ні |
|
|
|
|
|
|
C=V*0.8/100 |
K=V*90/100 |
|
|||||
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
так |
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|||||
Обрано полу- |
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|||
нич.джем? |
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|||
ні |
|
|
|
|
|
|
C=C+0.3 |
|
K=K+50 |
|
||||
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
так |
|
|
|
|
|
|
|
|||||
Обрано вишневий |
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|||
джем? |
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
C=C+0.25 |
|
K=K+47 |
|
|
||||||
ні |
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
так |
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
||||||
Обрано пома-ранчевий |
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|||
джем? |
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|||
ні |
|
|
|
|
|
|
C=C+0.4 |
|
K=K+48 |
|
||||
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
так
Додати
збиті
C=C+0.7 K=K+80
ні
так
Додати
шоколад?
C=C+0.5 K=K+120
ні
так
Додати
горіхи?
C=C+0.9 K=K+130
ні
Рисунок 7.2 - Блок-схема розв’язання задачі
Друкуван-ня |
Кінець |
C, K |
This document is created with trial version of Document2PDF Pilot 2.16.100.
На етапі візуальної розробки програми слід створити головну форму frmMain у відповідності з описом, наданим у таблиці.
Об'єкт |
|
Властивість |
|
Значення |
Форма (Form) |
|
Name |
frmMain |
|
|
|
|
|
|
|
|
Caption |
Програма - приклад |
|
|
|
BackColor |
білий |
|
Командна кнопка |
|
Name |
cmdR |
|
(Command Button) |
|
Caption |
Початок розрахунку |
|
Командна кнопка |
|
Name |
cmdA |
|
(Command Button) |
|
Caption |
Відомості про автора |
|
Командна кнопка |
|
Name |
cmdZ |
|
(Command Button) |
|
Caption |
Завершення роботи |
|
Етикетка (Label) |
|
Name |
lbl1 |
|
|
|
Caption |
Працює програма, |
|
|
|
BackColor |
білий |
|
|
|
Font |
14 пунктів, напівжирний курсив |
|
Етикетка (Label) |
|
Name |
lbl2 |
|
|
|
Caption |
яка дозволяє розрахувати ціну та калорійність |
|
|
|
|
однієї порції морозива |
|
|
|
BackColor |
білий |
|
|
|
Font |
12 пунктів, напівжирний |
|
Далі необхідно додати до проекту ще одну |
форму командою меню |
|||
Project – Add |
Form, створити форму інформаційного повідомлення у |
|||
відповідності з таблицею. |
|
|
||
Об'єкт |
|
Властивість |
|
Значення |
Форма (Form) |
|
Name |
frmА |
|
|
|
|
|
|
|
|
Caption |
Програма - приклад |
|
|
|
BackColor |
білий |
|
Командна кнопка |
|
Name |
cmdОк |
|
(Command Button) |
|
Caption |
Ок |
|
Етикетка (Label) |
|
Name |
lbl1 |
|
|
|
Caption |
Автором програми є студент групи ОБ 05 А |
|
|
|
|
Коваль Ф.(записати свою групу ТКДП) |
|
|
|
BackColor |
білий |
|
|
|
Font |
14 пунктів, напівжирний |
|
Етикетка (Label) |
|
Name |
lbl2 |
|
|
|
Caption |
тел.: (0622) 304 – 13 - 70 |
|
|
|
BackColor |
білий |
|
|
|
Font |
12 пунктів, напівжирний |
Додати ще одну форму, помісти на неї елементи управління та визначити властивості об’єктів як у таблиці.
Об'єкт |
Властивість |
Значення |
1 |
2 |
3 |
Форма (Form) |
Name |
frmR |
|
Caption |
Програма - приклад |
|
BackColor |
білий |
Командна кнопка |
Name |
cmdRoz |
(Command Button) |
Caption |
Розрахунок |
Командна кнопка |
Name |
cmdExit |
(Command Button) |
Caption |
Вихід |
Етикетка (Label) |
Name |
lblV |
|
BackColor |
білий |
|
Font |
12 пунктів, напівжирний |
This document is created with trial version of Document2PDF Pilot 2.16.100.
1 |
2 |
3 |
|
AutoSize |
True |
Етикетка (Label) |
Name |
lblR |
|
Caption |
“ëû” (порожній рядок) |
|
BackColor |
білий |
|
Font |
12 пунктів, напівжирний |
|
Alignment |
2 - Center |
Горизонтальна смуга |
Name |
hsbV |
прокручування (HscrollBar) |
Min |
75 |
|
Max |
250 |
|
SmallChange |
25 |
Група (Frame) |
Name |
fraOK |
|
Caption |
Основний компонент |
|
BackColor |
білий |
|
Font |
12 пунктів, напівжирний |
Перемикач (OptionButton) |
Name |
optO1 |
|
Caption |
Пломбір |
|
BackColor |
білий |
|
Font |
12 пунктів, напівжирний |
|
Value |
True |
Перемикач (OptionButton) |
Name |
optO2 |
|
Caption |
Вершкове |
|
BackColor |
білий |
|
Font |
12 пунктів, напівжирний |
Перемикач (OptionButton) |
Name |
optO3 |
|
Caption |
Молочне |
|
BackColor |
білий |
|
Font |
12 пунктів, напівжирний |
Група (Frame) |
Name |
fraD |
|
Caption |
Джем |
|
BackColor |
білий |
|
Font |
12 пунктів, напівжирний |
Перемикач (OptionButton) |
Name |
optD1 |
|
Caption |
полуничний |
|
BackColor |
білий |
|
Font |
12 пунктів, напівжирний |
|
Value |
True |
Перемикач (OptionButton) |
Name |
optD2 |
|
Caption |
вишневий |
|
BackColor |
білий |
|
Font |
12 пунктів, напівжирний |
Перемикач (OptionButton) |
Name |
optD3 |
|
Caption |
помаранчевий |
|
BackColor |
білий |
|
Font |
12 пунктів, напівжирний |
Перемикач (OptionButton) |
Name |
optD4 |
|
Caption |
немає |
|
BackColor |
білий |
|
Font |
12 пунктів, напівжирний |
Прапорець (CheckBox) |
Name |
chk1 |
|
Caption |
збиті вершки |
|
BackColor |
білий |
|
Font |
12 пунктів, напівжирний |
Прапорець (CheckBox) |
Name |
chk2 |
|
Caption |
шоколад |
|
BackColor |
білий |
|
Font |
12 пунктів, напівжирний |
Прапорець (CheckBox) |
Name |
chk3 |
|
Caption |
горіхи |
|
BackColor |
білий |
|
Font |
12 пунктів, напівжирний |
This document is created with trial version of Document2PDF Pilot 2.16.100.
Активізувати головну форму frmMain, створити такий код програми:
Дані в рядку коду |
|
Коментар |
Private Sub cmdA_Click() |
Заголовок процедури, яка виконується після клацання кнопкою |
|
|
миші на кнопці Відомості про автора. |
|
frmMain.Hide |
|
До головної форми програми frmMain |
|
|
застосовується метод Hide – форма зникає з |
|
|
екрану. |
frmA.Show |
|
До інформаційної форми frmA |
|
|
застосовується метод Show – форма |
End Sub |
|
з’являється на екрані. |
Кінець процедури. |
||
Private Sub cmdR_Click() |
Заголовок процедури, яка виконується при клацанні кнопкою |
|
|
миші на кнопці Початок розрахунку. |
|
frmMain.Hide |
|
До головної форми програми frmMain |
|
|
застосовується метод Hide – форма зникає з |
frmR.Show |
|
екрану. |
|
До форми для визначення даних і |
|
|
|
виконання розрахунку ціни і поживності |
|
|
порції морозива frmR застосовується метод |
End Sub |
|
Show – форма з’являється на екрані. |
Кінець процедури. |
||
Private Sub cmdZ_Click() |
При клацанні на кнопці Завершення роботи |
|
End |
програма закінчує роботу. |
|
End Sub |
Кінець процедури. |
|
Для інформаційної форми потрібно створити код, як у таблиці. |
||
Дані в рядку коду |
|
Коментар |
Private Sub cmdOk_Click() |
Заголовок процедури, яка виконується при клацанні кнопкою |
|
|
миші на кнопці Ок у інформаційному вікні. |
|
frmA. Hide |
|
До інформаційної форми frmA |
|
|
застосовується метод Hide – форма зникає з |
|
|
екрану. |
frmMain.Show |
|
До головної форми програми frmMain |
|
|
застосовується метод Show – форма |
End Sub |
|
з’являється на екрані. |
Кінець процедури. |
||
З формою для розрахунків слід пов’язати такий програмний код: |
||
Дані в рядку коду |
|
Коментар |
Dim V, c, k |
|
Оголошення змінних V, c, k |
Private Sub frmR_Load() |
|
Заголовок процедури, яка вик онується у зв’язку з подією |
|
|
Load – завантаженням форми frmR |
hsbV.Value = 75 |
|
Властивості Value горизонтальної лінійки прокручування |
|
|
hsbV привласнюється значення 75 – мінімальна вага |
|
|
порції морозива. |
V = 75 |
|
Змінній V привласнюється значення 75. |
lblV.Caption = "Вага морозива в |
Властивості Caption етикетки lblV для виведення |
|
порції - " + Str(V) + " гр." |
|
повідомленні про обрану вагу морозива в порції |
|
привласнюється відповідне значення – “Вага морозива в |
|
End Sub |
|
порції 75 гр.”. |
|
Кінець процедури. |
This document is created with trial version of Document2PDF Pilot 2.16.100.
|
1 |
2 |
|
Private Sub hsbV_Change() |
Заголовок процедури, яка виконується якщо бігунок |
||
|
|
змінив місце розташування на смузі прокручування – |
|
|
|
відбулась подія Change. |
|
V = hsbV.Value |
|
Змінній V привласнюється значення властивості Value |
|
|
|
смуги прокручування, яке відповідає поточному місцю |
|
|
|
розташування бігунка. |
|
lblV.Caption = |
"Вага морозива в |
Властивості Caption етикетки lblV для виведення |
|
порції - " + Str(V) + " гр." |
повідомленні про обрану вагу морозива в порції |
||
привласнюється відповідне значення – “Вага морозива в |
|||
End Sub |
|
порції V гр.”. |
|
|
Кінець процедури. |
|
|
Private Sub hsbV_Scroll() |
Заголовок процедури, яка виконується під час |
||
|
|
переміщення бігунка по смузі прокручування – |
|
|
|
відбувається подія Scroll. |
|
hsbV_Change |
|
Виконується процедура hsbV_Change, пов’язана зі |
|
End Sub |
|
зміною положення на смузі. |
|
|
Кінець процедури. |
|
|
Private Sub cmdExit_Click() |
Заголовок процедури, пов’язаної з кнопкою Вихід. |
||
frmR.Hide |
|
До форми frmR застосовується метод |
|
|
|
Hide – форма зникає з екрану. |
|
frmMain.Show |
|
До головної форми frmMain |
|
|
|
застосовується метод Show – форма |
|
End Sub |
|
з’являється на екрані. |
|
|
Кінець процедури. |
|
|
Private Sub cmdRoz_Click() |
Заголовок процедури, пов’язаної з кнопкою Розрахунок. |
||
If optO1.Value = True Then |
Якщо властивість Value перемикача optO1 (пломбір) має |
||
c = V * 0.9 / 100 |
|
значення True (перемикач у стані включено), то |
|
|
обчислюється ціна за морозиво за формулою |
||
|
|
V * 0.9 / 100 |
|
k = V |
|
обчислюється калорійність за формулою V |
|
Else |
|
інакше |
|
If optO2.Value = True Then |
якщо властивість Value перемикача optO2 (вершкове) має |
||
c = V / 100 |
|
значення True (перемикач у стані включено), то |
|
|
обчислюється ціна за морозиво за формулою |
||
k = V * 110 / 100 |
V / 100 |
|
|
обчислюється калорійність за формулою |
|
||
Else |
|
V * 110 / 100 |
True |
|
інакше, коли можливим є тільки значення |
||
|
|
властивості Value перемикача optO3 (молочне) |
|
c = V * 0.8 / 100 |
|
ціна морозива обчислюється як V * 0.8 / 100 |
|
k = V * 90 / 100 |
|
калорійність обчислюється за формулою |
|
|
|
k = V * 90 / 100 |
|
End If |
|
Кінець внутрішнього оператору If |
|
End If |
|
Кінець першого оператору If |
|
If optD1.Value = True Then |
Якщо властивість Value перемикача optD1 (полуничний) у |
||
|
|
групі fraD має значення True (перемикач у стані |
|
c = c + 0.3 |
|
включено), то |
|
|
до ціни порції додається 0,3 грн. |
|
|
k = k + 50 |
|
до калорійності додається 50 ккал. |
|
Else |
|
інакше |
|
If optD2.Value = True Then |
якщо властивість Value перемикача optD2 (вишневий) має |
||
c = c + 0.25 |
|
значення True, то |
|
|
до ціни порції додається 0,25 грн. |
|
|
k = k + 47 |
Else |
до калорійності додається 47 ккал. |
інакше |
This document is created with trial version of Document2PDF Pilot 2.16.100.
1 |
|
2 |
If optD3.Value = True Then |
|
якщо властивість Value перемикача optD3 (помаранчевий) |
c = c + 0.4 |
|
має значення True, то |
|
до ціни порції додається 0,4 грн. |
|
k = k + 48 |
|
до калорійності додається 48 ккал. |
End If |
|
кінець If |
End If |
|
кінець If |
End If |
|
кінець If |
If chk1.Value = 1 Then |
|
Якщо властивість Value прапорця chk1 (збиті вершки) |
c = c + 0.7 |
|
має значення 1 (перемикач у стані включено, True), то |
|
до ціни додається 0,7 грн. |
|
k = k + 80 |
|
до калорійності додається 80 ккал. |
End If |
|
кінець If |
If chk2.Value = 1 Then |
|
Якщо властивість Value прапорця chk2 (шоколад) має |
c = c + 0.5 |
|
значення 1 (перемикач у стані включено), то |
|
до ціни додається 0,5 грн. |
|
k = k + 120 |
|
до калорійності додається 120 ккал. |
End If |
|
кінець If |
If chk3.Value = 1 Then |
|
Якщо властивість Value прапорця chk3 (горіхи) має |
c = c + 0.9 |
|
значення 1 (перемикач у стані включено), то |
|
до ціни додається 0,9 грн. |
|
k = k + 130 |
|
до калорійності додається 130 ккал. |
End If |
|
кінець If |
lblR.Caption = "Ціна порції |
- " + |
Властивості Caption етикетки lblR привласнюється |
Str(c) + " грн. (калорійність |
- " + |
нове значення – результат конкатенації (об’єднання) |
Str(k) + " ккал.)" |
|
текстових рядків "Ціна порції - ", Str(c), " грн. |
|
(калорійність - ", Str(k) і " ккал.)" |
|
End Sub |
|
Кінець процедури. |
8. Завдання для лабораторної роботи № 5 на тему "Використання елементів управління в програмах. Робота з формами. Поняття методу”.
Розробити програму за індивідуальним варіантом. При розробці програми слід створити форми, програмний код, перевірити дію програми. Далі необхідно зберегти програму на магнітному диску, надр укувати форми та код програми. Звіт про роботу повинен вміщувати:
-блок-схему алгоритмічного процесу розв’язання задачі;
-роздруковані форми програми;
-роздрукований код програми.
Варіант №1
This document is created with trial version of Document2PDF Pilot 2.16.100.
Створити програму, під час виконання якої користувач може:
−ввести закупівельну ціну товару;
−обрати товарну групу;
−визначити продається товар зі знижкою в 3% чи ні;
−розрахувати ціну продажу товару.
Для товарів групи одягу ціна збільшується на 10%, взуття – на 20 %, інші товари – 15%.
Варіант №2
Створити програму, під час виконання якої користувач може:
−визначити оклад співробітника підприємства за допомогою смуги прокручування;
−ввести данні про кількість робочих днів у місяці;
−ввести данні про кількість робочих днів, що відпрацьовані даним співробітником у поточному місяці;
−розрахувати суму до виплати співробітникові.
При розрахунку слід: визначити суму нарахованої
заробітної плати пропорційно окладу, кількості відпрацьованих днів, зворотно пропорційно кількості робочих днів у місяці;
відрахувати суму прибуткового податку, який обчислюється за ставкою 13% від суми нарахованої заробітної плати;
зменшити суму, яка видається співробітникові, на суму відрахувань у пенсійний фонд: якщо заробітна плата складає менше ніж 150 грн., то сума відрахувань складає 1% від нарахованої заробітної плати, більше 150 грн. – 2%;
зменшити суму до виплати на суму відрахувань у фонд зайнятості – 0,05% від суми нарахованої заробітної плати.
This document is created with trial version of Document2PDF Pilot 2.16.100.
Варіант №3
Створити програму, під час виконання якої користувач може:
−ввести суму первинного вкладу, кількість періодів (років) зберігання грошей на рахунку в банку;
−обрати за допомогою списку, що розчиняється, один з трьох видів вкладу: звичайний – 5% річних, ветеранський – 10 % річних, терміновий – 8% річних ;
−після натискання на кнопці Розрахунок визначити суму грошей на рахунку в банку після визначеного терміну зберігання.
Варіант №4
Створити програму, під час виконання якої користувач може:
−визначити за допомогою смуги прокручування фонд заробітної плати підприємства (число у діапазоні від 1
до 30000);
−обрати один з видів нарахувань на фонд заробітної плати – пенсійний фонд (32% від фонду заробітної плати), фонд соціального страхування (4% від фонду заробітної плати) або фонд страхування на випадок безробіття (1,5% від фонду заробітної плати);
−розрахувати значення обраного показника.