Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

1332231791

.pdf
Скачиваний:
27
Добавлен:
12.02.2016
Размер:
20.05 Mб
Скачать

Тепер необхідно замовити піцу в найближчій піцерії, а для цього нам потрібно буде створити форму, що допоможе визначати вартість піци. Переконаний, що ви зможете її написати, оскільки вмієте розробляти форму, а код уже є.

Вправа 4.2. Готуємося до вечері

Створіть форму, яка відображатиме вартість піци. Файли, які потрібні для виконання цієї вправи, зокрема файли з кодом VB .NET, містяться в папці Вправа_4.2.

Отже, знайдіть у папці Вправа_4.2 файл PizzaPrice.sln та, двічі клацнувши, відкрийте його у Visual Studio. Додайте об’єкти із вкладки Toolbox (Панель інструментів) до форми, щоб вона набула приблизно такого вигляду, як зображено на рисунку.

Для цього вам потрібні три перемикачі, два написи та вісім

прапорців. Не забудьте змінити назву форми. Програма зміню­ ватиме текст напису Label2.

У піцерії звичайна піца коштує 5 кредитів, за кожен додат- ­ковий м’ясний або овочевий інгредієнт покупець має допла­ чувати 1 кредит або 0,50 кредиту відповідно. Піца середніх розмірів коштує на 25 % дорожче, ніж маленька, а велика — на 50 %.

Форми

71

Створивши форму, побудуйте проект. Якщо під час побудови не виникло помилок, виберіть команду Debug Start Debugging.

Додаткове завдання

Зробіть так, щоб значення вартості піци подавалося у форматі, який нагадує гроші. У Visual Basic .NET для цього використо­

вується спеціальна функція. Передайте значення змінної, що зберігає вартість піци, до функції FormatCurrency. Це можна

зробити приблизно так:

FormatCurrency(мояЗмінна)

Результат виводитиметься у грошовому форматі. Додайте також до форми зображення піци.

Завдання 4. Дитяча забавка

Створіть класичну гру в хрестики-нулики. Код для програми міститься в папці Завдання_4, але форми у цій програмі немає. Тому вам потрібно «намалювати» її, але так, щоб вона відповідала наявному коду.

Скопіюйте папку проекту Завдання_4, в якій мають міститися дві підпапки (bin, obj) та сім файлів, на жорсткий диск свого комп’ютера.

Відкрийте Visual Studio .NET, виберіть команду Open Project (Відкрити проект) і перейдіть до файлу TicTacToe.sln. Цей файл ви також можете знайти за допомогою Провідника Windows, двічі клацнути його, — і проект відкриється у середовищі Visual Studio .NET. Додаючи об’єкти із вкладки Toolbox (Панель інструментів), надайте формі приблизно такого вигляду, як показано на рисунку, наведеному нижче. При цьому у вікні Properties (Атрибути) змініть атрибути форми та елементів керування.

1.Виділіть форму, клацнувши її один раз, і у вікні Properties (Атрибути) змініть її назву на Хрестики-­нулики.

2.Створіть дев’ять написів Label1Label9. Розташуйте їх так, щоб напис Label1 розміщувався в лівому верхньо­ му куті, а напис Label9 — у правому нижньому. Ви

72

День 4

зекономите час, якщо створите один напис, настроїте його атрибути, а потім скопіюєте цей напис ще у вісім різних місць.

Для всіх написів потрібно встановити такі значення ат­ рибутів:

Height

48

Width

48

Font

Microsoft Sans Serif Bold 36

BackColor

Можна залишити заданий стандартно

Text

Можна залишити заданий стандартно

3.Під дев’ятим написом створіть ще один, десятий, із іменем Label10 та задайте його атрибути:

Height

25

Width

175

Font

Microsoft Sans Serif Bold 16

BackColor

Можна залишити заданий стандартно

Text

Можна залишити заданий стандартно

4.Створіть ще три написи Label11Label13. Задайте для них тексти Виграли хрестики, Виграли нулики та

Нічия, як показано на рисунку.

5.Створіть три текстових поля TextBox1TextBox3 і розташуйте їх поруч із написами, створеними на попередньому кроці.

Форми

73

6.Створіть кнопку Button1. Для її атрибута Text (Текст) за- ­дайте значення Грати знову.

7.Створіть кнопку Button2, як показано на рисунку. Для її атрибута Text (Текст) задайте значення Завершити.

Створивши форму, побудуйте проект. Якщо під час побудови не виникло помилок, виконайте команду Debug Start Debugging.

Додаткове завдання

Змініть фоновий колір форми, шрифт усіх кнопок і текстових полів. Використайте шрифт, який легше читається (наприк­ лад, Microsoft Sans Serif Bold 10).

Чи можна водночас змінити шрифти зразу всіх елементів, якщо спершу виділити їх (для виділення кількох елементів слід клацнути кожний із них, утримуючи клавішу Ctrl)?

Створіть текстові поля для імен гравців.

Отже, ви непогано справилися зі своїм завданням. Я думаю, що тепер ми можемо спокійно перейти до ігор, але... — ще не встиг ВВ договорити, як Михась із Даринкою разом завершили його думку:

Але спочатку потрібно дати відповіді на тестові запитання, щоб отримати доступ до цих ігор.

Кодовий замок

1.Що використовують у формі для керування програмою? а) елементи керування; б) об’єкти; в) і те й інше.

2.Що є спільного у форми та її елементів керування? а) глибина; б) атрибути;

в) дочірні вікна.

74

День 4

3.Який елемент керування використовують для отримання даних?

а) текстове поле; б) напис; в) кнопку.

4.Що ініціює подія у Visual Basic?

а) змінення значень атрибутів текстових полів; б) введення даних; в) виконання коду.

5.Кількість подій для різних елементів керування: а) однакова; б) різна;

в) залежить від програми.

6.Чи можна розтягувати текстові поля у висоту? а) ні; б) так;

в) так, але лише в тому випадку, коли встановлено прапо­ рець Multiline (Багаторядкове).

7.Для чого призначена функція FormatCurrency(x)?

а) перевіряє, чи можна перевести значення змінної x у гро­ шовий формат;

б) переводить значення змінної x у грошовий формат;

в) перевіряє, чи має значення змінної x грошовий формат.

8.Якого атрибута не має кнопка?

а) Name; б) Items; в) Text.

Форми

75

День 5

Варіативність — запорука функціональності

Ще з вечора Михась із Даринкою почали просити ВВ поясни­ ти їм код, бо їхнє перебування тут не може тривати довго. Крім того, батько ВВ казав, що вже мав розмову з часовими операторами щодо зворотної подорожі.

Але ж він сказав, що через надмірне навантаження модулів вам доведеться ще кілька днів почекати! — зауважив ВВ.

Адже «кілька днів» — це недовго, — вимовила Даринка. — Давай швидше вчитись, а то ми не встигнемо навіть познайомитися з вашим містом!

Добре-добре, завтра після обіду підемо на прогулянку містом, — пообіцяв ВВ.

І ось «завтра» настало. Відразу після сніданку всі знову зібралися в кімнаті ВВ.

Код, що керує виглядом форми

— Створювати форми і настроювати елементи керування за допомогою вікна Properties (Атрибути) цікаво, та це лише поча­ ток, — продовжив учорашню розповідь ВВ. — Це вікно легко використовувати, але його можливості не надто широкі.

А якщо користувач хоче змінити фоновий колір форми? Чи розмір або стиль шрифту? Звідки програма «дізнається», що користувач установив прапорець або клацнув перемикач? — запитала Даринка.

Оскільки користувачі не мають доступу до вікна атрибутів під час виконання програми, як вони можуть робити такі ре­ чі? — поцікавився Михась.

76

День 5

— Відповіді на ці запитання дає код Visual Basic .NET. Ви можете робити такі речі й багато інших за допомогою кодування. Вам необхідно написати код, який зчитуватиме значення атрибутів елементів керування. Щоб задати значення атрибутів, також пишеться код. Хіба не просто? Для мене саме з цього й починалося програмування.

Вікно Properties (Атрибути) використовують для того, щоб задавати вихідні значення атрибутів форми та елементів керування під час розробки форми. Код застосовують для змінення атрибутів під час виконання програми.

А де розміщується весь код? — поцікавився Михась, який вже чув про кілька середовищ програмування, де код займав чільне місце.

На сторінці коду форми! — відповів ВВ. — У більшості випадків ви помістите його до обробників подій елементів керування. Пам’ятаєте, що відбувається у програмі після клацання мишею командної кнопки? Коли користувач виконує певну дію, наприклад, клацає кнопку, керування передається коду, який ви написали для обробника відповідної події. Цей код може зчитувати або задавати значення атрибутів форми чи елементів керування. Додаючи код до обробників подій, ви робите перші кроки на шляху перетворення форми на справжню робочу програму. Пам’ятаєте форму спущеної шини, яку ви розробили? За її допомогою не можна буде виконати жодної дії, доки ви не додасте код.

Щоб змінити код обробника події, яка пов’язана з елементом керування стандартно, виберіть у формі елемент керування та двічі клацніть його. Відкриється вікно, в якому вже міститься готовий до редагування код. Ви можете вибрати обробник іншої події зі списку, що відображається у верхній правій частині вікна коду.

Зчитування значень атрибутів

Отже, сьогодні наше перше завдання — навчитися зчитувати значення атрибутів за допомогою коду Visual Basic .NET — проголосив ВВ. — Спочатку розглянемо кілька простих атри­ бутів, значення яких зазвичай задають у вікні Properties (Атрибути). Розпочинаємо!

Варіативність—запорукафункціональності

77

Створіть нову Windows-програму, яка називатиметься ReadPro­ perties. Відкрийте вікно Toolbox (Панель інструментів) і додай-

те до форми Form1 кнопку. Потім відкрийте вікно Properties (Атрибути) та змініть значення атрибута Text кнопки Button1

на Читати текст.

Двічі клацніть кнопку, щоб внести зміни до коду обробника стандартної події. Введіть такий рядок коду:

MessageBox.Show(Button1.Text)

Побудуйте та запустіть проект. Клацніть кнопку Читати текст.

Відкриється вікно повідомлення з текстом Читати текст, який є значенням атрибута Text кнопки Button1. Отже, код зчитує значення атрибута Text кнопки Button1, а після

цього виводить повідомлення, яке містить це значення. Чудо­ во, чи не так?

Візьмемо інший приклад. Додайте до форми ще одну кнопку.

У вікні Properties (Атрибути) змініть значення атрибута Text кнопки Button2 на Розмір форми. Двічі клацніть кнопку Button2, щоб внести зміни до коду обробника стандартної

події. Введіть такий рядок коду:

MessageBox.Show(Form1.ActiveForm.Height & ","

& Form1.ActiveForm.Width)

Побудуйте та запустіть проект. Клацніть кнопку Розмір форми. У вікні повідомлень відобразяться два числа, наприклад 300,

300. Ваш код тільки-но показав значення атрибутів Height (Ширина) та Width (Висота) форми Form1, розділивши їх ко-

мами. Знову чудово! Та ще й просто!

Які ще атрибути може зчитувати код Visual Basic .NET? — запитав Михась.

Фактично, всі атрибути форми та елементів керування — все те, що зібрано у вікні Properties (Атрибути). Зокрема, мож-

на зчитувати значення таких атрибутів, як Height (Ширина)

та Width (Висота), BackColor (Колір фону), ForeColor (Колір написів на елементах керування), X and Y Locations (Коор­

динати X та Y­). Проте значення більшості атрибутів, що ві­ображаються у вікні Properties (Атрибути), задаються під час першої розробки форми та не змінюються, коли виконується

78

День 5

програма. Тож зчитування значень атрибутів не завжди є ко­ рисним або цікавим, — відповів ВВ.

Значення атрибутів елементів керування доцільно зчитувати тоді, коли користувачі мають змогу їх змінювати під час ро-

боти із програмою. Наприклад, вони мають змогу змінити значення атрибута Text поля або Checked прапорця. Зчитую-

чи значення атрибутів, програма отримує інформацію від користувачів.

Розглянемо приклад. Напишемо код, що визначатиме, чи вста­ новлено прапорець. Відкрийте вікно Toolbox (Панель інструментів) та додайте до форми Form1 прапорець і третю кнопку,

а потім, відкривши вікно Properties (Атрибути), змініть значення атрибута Text кнопки Button3 на Перевірте мене. Двічі клацніть кнопку Button3, щоб внести зміни до коду

обробника події. Введіть такий рядок коду:

MessageBox.Show(CheckBox1.Checked)

Побудуйте та запустіть проект. Клацніть кнопку Перевірте мене. Буде виведено повідомлення False. Установіть прапорець і знову клацніть ту саму кнопку. Яким є повідомлення цього разу? Тепер воно має містити слово True. Кожного разу, коли ви кла-

цаєте кнопку, вікно повідомлення відображає поточне значення атрибута Checked прапорця.

А тепер подивимось, як зчитувати та виводити на екран слова, які користувач вводить у текстове поле.

Додайте до форми Form1 текстове поле. Відкрийте вікно Pro­­ perties (Атрибути) цього поля та переконайтеся, що атрибуту

Варіативність—запорукафункціональності

79

ReadOnly надане значення False. Атрибуту Text надайте значення Введіть текст. Додайте четверту кнопку до форми. Змініть значення атрибута Text кнопки Button4 на Читати текст. Клацніть кнопку Button4, щоб внести зміни до коду

обробника стандартної події. Введіть такий рядок коду:

MessageBox.Show(TextBox1.Text)

Побудуйте проект та запустіть його. Двічі клацніть мишею в полі TextBox1 і натисніть клавішу Backspace, щоб видалити текст. Введіть будь-який новий текст. Клацніть кнопку Читати текст. Після цього відкриється вікно повідомлення. Яким є зміст повідомлення? Змініть текст у полі та знову клацніть кнопку Чи-­

тати текст. Що сталося?

Наведені вище приклади показують, як використовувати код Visual Basic .NET для зчитування значень атрибутів елементів керування. Крім цього, код Visual Basic .NET застосовують для того, щоб задавати значення атрибутів.

Надання атрибутам значень

Добре, що можна зчитувати значення атрибутів елементів керування в коді Visual Basic .NET. У такий спосіб у коді можна визначити, які значення атрибутів установлюють користувачі, коли працюють із програмою. Залежно від зчитаних значень, програма може виконувати різний код, а отже, і різні дії.

— А чи може бути навпаки? — запитав Михась. — Тобто чи може програма сама змінювати значення атрибутів елементів керування? Наприклад, мені потрібно, щоб прапорець Терміно-­ ва робота був установлений завжди, коли користувач уперше запускає програму; щоб у текстовому полі з’являлися всі наявні розміри шин, коли користувач клацає кнопку Отримати шини; щоб список розмірів шин формувався автоматично після того, як користувач уведе номер машини.

— Звичайно, за допомогою коду Visual Basic .NET ти можеш зробити все це! — відповів ВВ. — Задавати значення атрибутів елементів керування так само легко, як і зчитувати їх. Щоб задати значення атрибута в коді Visual Basic .NET, засто­ совують оператор присвоєння. Пам’ятаєте, як ми обговорюва­

80

День 5