![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Розглянемо проект Windows-додатка, екранна форма якого зображена на мал. 1.12.
![]() |
Мал. 1.12. Екранна форма додатка, за допомогою якого зображуються трикутники й обчислюються їхні площі |
По виду цієї форми неважко здогадатися про призначення даного додатка — малювати на екрані комп'ютера трикутники й обчислювати їх площі. Координати вершин трикутників користувач задає або «на око», за допомогою миші, або точно, вводячи їх у текстові поля за допомогою клавіатури.
Насамперед, опишемо інтерфейс для даного додатка (екранну форму й основні об'єкти на цій формі), а потім представимо програму (процедури, що забезпечують функціонування даного додатка). Раніше нами були розглянуті основні етапи створення проекту в середовищі Visual Basic. Нагадаємо, що основні з них — це розробка інтерфейсу і програмування.
Інтерфейс. Основний об'єкт екранної форми — графічне поле, розташоване в центрі форми. На цьому полі будуть зображуватися трикутники після того, як користувач задасть значення координат їхніх вершин. Координати точок на графічному полі для простоти вважаються додатними. Початок координат знаходиться в лівому нижньому куті цього поля, вісь X спрямована зліва направо, а вісь Y — знизу нагору. Значення координат допомагає оцінити координатна сітка. (У даному випадку вона відповідає максимальному значенню кожної координати, і дорівює 20.)
Під графічним полем розташована командна кнопка, натискання якої викликає малювання трикутників і обчислення їхніх площ.
Ліворуч від графічного поля знаходяться 7 міток (зовні вони не відрізняються від текстових полів, що знаходяться праворуч від графічного поля). Імена цих міток такі: Label 8, Label 9,..., Label 14 (Над цими мітками знаходяться ще 7 міток (Label l, Label 2,..., Label 7) з написами: X 1, Y 1,..., Площа.). У перші 6 з них (Label 8 — Label l3) будуть поміщені (помістити деяке значення в мітку означає привласнити це значення властивості Caption даної мітки) координати точок, що користувач за допомогою миші буде вказувати на графічному полі. Ці точки — вершини трикутника, що буде зображуватися синім кольором. В останню мітку (Label l4) після натискання командної кнопки буде поміщена площа цього трикутника.
Праворуч від графічного поля знаходяться 6 текстових полів, у які користувач може вводити координати вершин іншого трикутника. (Він буде зображуватися червоним кольором.) Під ними знаходиться мітка з ім'ям Label 23, в яку поміститься площа цього трикутника після щиглика все тієї ж командної кнопки.
Програма. Програма даного додатка написана виходячи з блокового принципу: вона складається з декількох невеликих Click — процедур і функцій.
Крім процедур-подій, програма містить загальні процедури, поміщені в окремі програмні модулі, і функцію, що також поміщена в окремий модуль.
Ці модулі зберігаються в особливих файлах, що дозволяє використовувати їх і в інших додатках.
Розглянемо складові частини програми по окремості.
Загальна частина програми. Вона містить оголошення змінних — загальних для декількох процедур (оголошення змінних у загальній частині модуля за допомогою ключового слова Dim — це те ж саме, що оголошення їх за допомогою ключового слова Private):
Код 1.7. |
![]() |
Процедура-подія Commandl_Click. Подією для цієї процедури служить клік командної кнопки. Він є сигналом для зображення двох трикутників — синього і червоного — одного по трьох точках, безпосередньо поміщених у графічне поле, іншого по трьох точках, координати яких вводяться користувачем через текстові поля:
Код 1.8. |
![]() |
Процедура-подія Form_Load. Подією для цієї процедури служить завантаження форми. Призначення процедури — видача користувачу короткої інструкції, що йому робити після появи форми на екрані:
Код 1.9. |
![]() |
Процедура-подія Form_Paint. Подією для цієї процедури служить заповнення («зафарбовування») форми після її завантаження. Призначення процедури — нанесення на графічне поле екранної форми прямокутної сітки (спроба нанесення сітки (застосування методу Line) у процедурі завантаження форми приводить до невдачі):
Код 1.10. |
![]() |
Процедура - подія Piсture1_MоuseDоwn. Подією для цієї процедури служить рух будь-якої клавіші миші вниз (клік лівою клавішею миші по графічному полю Picture l).
При першому кліку клавішею миші вниз координати покажчика миші привласнюються змінним x l і y l; при другому — змінним x 2 і y 2; при третьому — змінним х3 і у3. (Відлік кліків робиться за допомогою глобальної змінної Лічильник.)
Два інших параметри цієї процедури (Button і Shift) у нашій програмі не використовуються. Їхнє значення вказує на те, яка клавіша миші використовується і чи натиснуті при цьому клавіші Shift, Ctrl чи Alt.
Код 1.11. |
![]() |
Функція загального призначення ПлТрикутКоopд. Це функція, що повертає площу трикутника, якщо задані координати його вершин. Визначення цієї функції дане в розд. 1.5 (код 1.6).
Наступні 2 процедури не мають вихідних параметрів. Їхнє призначення — побудова зображень.
Процедура загального призначення Сітка. Призначення процедури — побудова зображення прямокутної сітки в графічному полі Picture l:
Код 1.12. |
![]() |
Тут пх і ny — це, відповідно, число вертикальних і горизонтальних ліній на сітці, а с— колір цих ліній.
Процедура загального призначення Трикутник. Призначення цієї процедури — побудова зображення трикутника в графічному полі Picture l:
Код 1.13. |
![]() |
Представлена програма може розглядатися як перша боязка спроба створення, ні багато ні мало, саморобного графічного редактора.
Завантажити додаток
Питання для роздумів
1. Як Ви думаєте, чому змінні x l, y l, x 2, y 2, х3, у3 у розглянутому вище проекті не зобов'язані бути глобальними — адже вони використовуються як у модулі форми, так і в модулі загальної процедури Трикутник?
Відповідь: У модулі загальної процедури використовуються зовсім інші змінні! Вас не повинно бентежити те, що в них (випадково!) виявилися ті ж самі імена. Ці імена могли б бути іншими.
2. Як Ви думаєте, що відбудеться в робочому додатку після натискання командної кнопки, якщо Ви встановите у графічному полі не 3, а 2 чи навіть всього одну точку?
3. А що відбудеться, якщо Ви встановите не 3, а більше число точок?
4. Як Ви думаєте, чому змінна Лічильник, хоча вона використовується тільки в одній процедурі Plcture l_ MouseDown, оголошена в розділі загальних оголошень? (Питання складне!) Чи не можна оголосити змінну Лічильник всередині зазначеної процедури?
5. Як Ви думаєте, чому для координат трикутника обраний тип Single?
6. Як Ви думаєте, навіщо в процедурі Трикутник (код 1.13) у рядках з методом Line перед ім'ям графічного поля Picture l стоїть ім'я форми Площатрикутника?
Дата публикования: 2014-12-28; Прочитано: 270 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!