Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Приклад проекту Windows-додатка, у якому використовуються обумовлені процедури і функції



Розглянемо проект 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; Прочитано: 252 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.008 с)...