Головна

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

  1. A) Прикладным программам
  2. Cп Прикладная геология
  3. VІ. Функції та організаційні засади управління
  4. Web для спільного проектування.
  5. WYSIWYG - системи проектування Web- сайтів.
  6. Абстрагування. Види абстракцій, що використовуються в науці.
  7. Автобіографія - це документ, у якому особа, що складає його, подає опис свого життя та діяльності в хронологічній послідовності.

Розглянемо проект Windows-додатка, екранна форма якого зображена на мал. 1.12.

Мал. 1.12. Екранна форма додатка, за допомогою якого зображуються трикутники й обчислюються їхні площі

По виду цієї форми неважко здогадатися про призначення даного додатка - малювати на екрані комп'ютера трикутники й обчислювати їх площі. Координати вершин трикутників користувач задає або «на око», за допомогою миші, або точно, вводячи їх у текстові поля за допомогою клавіатури.

Насамперед, опишемо інтерфейс для даного додатка (екранну форму й основні об'єкти на цій формі), а потім представимо програму (процедури, що забезпечують функціонування даного додатка). Раніше нами були розглянуті основні етапи створення проекту в середовищі Visual Basic. Нагадаємо, що основні з них - це розробка інтерфейсу і програмування.

Інтерфейс. Основний об'єкт екранної форми - графічне поле, розташоване в центрі форми. На цьому полі будуть зображуватися трикутники після того, як користувач задасть значення координат їхніх вершин. Координати точок на графічному полі для простоти вважаються додатними. Початок координат знаходиться в лівому нижньому куті цього поля, вісь X спрямована зліва направо, а вісь Y - знизу нагору. Значення координат допомагає оцінити координатна сітка. (У даному випадку вона відповідає максимальному значенню кожної координати, і дорівює 20.)

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

Ліворуч від графічного поля знаходяться 7міток (зовні вони не відрізняються від текстових полів, що знаходяться праворуч від графічного поля). Імена цих міток такі: Label8, Label9, ..., Label14 (Над цими мітками знаходяться ще 7 міток (Labell, Label2, ..., Label7) з написами: X1, Y1, ..., Площа.). У перші 6 з них (Label8 - Labell3) будуть поміщені (помістити деяке значення в мітку означає привласнити це значення властивості Caption даної мітки) координати точок, що користувач за допомогою миші буде вказувати на графічному полі. Ці точки - вершини трикутника, що буде зображуватися синім кольором. В останню мітку (Labell4) після натискання командної кнопки буде поміщена площа цього трикутника.

Праворуч від графічного поля знаходяться 6 текстових полів, у які користувач може вводити координати вершин іншого трикутника. (Він буде зображуватися червоним кольором.) Під ними знаходиться мітка з ім'ям Label23, в яку поміститься площа цього трикутника після щиглика все тієї ж командної кнопки.

Програма. Програма даного додатка написана виходячи з блокового принципу: вона складається з декількох невеликих Click - процедур і функцій.

Крім процедур-подій, програма містить загальні процедури, поміщені в окремі програмні модулі, і функцію, що також поміщена в окремий модуль.

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

Розглянемо складові частини програми по окремості.

Загальна частина програми. Вона містить оголошення змінних - загальних для декількох процедур (оголошення змінних у загальній частині модуля за допомогою ключового слова Dim - це те ж саме, що оголошення їх за допомогою ключового слова Private ):

Код 1.7.

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

Код 1.8.

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

Код 1.9.

Процедура-подія Form_Paint. Подією для цієї процедури служить заповнення («зафарбовування») форми після її завантаження. Призначення процедури - нанесення на графічне поле екранної форми прямокутної сітки (спроба нанесення сітки (застосування методу Line) у процедурі завантаження форми приводить до невдачі):

Код 1.10.

Процедура - подія Piсture1_MоuseDоwn. Подією для цієї процедури служить рух будь-якої клавіші миші вниз (клік лівою клавішею миші по графічному полю Picturel).

При першому кліку клавішею миші вниз координати покажчика миші привласнюються змінним xl і yl; при другому - змінним x2 і y2; при третьому - змінним х3 і у3. (Відлік кліків робиться за допомогою глобальної змінної Лічильник.)

Два інших параметри цієї процедури (Button і Shift) у нашій програмі не використовуються. Їхнє значення вказує на те, яка клавіша миші використовується і чи натиснуті при цьому клавіші Shift, Ctrl чи Alt.

Код 1.11.

Функція загального призначення ПлТрикутКоopд. Це функція, що повертає площу трикутника, якщо задані координати його вершин. Визначення цієї функції дане в розд. 1.5 (код 1.6).

Наступні 2 процедури не мають вихідних параметрів. Їхнє призначення - побудова зображень.

Процедура загального призначення Сітка. Призначення процедури - побудова зображення прямокутної сітки в графічному полі Picturel:

Код 1.12.

Тут пх і ny - це, відповідно, число вертикальних і горизонтальних ліній на сітці, а с- колір цих ліній.

Процедура загального призначення Трикутник. Призначення цієї процедури - побудова зображення трикутника в графічному полі Picturel:

Код 1.13.

Представлена програма може розглядатися як перша боязка спроба створення, ні багато ні мало, саморобного графічного редактора.

Завантажити додаток

Питання для роздумів

1. Як Ви думаєте, чому змінні xl, yl, x2, y2, х3, у3 у розглянутому вище проекті не зобов'язані бути глобальними - адже вони використовуються як у модулі форми, так і в модулі загальної процедури Трикутник?
Відповідь: У модулі загальної процедури використовуються зовсім інші змінні! Вас не повинно бентежити те, що в них (випадково!) виявилися ті ж самі імена. Ці імена могли б бути іншими.

2. Як Ви думаєте, що відбудеться в робочому додатку після натискання командної кнопки, якщо Ви встановите у графічному полі не 3, а 2 чи навіть всього одну точку?

3. А що відбудеться, якщо Ви встановите не 3, а більше число точок?

4. Як Ви думаєте, чому змінна Лічильник, хоча вона використовується тільки в одній процедурі Plcturel_MouseDown, оголошена в розділі загальних оголошень? (Питання складне!) Чи не можна оголосити змінну Лічильник всередині зазначеної процедури?

5. Як Ви думаєте, чому для координат трикутника обраний тип Single?

6. Як Ви думаєте, навіщо в процедурі Трикутник ( код 1.13) у рядках з методом Line перед ім'ям графічного поля Picturel стоїть ім'я форми Площатрикутника?



© um.co.ua - учбові матеріали та реферати