Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Візуал Бейсік 2010 Глінський.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
4.12 Mб
Скачать

§ 14. Елементи керування прапорці і перемикачі

У цьому параграфі розглянемо такі елементи керування: прапор­ці, перемикачі, групи. Ви навчитеся створювати проекти для го­лосування, опитування, тестування тощо.

1. Призначення прапорців і перемикачів. Відшукайте ці елементи на рис. 1.2 і 1.3 і пригадайте їх призначення.

Елементи керування класу «прапорці» використовують для того, щоб користувач мав змогу вибирати (задавати) на формі один чи декілька значень (опцій, варіантів) з деякого набору можливих значень (опцій, варіантів).

Елементи керування класу «перемикачі» дають змогу вибирати (задавати) на формі лише одне значення (опцію, варіант) з деякого набору можливих значень (опцій, варіантів).

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

2. Прапорці та перемикачі у VBA. Елементи керування класу «прапорці» належать до класу з назвою CheckBox. Елементи керу­вання класу «перемикачі» належать до класу OptionButton.

Головна властивість цих елементів — Value — ввімкненість, заданість, вибраність. Вона може набувати значення True (задано, вибрано) або False (не задано, не вибрано).

3. Прапорці та перемикачі у VB. Елементи керування класу «прапорці» належать до класу з назвою CheckBox. Елементи керу­вання класу «перемикачі» належать до класу RadioButton.

Головна властивість цих елементів — Checked — ввімкненість, заданість, вибраність. Вона може набувати значення True (задано, забрано) або False (не задано, не вибрано).

4. Група елементів керування (Frame у VBA або GroupBox у VB). Елементи керування групують за призначенням чи іншою оз­накою. Найчастіше групують прапорці і перемикачі. Групування елементів потрібно передбачати заздалегідь, тобто до моменту вставляння їх на форму, оскільки спочатку на форму потрібно вставити елемент керування з класу «група» (Frame у VBA або GroupBox у VB).

Цей елемент має вигляд рамки з підписом . Розміри елемента треба задати так, щоб на ньому помістились всі інші елементи. Головні властивості групи — це тло і підпис, який задає і придумує користувач відповідно до змісту задачі.

5. Проект про голосування та опитування. Потрібно провести електронне голосування, щоб визначити кращого футболіста року рис. 1.16) або вибрати президента компанії чи раду директорів акціонерного товариства. Виберемо тему про футболістів.

Сценарій проекту. Голосувати можна лише за одну особу, вибравши прізвище у групі перемикачів «Голосування» і натиснувши на кнопку «Проголосувати».

Водночас з голосуванням відбувається опитування: «Які футбо­льні команди Іспанії кращі?» і «Які футболісти кращі у своїх збір­них?». В опитуванні голоси можна віддавати за декілька команд чи футболістів. Для участі в опитуванні треба вибрати потрібне значення в двох групах прапорців і натиснути на кнопку «Зарахувати».

Числові результати голосування й опитування відразу відображаються у текстових полях поряд. Кнопка «Результати» має функціонувати так: якщо на неї натиснути, то залишиться фотографія лише найкращого на момент голосування футболіста, інші фотог­рафії зникнуть.

Рис. 1.16. Голосування й опитування

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

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

6. Коди проекту. Глобальні змінні. Опишемо коди кнопок у термінах VBA. Коди для середовища VB будуть такі ж, але назви елементів керування треба замінити за таким правилом: OptionButton — не RadioButton, Image — на PictureBox, а властивість Value — на Checked.

Кількості подій підраховуватимемо за допомогою змінних k1, k2, k3 і n1, n2, …, n7. Ці змінні треба описати як глобальні. Глобальні змінні діють і зберігають значення у всіх процедурах проекту, а не лише в окремій процедурі.

Правило. Глобальні змінні описують командою Dim перед усіма процедурами (у розділі General коду у VBA).

Код кнопки «Проголосувати» у VBA має такий вигляд:

If OptionButtonl .Value Then k1 = k1 + 1

If OptionButton2.Value Then k2 = k2 + 1

If OptionButton3.Value Then k3 = k3 + 1

TextBox1.Text = k1

TextBox2.Text = k2

TextBox3.Text = k3

Код кнопки «Зарахувати» такий:

If CheckBoxI .Value = True Then n1 = n1 + 1

If CheckBox2.Value = True Then n2 = n2 + 1

If CheckBox3.Value = True Then n3 = n3 + 1

If CheckBox4.Value = True Then n4 = n4 + 1

If CheckBox5.Value = True Then n5 = n5 + 1

If CheckBox6.Value = True Then n6 = n6 + 1

If CheckBox7.Value = True Then n7 = n7 + 1

TextBox4.Text = n1

TextBox5.Text = n2

TextBox6.Text = n3

TextBox7.Text = n4

TextBox8.Text = n5

TextBox9.Text = n6

TextBox10.Text = n7

Код кнопки «Результати» такий:

Imagel.Visible = True

Image2.Visible = True

Image3.Visible = True

If k1 > k3 Then lmage3.Visible = False

If k1 > k2 Then lmage2.Visible = False

If k2 > k3 Then lmage3.Visible = False

If k2 > k1 Then Imagel .Visible = False

If k3 > k1 Then Imagel .Visible = False

If k3 > k2 Then lmage2.Visible = False

У цьому коді застосовано властивості числових змінних містити значення «0» за замовчуванням, якщо їм не надано жодного значення. Якщо цією властивістю не користуватись, то потрібно ус­кладнити проект використанням ще однієї кнопки «Обнулити», в коді якої всім змінним треба присвоїти значення нуль. Цю кнопку :лід натиснути на початку голосування або коли виникне потреба розпочати голосування й опитування спочатку.

Завдання 1. Реалізуйте проект. Створіть форму. Введіть коди. Не забудьте описати глобальні змінні. Виконайте проект і поекспериментуйте з ним.

Завдання 2. Модифікуйте проект, додавши кнопку з підписом «Обнулити» або «Спочатку».

Завдання 3. Модифікуйте проект, щоб числові результати го­лосування й опитування не висвітлювалися до кінця голосування (до натискання кнопки «Результати»).

Завдання 4*. Модифікуйте проект, щоб натискання на кнопку «Результати» зупиняло процес голосування й опитування, тобто не давало змоги продовжити голосування. Передбачте можливість розблокування процесу голосування.

Завдання 5*. Наведений вище код кнопки «Результати» не оп­тимальний за кількістю команд If. Створіть кращий код цієї кноп­ки, використавши меншу кількість команд If.

Завдання 6. Модифікуйте проект, змінивши тему голосування й опитування на власну. Реалізуйте проекти про голосування і пре опитування як два різні проекти.

Вправи

1. Модифікуйте будь-який з обчислювальних проектів з метою надання користувачеві можливості вибору способу (способів) виведення ре­зультатів після запуску проекту на виконання. (Ключ: застосуйте на формі групу прапорців «Вивести результати»; передбачте і закодуйте можливість виведення результатів у текстові поля, у вікна повідом­лень, у текстовий файл.

2. Створіть фрагмент програми тестування знань з деякого предмета. На формі відобразіть запитання і запропонуйте чотири варіанти від­повідей з одною правильною. (Ключ: створіть групу з чотирьох пере­микачів; запрограмуйте кнопку «Відповісти» так, щоб у випадку правильної відповіді виводилось повідомлення «Правильно», а у випадку неправильної — «Неправильно», а також щоб підраховува­лась кількість спроб).

3*. Розробіть проект «Електронні вибори» за таким технічним завданням:

3.1. На формі з деяким змістовним тлом розташувати фото трьох претендентів, три перемикачі для реалізації голосування і поля з поточними результатами голосування.

3.2. Виборець голосує і натискає на кнопку «Проголосувати». На формі мають відобразитися поточні числові результати голосу­вання і фото претендента (одного з претендентів), який має най­більше голосів на цей момент.

3.3. У Блокноті створити текстовий файл «Список виборців», що містить ідентифікаційні номери чи просто порядкові номерами від 1 до, наприклад, 20; прізвища виборців, особисті «секретні» паролі для голосування. Застосувати цей файл для виконання наступних завдань.

3.4. У двох полях, що стосуються розділу «Зареєструватись», вибо­рець вводить ідентифікаційний номер (чи звичайний номер) і ві­домий тільки йому пароль. Якщо дані введено правильно (введе­ні дані звіряються з даними у файлі), то на формі має з’явитися прізвище виборця, тоді він може голосувати. Якщо дані введено неправильно, виборець до голосування не допускається (дані треба ввести ще раз).

3.5. Виборець може проголосувати лише один раз.

3.6. Голосування розпочинається о 9 год ранку і закінчується о 20 год певного дня календаря. За результатами голосування на формі о 20 год з’являється фото переможця, кількість поданих за нього голосів, ця ж кількість у відсотках, а також відсоток, що ха­рактеризує явку виборців. Опрацювання дат і часу описано в § 27.

3.7. У ще один текстовий файл вивести прізвища осіб, які взяли участь у голосуванні, а в інший — тих, які вибори проігнорували.

3.8. Додайте власні креативні ідеї до сюжету про вибори.