О.О.П / 3_кол / Лабораторні роботи / методичка
.pdfAB
|
|
|
F |
|
|
|
D |
|
|
Y |
P |
B |
Y |
|
|
|
|
||
|
|
|
|
w |
Click |
||
|
|||
|
|
w |
|
|
|
|
w. |
|
|
|
A |
r |
ansf |
|
|
||
T |
|
|
|||
|
|
|
or |
|
|
|
|
|
m |
||
|
|
|
|
|
e |
|
|
|
buy |
|
r |
|
|
|
0 |
||
|
|
|
|
2 |
|
|
|
to |
|
. |
|
here |
|
|
|
||
|
o |
m |
|||
|
|
|
|||
|
|
|
.c |
|
|
BBYY |
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
F Tran |
sf |
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
D |
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
Y |
P |
|
|
|
|
|
|
or |
e |
|
|
|
|
|
|
|
|
|
B |
Y |
|
|
|
|
|
|
|
|
|
m |
|
|
|
|
|
|
|
|
B |
|
|
|
|
|
|
|
|
buy |
r |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
|||
|
|
|
|
|
|
|
A |
|
|
|
|
|
|
|
|
|
to |
|
|
. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
here |
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
компоненту |
і |
його |
властивостей, зокрема |
до |
|
|
|
|
|
Click |
|
|
|
|
|
|
|
|
|
|
тексту, який |
|
|
|
|
|
o |
||||||||||||
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
|
m |
|
|
|
|
|
|
|
|
|
w |
|
w. |
|
. |
|
|||||||
|
|
знаходиться в полі редагування |
|
|
|
|
|
|
|
A |
B |
|
BYY |
c |
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
Text |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
Текст, який знаходиться в полі введення/редагування |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
Left |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
Відстань від лівої межі компоненту до лівої межі форми |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
межі |
||||||||||||
Тор |
|
Відстань |
від верхньої межі компоненту |
до |
верхньої |
|
|
|||||||||||||
|
форми |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Height |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Висоту поля |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
Width |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ширіну поля |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
Font |
|
Шрифт, |
використовуваний для відображення |
тексту, що |
|
|
|
|
|
|
|
|||||||||
|
вводиться |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Parentfont |
|
Ознака |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
На мал. 2.8 приведений вид форми після додавання два полів редагування. Одін з компонентів вибраний(виділений), оточений вісьма маленькими квадратиками.
Властивості вибраного компоненту відображаються у вікніObject Inspector. Щоб побачити і, якщо треба, змінити властивості іншого компоненту, треба цей компонент вибрати, клацнувши лівою кнопкою миші на зображенні компоненту, або вибрати ім'я
компоненту в списку, що розкривається, який знаходиться у верхній частині вікна Object
Inspector (мал. 2.9). Компонент, властивості якого треба побачити або змінити, можна
вибрати і у вікні Object Treeview (мал. 2.10).
Мал. 2.8. Форма з двома компонентами
Значення деяких властивостей компоненту, що визначають, наприклад, розмір і положення компоненту на поверхні форми, можна змінити за допомогою миші.
11
AB
|
|
|
|
|
F Tran |
sf |
|
|||
|
|
|
|
D |
|
|
|
|||
|
|
Y |
P |
|
|
|
|
or |
e |
|
B |
Y |
|
|
|
|
|
|
|
m |
|
|
|
|
|
|
|
buy |
r |
|||
|
|
|
|
|
|
|
2 |
|||
|
|
|
|
|
|
|
|
0 |
||
|
|
|
|
|
|
|
to |
|
|
. |
|
|
|
|
|
|
here |
|
|
|
|
|
|
|
|
Click |
|
|
|
|
||
w |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|
||||
|
|
w |
w. |
|
|
|
|
o |
||
|
|
|
|
|
|
|
. |
|
||
|
|
|
|
|
A BBYY |
c |
|
|||
|
|
|
|
|
|
|
AB
|
|
|
|
|
F Tran |
sf |
|
|||
|
|
|
|
D |
|
|
|
|||
|
|
Y |
P |
|
|
|
|
or |
e |
|
B |
Y |
|
|
|
|
|
|
|
m |
|
|
|
|
|
|
|
buy |
r |
|||
|
|
|
|
|
|
|
2 |
|||
|
|
|
|
|
|
|
|
0 |
||
|
|
|
|
|
|
|
to |
|
|
. |
|
|
|
|
|
|
here |
|
|
|
|
|
|
|
|
Click |
|
|
|
|
||
w |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|
||||
|
|
w |
w. |
|
|
|
|
o |
||
|
|
|
|
|
|
|
. |
|
||
|
|
|
|
|
A B BYY |
c |
|
|||
|
|
|
|
|
|
|
Мал. 2.9. Вибір компоненту у вікні Object Inspector
Мал. 2.10. Вибір компоненту у вікні Object Treeview
Для того, щоб змінити положення компоненту, необхідно встановити курсор миші
на його зображення, натиснути ліву кнопку миші, утримуючиі її натиснутою,
перемістити контур компоненту в потрібну точку форми, а потім відпустити кнопку миші.
Під час переміщення компоненту(мал. 2.11) відображаються поточні значення координат лівого верхнього кута компоненту (значення властивостей Left і тор).
12
AB
|
|
|
|
|
F Tran |
sf |
|
|||
|
|
|
|
D |
|
|
|
|||
|
|
Y |
P |
|
|
|
|
or |
e |
|
B |
Y |
|
|
|
|
|
|
|
m |
|
|
|
|
|
|
|
buy |
r |
|||
|
|
|
|
|
|
|
2 |
|||
|
|
|
|
|
|
|
|
0 |
||
|
|
|
|
|
|
|
to |
|
|
. |
|
|
|
|
|
|
here |
|
|
|
|
|
|
|
|
Click |
|
|
|
|
||
w |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|
||||
|
|
w |
w. |
|
|
|
|
o |
||
|
|
|
|
|
|
|
. |
|
||
|
|
|
|
|
A BBYY |
c |
|
|||
|
|
|
|
|
|
|
AB
|
|
|
|
|
F Tran |
sf |
|
|||
|
|
|
|
D |
|
|
|
|||
|
|
Y |
P |
|
|
|
|
or |
e |
|
B |
Y |
|
|
|
|
|
|
|
m |
|
|
|
|
|
|
|
buy |
r |
|||
|
|
|
|
|
|
|
2 |
|||
|
|
|
|
|
|
|
|
0 |
||
|
|
|
|
|
|
|
to |
|
|
. |
|
|
|
|
|
|
here |
|
|
|
|
|
|
|
|
Click |
|
|
|
|
||
w |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|
||||
|
|
w |
w. |
|
|
|
|
o |
||
|
|
|
|
|
|
|
. |
|
||
|
|
|
|
|
A B BYY |
c |
|
|||
|
|
|
|
|
|
|
Мал. 2.11. Відображення значень властивостейLeft і Тор при зміні положення компоненту
Для того, щоб змінити розмір компоненту, необхідно його виділити, встановити
покажчик миші на один з маркерів, що позначають межу компоненту, натиснути ліву кнопку миші ,і утримуючи її натиснутою, змінити положення межі компоненту. Потім відпустити кнопку миші. Під час зміни розміру компоненту відображаються його поточні розміри: висота і ширина (значення властивостейHeight і width) (мал. 2.12).
Мал. 2.12. Відображення значень властивостей Height і Width при зміні розміру компоненту
У таблиці. 2.4 приведені значення властивостей компонентівEdit1 і Edit2 застосування, що розробляється (значення решти властивостей залишені без зміни і
тому в таблиці не приведені). Компонент Edit1 призначений для введення величини
напруги Edita — для введення величини опору. Звернете увагу, значенням властивості
Text обох компонентів є порожній рядок. В результаті форма застосування, що розробляється, повинна виглядати так, як показано на мал. 2.13.
Таблиця 2.4. Значення властивостей компонентів Edit1 і Edit2
|
|
|
|
|
|
|
|
Властивість |
|
Компонент |
|
|
|
|
|
|
|
|
|
|
|
|
Edit1 |
|
Edit2 |
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
Text |
|
|
|
|
|
|
|
|
|
|
||
|
Тор |
|
48 |
|
72 |
|
|
|
|
|
|
||
|
Left |
|
144 |
|
144 |
|
|
|
|
|
|
|
|
13
AB
|
|
|
F |
|
|
|
D |
|
|
Y |
P |
B |
Y |
|
|
|
|
||
|
|
|
|
w |
Click |
||
|
|||
|
|
w |
|
|
|
|
w. |
|
|
|
A |
r |
ansf |
|
||
T |
|
|||
|
|
|
or |
|
|
|
|
m |
|
|
|
|
|
e |
|
|
|
buy |
r |
|
|
|
0 |
|
|
|
|
|
2 |
|
|
to |
|
. |
here |
|
|
||
|
o |
m |
||
|
|
|
||
|
|
|
.c |
|
BBYY |
|
Width
65 |
|
65 |
AB
|
|
|
F |
|
|
|
D |
|
|
Y |
P |
B |
Y |
|
|
|
|
||
|
|
|
|
w |
Click |
||
|
|||
|
|
w |
|
|
|
|
w. |
|
|
|
A |
|
r |
|
|
|
T ansf |
|
|||
|
|
|
or |
|
|
|
|
m |
|
|
|
|
|
e |
|
|
|
buy |
r |
|
|
|
0 |
|
|
|
|
|
2 |
|
|
to |
|
. |
here |
|
|
||
|
|
|
||
|
|
|
|
m |
|
|
|
o |
|
|
|
|
.c |
|
B |
|
|
|
|
BYY |
|
Мал. 2.13. Форма після налаштування компонентів Edit |
|
|||||
Окрім |
полів |
редагування |
у |
вікні |
програми знаходиться |
—тексторотка |
інформація про програму і призначення полів введення. |
|
|||||
Для |
виведення |
тексту на |
поверхню |
форми використовують |
поля виведення |
|
тексту. Поле виведення тексту— |
це |
компонент Label. Значок компоненту Label |
знаходиться на вкладці Standard (мал. 2.14). Додається компонент Label у форму точно так, як і поле редагування. Основні властивості компонентуLabel перераховані в
таблиці. 2.5.
Мал. 2.14. Компонент Label — поле виведення тексту
Таблиця 2.5. Властивості компоненту Label
|
|
|
|
|
|
|
|
Властивість |
|
Визначає (задає) |
|
|
|
|
|
|
|
|
|
|
|
Name |
|
Ім'я компоненту. Використовується в програмі для доступу до |
|
|
|
|
|
властивостей компоненту |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Caption |
|
Текст, що відображається |
|
|
|
|
|
|
|
|
|
|
|
Font |
|
Шрифт, використовуваний для відображення тексту |
|
|
|
|
|
|
|
|
|
|
|
Parentfont |
|
Ознака спадкоємства шрифту батьківського компоненту |
|
|
|
|
|
|
|
|
|
|
|
Autosize |
|
Ознака того, що розмір поля визначається його вмістом |
|
|
|
|
|
|
|
|
|
|
|
Left |
|
Відстань від лівої межі поля виводу до лівої межі форми |
|
|
|
|
|
|
|
межі |
||
|
Тор |
|
Відстань від верхньої межі поля виводу до верхньої |
|
||
|
|
форми |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Height |
|
Висоту поля виводу |
|
|
|
|
|
|
|
|
|
|
|
Width |
|
Ширіну поля виводу |
|
|
|
|
|
|
|
|
|
|
14
AB
|
|
|
F |
|
|
|
D |
|
|
Y |
P |
B |
Y |
|
|
|
|
||
|
|
|
|
w |
Click |
||
|
|||
|
|
w |
|
|
|
|
w. |
|
|
|
A |
r |
ansf |
|
||
T |
|
|||
|
|
|
or |
|
|
|
|
m |
|
|
|
|
|
e |
|
|
|
buy |
r |
|
|
|
0 |
|
|
|
|
|
2 |
|
|
to |
|
. |
here |
|
|
||
|
o |
m |
||
|
|
|
||
|
|
|
.c |
|
BBYY |
|
Wordwrap
|
|
|
|
|
F |
|
|
|
|
|
D |
|
|
|
Y |
P |
|
|
B |
Y |
|
|
|
B |
|
|
|
||
|
|
|
|
||
|
|
|
|
|
|
A |
|
|
|
|
|
|
w |
|
Click |
||
|
|
|
|||
|
|
|
w |
|
|
Ознака того, що слова, які не поміщаються в поточному |
|||||
|
|
|
|
|
w. |
|
|
|
|
|
A |
рядку, автоматично переносяться на наступний рядок(значення властивості Autosize повинно бути false)
|
|
r |
|
|
|
T ansf |
|
||||
|
|
|
|
or |
|
|
|
|
|
m |
|
|
|
|
|
|
e |
|
|
|
|
buy |
r |
|
|
|
|
0 |
|
|
|
|
|
|
2 |
|
|
|
to |
|
. |
|
here |
|
|
||
|
|
|
|
||
|
|
|
|
|
m |
|
|
|
|
o |
|
B |
|
|
.c |
|
|
BYY |
|
||||
|
|
|
|
|
|
Якщо поле Label повинно містити декілька рядків тексту, то перш ніж ввести в
поле текст (змінити значення властивості Caption), потрібно привласнити властивості
Autosize значення false а властивості wordwrap — true. Потім треба встановити необхідний розмір поля(за допомогою миші або введенням значень властивостей
Height і width) і лише після цього ввести значення властивостіCaption.
У форму застосування, що розробляється, треба додати чотири компоненти Label. Поле Label1призначено для виведення інформаційного повідомлення, поля
Label2 і Labels — для виведення інформації про призначення полів введення, поле Label4 — для виведення результату розрахунку(величини струму в ланцюзі). Після
додавання компонентів треба виконати їх налаштування— встановити значення властивостей (таблиця. 2.6). Прочерк в таблиці означає, що значення властивості залишене без зміни або встановлене автоматично— наприклад, як результат зміни
іншої властивості. В результаті форма застосування, що розробляється, повинна виглядати так, як показано на мал. 2.15.
Таблиця 2.6. Значення властивостей компонентів Label1 — Label4
|
|
|
|
|
|
|
|
|
|
|
|
Властивість |
|
Компонент |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Label1 |
|
Label2 |
|
Label3 |
|
Label4 |
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
Autosize |
|
false |
|
true |
|
true |
|
fablse |
|
|
|
|
|
|
|
|
|
|
|
|
|
Wordwrap |
|
true |
|
false |
|
false |
|
true |
|
|
|
|
|
|
|
|
|
|
|
|
|
Caption |
|
Введіть напругу і величину |
|
Напруга |
|
Опір (Ом) |
|
|
|
|
|
опору, потім клацніть на |
|
|
|
|
|
|||
|
|
|
(вольт) |
|
|
|
|
|||
|
|
|
кнопці Обчислити |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
Тор |
|
8 |
|
56 |
|
80 |
|
112 |
|
|
|
|
|
|
|
|
||||
|
Left |
|
8 |
|
8 |
|
8 |
|
8 |
|
|
|
|
|
|
|
|
||||
|
Height |
|
33 |
|
16 |
|
16 |
|
16 |
|
|
|
|
|
|
|
|
||||
|
Width |
|
300 |
|
120 |
|
120 |
|
200 |
|
|
|
|
|
|
|
|
|
|
|
|
Мал. 2.15. Вид форми після додавання і налаштування полів виведення тексту
15
AB
|
|
|
F |
|
|
|
D |
|
|
Y |
P |
B |
Y |
|
|
|
|
||
|
|
|
|
w |
Click |
||
|
|||
|
|
w |
|
|
|
|
w. |
|
|
|
A |
Tran |
sf |
|
|
|
|
|
|
|
|
|
|
F Tran |
sf |
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
D |
|
|
|
|||||
|
|
|
or |
e |
|
|
|
|
Y |
P |
|
|
|
or |
e |
||||
|
|
|
|
m |
|
|
B |
Y |
|
|
|
|
|
|
|
m |
|||
|
|
buy |
|
r |
|
B |
|
|
|
|
|
buy |
r |
||||||
|
|
|
2 |
|
|
|
|
|
|
|
2 |
||||||||
|
|
|
0 |
|
|
|
|
|
|
|
|
0 |
|||||||
|
to |
|
|
|
|
. |
|
A |
|
|
|
|
|
|
to |
|
|
|
. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
here |
|
|
|
|
|
|
|
|
|
|
|
|
here |
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
m |
Останнє, що треба зробити на етапі створення форми— це додати у формуwдвіClick |
|
|
|
|
m |
||||||||
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
||||
|
|
|
|
o |
командні кнопки: Обчислити і Завершити. Призначення цих кнопок очевидне. |
|
|
|
w. |
|
|
|
|
o |
|||||
|
|
|
c |
|
|
|
|
|
|
|
|
|
c |
|
|||||
|
|
. |
|
|
|
|
|
|
|
|
|
|
|
. |
|
|
|||
BBYY |
|
|
|
|
|
|
|
|
|
|
|
A B BYY |
|
|
|
Командна кнопка — компонент Button — додається у форму точно так, як і інші компоненти. Значок компоненту Button знаходиться на вкладціStandard (мал. 2.16).
Основні властивості компонентуButton приведені в таблиці. 2.7.
Мал. 2.16. Командна кнопка — компонент Button
Після додавання до форми двох командних кнопок потрібно встановити значення їх властивостей у відповідності таблиці. 2.7.
Таблиця 2.7. Властивості компоненту Button (командна кнопка)
|
|
|
|
|
|
|
Властивість |
|
Опис |
|
|
|
|
|
|
|
|
|
Name |
|
Ім'я компоненту. Використовується в програмі для доступу до |
|
|
|
|
компоненту і його властивостей |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Caption |
|
Текст на кнопці |
|
|
|
|
|
|
|
|
|
|
|
Ознака доступності кнопки. Кнопка доступна, якщо значення |
|
|
|
Enabled |
|
властивості рівне true і недоступна, якщо значення властивості |
|
|
|
|
|
рівне false |
|
|
|
|
|
|
|
|
|
Left |
|
Відстань від лівої межі кнопки до лівої межі форми |
|
|
|
|
|
|
|
|
|
Тор |
|
Відстань від верхньої межі кнопки до верхньої межі форми |
|
|
|
|
|
|
|
|
|
Height |
|
Висота кнопки |
|
|
|
|
|
|
|
|
|
Width |
|
Ширіна кнопки |
|
|
|
|
|
|
|
|
Після додавання до форми двох командних кнопок потрібно встановити значення їх властивостей відповідно до таблиці. 2.8.
Остаточний вид форми застосування, що розробляється, приведений на мал.
2.17.
16
AB
|
|
|
|
|
F Tran |
sf |
|
|||
|
|
|
|
D |
|
|
|
|||
|
|
Y |
P |
|
|
|
|
or |
e |
|
B |
Y |
|
|
|
|
|
|
|
m |
|
|
|
|
|
|
|
buy |
r |
|||
|
|
|
|
|
|
|
2 |
|||
|
|
|
|
|
|
|
|
0 |
||
|
|
|
|
|
|
|
to |
|
|
. |
|
|
|
|
|
|
here |
|
|
|
|
|
|
|
|
Click |
|
|
|
|
||
w |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|
||||
|
|
w |
w. |
|
|
|
|
o |
||
|
|
|
|
|
|
|
. |
|
||
|
|
|
|
|
A BBYY |
c |
|
|||
|
|
|
|
|
|
|
AB
|
|
|
|
|
F Tran |
sf |
|
|||
|
|
|
|
D |
|
|
|
|||
|
|
Y |
P |
|
|
|
|
or |
e |
|
B |
Y |
|
|
|
|
|
|
|
m |
|
|
|
|
|
|
|
buy |
r |
|||
|
|
|
|
|
|
|
2 |
|||
|
|
|
|
|
|
|
|
0 |
||
|
|
|
|
|
|
|
to |
|
|
. |
|
|
|
|
|
|
here |
|
|
|
|
|
|
|
|
Click |
|
|
|
|
||
w |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|
||||
|
|
w |
w. |
|
|
|
|
o |
||
|
|
|
|
|
|
|
. |
|
||
|
|
|
|
|
A B BYY |
c |
|
|||
|
|
|
|
|
|
|
Мал. 2.17. Остаточний вид форми програми "Сила струму"
Завершивши роботу над формою, можна приступити до створення програми. Але
перед цим розглянемо два важливі поняття: подію і функцію обробки події.
|
Таблиця 2.8. Значення властивостей компонентів Button1 |
і Button2 |
|||||
|
|
|
|
|
|
|
|
|
Властивість |
|
Компонент |
|
|
||
|
|
|
|
|
|
|
|
|
|
Button1 |
|
|
Button2 |
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|||
|
Caption |
|
Обчислити |
|
|
Завершити |
|
|
|
|
|
|
|
|
|
|
Тор |
|
144 |
|
|
144 |
|
|
|
|
|
|
|
|
|
|
Left |
|
16 |
|
|
104 |
|
|
|
|
|
|
|
|
|
|
Height |
|
25 |
|
|
25 |
|
|
|
|
|
|
|
|
|
|
Width |
|
75 |
|
|
75 |
|
|
|
|
|
|
|
|
|
2.2 Подія і функція обробки події
Вид створеної форми підказує, як працює додаток. Очевидно, що користувач
повинен ввести в поля редагування початкові дані |
і |
клацнути |
мишею |
на кноп |
Обчислити. Клацання на зображенні командної кнопки— |
це |
приклад |
того, що |
в |
Windows називається подією. |
|
|
|
|
Подія (Event) — це те, що відбувається під час роботи програми. У C++ Builder
кожній події привласнено ім'я. Наприклад, клацання кнопкою миші — це подія Onclick подвійне клацання мишею — подія OnDblClick.
У таблиці. 2.9 приведені деякі події Windows.
Таблиця 2.9. Події
17
AB
|
|
|
F |
|
|
|
D |
|
|
Y |
P |
B |
Y |
|
|
|
|
||
|
|
|
|
w |
Click |
||
|
|||
|
|
w |
|
|
|
|
w. |
|
|
|
A |
r |
ansf |
|
|
||
T |
|
|
|||
|
|
|
or |
|
|
|
|
|
m |
||
|
|
|
|
|
e |
|
|
|
buy |
|
r |
|
|
|
0 |
||
|
|
|
|
2 |
|
|
|
to |
|
. |
|
here |
|
|
|
||
|
|
|
|
||
|
|
|
o |
m |
|
|
|
|
.c |
|
|
BBYY |
|
|
|||
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
F Tran |
sf |
|
|
|||||
|
|
|
|
|
|
|
|
D |
|
|
|
|
|
|
|||
|
|
|
|
|
|
Y |
P |
|
|
|
|
|
|
or |
e |
||
|
|
|
|
B |
Y |
|
|
|
|
|
|
|
|
|
|
m |
|
|
|
|
B |
|
|
|
|
|
|
|
|
buy |
r |
||||
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
||||
|
|
|
A |
|
|
|
|
|
|
|
|
|
to |
|
|
|
. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
here |
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
Подія |
|
Відбувається |
|
w |
|
Click |
|
|
|
|
|
|
|
m |
|||
|
|
|
|
|
|
|
|
|
|
c |
|||||||
|
|
|
|
|
|
w |
w. |
|
|
|
|
|
. |
o |
|||
OnClick |
|
|
|
|
|
|
|
|
A B BYY |
|
|
|
|||||
|
При клацанні кнопкою миші |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
OnDblClick |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
При подвійному клацанні кнопкою миші |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
OnMouseDown |
|
При натисненні кнопки миші |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
OnMouseUp |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
При відпуску кнопки миші |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
OnMouseMove |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
При переміщенні миші |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
OnKeyPress |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
При натисненні клавіші клавіатури |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
При |
натисненні |
клавіші |
клавіатури. Події |
Onkeydown і |
|
OnKeyDown |
|
Onkeypress |
— це події, що |
чергуються, повторюються, які |
|
||
|
відбуваються до тих пір, поки не буде відпущена утримувана |
|
|||||
|
|
|
|||||
|
|
клавіша (у цей момент відбувається подія Onkeyup) |
|
|
|||
OnKeyUp |
|
|
|
|
|||
|
При відпуску натиснутої клавіші клавіатури |
|
|
||||
|
|
|
|
|
|
||
OnCreate |
|
При |
створенні |
об'єкту(форми, елементу |
управління). |
|
|
|
Процедура обробки цієї події зазвичай використовується |
для |
|||||
|
|
ініціалізації змінних, виконання підготовчих дій |
|
|
|||
|
|
|
|||||
|
|
При появі вікна на екрані на початку роботи програми; під |
|
||||
OnPaint |
|
час роботи програми після появи вікна(або його частини), яке |
|
||||
|
|
було закрите іншим вікном або згорнуте |
|
|
|||
OnEnter |
|
|
|
|
|||
|
При отриманні елементом управління фокусу |
|
|
||||
OnExit |
|
|
|
|
|||
|
При втраті елементом управління фокусу |
|
|
Реакцією |
на |
подію |
має бути |
яка-небудь . діяУ C++ Builder |
реакція |
на подію |
реалізується |
як |
функція |
обробки |
події. Таким чином, для того, щоб |
програма |
|
виконувала деяку роботу у відповідь на дії користувача, програміст |
повинен написати |
функцію обробки відповідної події. Слід звернути увагу на ,тещо значну частину обробки подій бере на себе компонент. Тому програміст повинен розробляти функцію обробки події тільки в тому випад, якщоу реакція на подію відрізняється від
стандартної або не визначена. Наприклад, якщо по умові завдання обмежень на
символи, що вводяться в полеEdit немає, то процедуру обробки подіїonkeypress
писати не треба, оскільки |
під час |
роботи |
програми буде використана стандартна |
(прихована від програміста) процедура обробки цієї події. |
|||
Методику створення |
функцій |
обробки |
подій розглянемо на прикладі функції |
обробки події OnClick для командної кнопки Обчислити.
Щоб приступити до створення функції обробки події, спочатку треба вибрати компонент, для якого створюється функція обробки події. Вибрати компонент можна у вікні Object Inspector або клацанням на зображенні компоненту у формі. Після цього у вікні Object Inspector потрібно вибрати вкладку Events (Події).
У лівій колонці вкладки Events (мал. 2.18) перераховані події, які може сприймати вибраний компонент (ім'я і тип компоненту вказані у верхній частині вікна). Якщо для
події визначена функція обробки, то в правій колонці поряд з ім'ям події буде виведено
ім'я цієї функції.
18
AB
|
|
|
F |
|
|
|
D |
|
|
Y |
P |
B |
Y |
|
|
|
|
||
|
|
|
|
w |
Click |
||
|
|||
|
|
w |
|
|
|
|
w. |
|
|
|
A |
Tran |
sf |
|
|
|
|
|
|
|
|
|
F Tran |
sf |
|
|
|||||
|
|
|
|
|
|
|
|
|
|
D |
|
|
|
|
|||||
|
|
|
or |
e |
|
|
|
Y |
P |
|
|
|
|
or |
e |
||||
|
|
|
|
m |
|
B |
Y |
|
|
|
|
|
|
|
|
m |
|||
|
|
buy |
|
r |
B |
|
|
|
|
|
|
buy |
r |
||||||
|
|
|
2 |
|
|
|
|
|
|
|
2 |
||||||||
|
|
|
0 |
|
|
|
|
|
|
|
|
0 |
|||||||
|
to |
|
|
|
|
. |
A |
|
|
|
|
|
|
|
to |
|
|
|
. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
here |
|
|
|
|
|
|
|
|
|
|
|
|
here |
|
|
|
|
||
|
|
|
|
|
Для того, щоб створити функцію |
|
|
|
|
|
Click |
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
обробки події, потрібно зробити подвійне |
|
|
|
m |
|||||||||
|
|
|
|
|
m |
|
w |
|
|
|
|
|
|
|
|
||||
|
|
|
|
o |
|
|
|
|
w |
|
|
|
|
|
|
o |
|||
|
|
|
c |
|
клацання мишею у вікніObject Inspector у полі функції обробки відповідної події(мал. |
|
|
|
c |
|
|||||||||
|
|
. |
|
|
|
|
|
|
|
|
w. |
|
|
. |
|
|
|||
BBYY |
|
|
|
|
|
|
|
|
|
|
A B BYY |
|
|
|
2.19). В результаті цього відкриється вікно редактора коду, в яке буде доданий шаблон функції обробки події, а у вікні Object Inspector поряд з ім'ям події з'явиться ім'я функції обробки події, що згенерувало C++ Builder (мал. 2.19).
Мал. 2.18. На вкладці Events перераховані події, які може сприймати компонент (в даному випадку — командна кнопка)
Мал. 2.19. Шаблон функції обробки події, C++ Builder, що згенерував
C++ Builder привласнює функції обробки події ім'я, яке складається з двох частин. Перша частина імені ідентифікує форму, що містить об'єкт(компонент), для якого
19
AB
|
|
|
F |
|
|
|
D |
|
|
Y |
P |
B |
Y |
|
|
|
|
||
|
|
|
|
w |
Click |
||
|
|||
|
|
w |
|
|
|
|
w. |
|
|
|
A |
Tran |
sf |
|
|
|
|
|
|
|
|
|
F |
||
|
|
|
|
|
|
|
|
|
|
D |
|||
|
|
|
or |
e |
|
|
|
Y |
P |
|
|||
|
|
|
|
m |
|
B |
Y |
|
|
|
|
||
|
|
buy |
|
r |
B |
|
|
|
|
||||
|
|
|
2 |
|
|
|
|
|
|||||
|
|
|
0 |
|
|
|
|
|
|
||||
|
to |
|
|
|
|
. |
A |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
here |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Click |
||
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
створена процедура обробки події. Друга частина імені ідентифікує сам об'єкт і подію. У |
|||||||
|
|
|
|
|
m |
|
w |
|
|
|
|||
|
|
. |
o |
|
|
|
|
w |
w. |
|
|||
|
|
|
c |
|
нашому прикладі ім'я форми— Form1 ім'я командної кнопки — Button1 а ім'я події — |
||||||||
BBYY |
|
|
|
|
|
|
|
|
|
|
A |
Click.
r |
|
|
|
T ansf |
|
||
|
|
or |
|
|
|
m |
|
|
|
|
e |
|
|
buy |
r |
|
|
0 |
|
|
|
|
2 |
|
to |
|
. |
here |
|
|
|
|
|
|
|
|
|
|
m |
|
|
o |
|
|
|
.c |
|
B BYY |
|
У вікні редактора коду між фігурними дужками можна набирати інструкції, що
реалізовують функцію обробки події.
У лістингу 2.1 приведений текст функції обробки подіїonclick для командної кнопки Обчислити. Звернете увагу на те, як представлена програма. Її загальний вигляд відповідає тому, як вона виглядає у вікні редактора коду: ключові слова виділені
напівжирним шрифтом, коментарі — курсивом (виділення виконує редактор коду). Крім того, інструкції програми набрані з відступами відповідно до прийнятих в середовищі програмістів правил хорошого стилю.
Лістинг 2.1. Проста обробка події OnClick на кнопці Обчислити void__fastcall TForml::ButtonlClick(TObject *Sender)
{
float u; // напруга float r; // опір float i; // струм
// отримати дані з полів введення u = StrToFloat(Editl->text);
r = StrToFloat(Edit2->text); // обчислити струм
i = u/r;
// вивести результат в полі влучні
Label4->Caption = "Струм : " +
FloatToStrf(i,ffgeneral,7,2)+ "А";
}
Функція Button1Click виконує розрахунок сили струму і виводить результат
розрахунку в поліLabel4. Початкові дані вводяться з полів редагуванняEdit1 і Edit2 шляхом звернення до властивості Text. Властивість Text містить рядок символів, який
ввів користувач. Щоб програма працювала правильно, користувач повинен ввести в
кожне поле редагування ціле або дробове число в правильному форматі(при введенні
дробового числа для розділення цілої і дробової частин треба використовувати кому). Оскільки поле редагування містить текст(властивість Text строкового типу), необхідно
виконати перетворення рядка в число. Цю задачу вирішує функціяStrToFloat якій як
20