Смекни!
smekni.com

Розробка засобами Delphi дидактичного ілюстративного матеріалу для розвязання задачі з аналітичної Логарифмічна спіраль (стр. 3 из 8)

Рисунок 5 - Реакція ЕОМ при q > 1

Рисунок 6 -Реакція ЕОМ при q < 1


4. Компоненти форми та їх властивості

Створюючи дану програму я використовував різноманітні компоненти: Edit, Label, ImageButton, Image, PaintBox, GroupBox, CheckBox, MainMenu, PageControlта OleContainer.

Таблиця 1 – Загальна характеристика компонентів:

Компонент Піктограма Панель компонентів Опис
Edit
(вікно редагування)
Standard Відображення, введення та редагування однорядкових текстів. Є можливість оформлення об'ємного бордюру. Основна властивість — Text.
Label
(позначка)
Standard Відображення тексту, який не з-змінюється користувачем. Ніякого оформлення тексту не передбачено, крім кольору позначки та тексту. Основна властивість — Caption.
ImageButton
(кнопка з графікою)
Buttons(компонент встановлювався) Використовується для створення кнопок, на яких розташовується декілька бітових зображень.
Image
(зображення)
Additional Використовується для відображення графіки: піктограм, бітовий матриць та метафайлів.
PaintBox
(вікно для малювання)
System Використовується для створення на формі деякої області, в якій можна малювати.
GroupBox
(групове вікно)
Standard Є контейнером, що об’єднує групу пов'язаних органів управління, таких, як радіокнопкі RadioButton, контрольні індикатори Checkbox і т.д.
Checkbox
(контрольний індикатор з прапорцем)
Standard Дозволяє користувачеві вмикати та вимикати опції програми.
MainMenu(головне меню)
Standard Дозволяє конструювати та створювати смугу головного меню форми та випадаючі меню. Компонент не-візуальний.
PageControl
(багато сторінкове вікно)
Win32 Дозволяє створювати сторінки у стилі Windows 95/98, керовані закладками чи іншими органами управління, для економії місця на робочому столі.
OLEContainer
(контейнер OLE)
System Використовується при створенні області клієнта для об'єкта OLE.

4.1.1 Edit

У компоненті Edit текст, що вводиться або виводиться, міститься у властивості Text. Цю властивість можна встановлювати в процесі проектування або вказувати програмно. Вирівнювання тексту, як це має місце в позначках і панелях, неможливо. Неможливе також і перенесення рядків. Текст, який не вміщується по довжині у вікно, просто зрушується, і користувач може переміщуватися по ньому за допомогою курсору.

Властивість AutoSize у вікнах редагування автоматично підлаштовує під розмір тексту тільки висоту, але не ширину вікна.

Вікна редагування забезпечені типовими комбінаціями «гарячих» клавіш: Ctrl-C — копіювання виділеного тексту у буфер обміну (команда Copy), Ctrl‑X — вирізання виділеного тексту в буфер (команда Cut), Ctrl-V — вставка тексту з буфера в позицію курсора (команда Paste), Ctrl-Z — скасування останньої команди редагування [10].

Edit можна використовувати і просто як компоненти відображення тексту. Для цього потрібно встановити в true його властивість ReadOnly і доцільно встановити AutoSelect в false. У цьому випадку користувач не зможе змінювати відображуваний текст, і вікно редагування стає подібним позначкам.

При використанні вікон редагування для введення, виводу та редагування чисел необхідно використовувати функції взаємного перетворення рядків та чисел. Для виведення це функції FloatToStr та IntToStr. При введенні це функції StrToFloat — перетворення рядка в значення з плаваючою комою, та StrToInt — перетворення рядка в ціле значення.

Якщо текст, що вводиться, не відповідає числу (наприклад, містить неприпустимі символи), то функції перетворення генерують виняток EConvertError. Тому в програмі необхідно передбачити обробку цього виключення. Наприклад, якщо ви бажаєте, щоб користувач міг вводити у вікно редагування Edit тільки цифри та символ точки, ви можете в обробник події OnKeyPress цього компоненту вставити оператор [2]:

ifnot (Key in ['0'..'9', ',']) then Key := #0;

Цей оператор підмінить усі символи, крім цифр та коми, нульовим символом, який не буде занесений в текст вікна Edit.

Властивість MaxLength визначає максимальну довжину тексту, що вводиться. Якщо MaxLength = 0, то довжина тексту не обмежена. В іншому випадку значення MaxLength вказує максимальне число символів, яке може ввести користувач.

4.1.2 Label

Компонент Label використовується для відображення різних написів на формі. Label — це позначки, що спеціально призначені для відображення тексту.


Рисунок 7 – Приклади виводу тексту у компонент Label

Текст, відображений в компоненті, визначається значенням властивості Caption. Її можна встановлювати в процесі проектування або задавати і змінювати програмно під час виконання програми. Наприклад [12]:

Label1.Caption:= 'Новый текст';

Якщо потрібно відобразити числову інформацію, можна скористатися функціями FloatToStr і IntToStr, що перекладають відповідно числа з плаваючою комою та цілі в рядок. Для формування тексту, який складається з декількох фрагментів, можна використовувати операцію «+», яка для строк означає їх склеювання (конкатенацію). Наприклад, якщо в програмі є ціла мінлива I, що відображає кількість співробітників деякої організації, то вивести в позначку Label1 інформацію про це можна оператором [2]:

Label1.Caption := 'Число сотрудников: '+IntToStr(I);

Колір фону компонента визначається властивістю Color, а колір напису — підвластивістю Color властивості Font.

Для позначки Label колір і шрифт — єдині доступні елементи оформлення напису. Таким чином, з точки зору оформлення тексту, що виводиться, Label надає мінімальні можливості.

Розміщення компоненту на формі визначається, зокрема, властивостями Тор (координата верхнього краю), Left (координата лівого краю), Height (висота), та Width (ширина). Є також властивості, що визначають зміну розміру компонента при зміні користувачем під час виконання додатка розмірів вікна. Це загальні властивості всіх віконних компонентів: Align (вирівнювання компонента по всій верхній, лівій, правій, нижній частинах контейнера або по всій його клієнтській області), Anchors (прив'язка сторін компонента до сторін контейнера), Constraints (обмеження припустимих змін розмірів).

Розмір позначок Label визначається також властивістю AutoSize. Якщо ця властивість встановлена в true, то вертикальний і горизонтальний розміри компоненту визначаються розміром напису. Якщо ж AutoSize дорівнює false, то вирівнювання тексту всередині компоненту визначається властивістю Alignment, яке дозволяє вирівнювати текст по лівому краю, правому краю або по центру клієнтської області позначки.

У позначці Label є властивість Wordwrap — допустимість переносу слів довгого напису, що перевищує довжину компонента, на новий рядок. Щоб такий перенос міг здійснюватися, потрібно встановити властивість WordWrap в true, властивість AutoSize в false (щоб розмір компоненту не визначався розміром напису) та зробити висоту компонента такою, щоб у ньому могло поміститися кілька рядків. Якщо WordWrap не встановлено в true при AutoSize, що дорівнює false, то довгий текст, що не вміщується в рамці позначки, просто обрізається (див. Рисунок 7) [9].

4.1.3 ImageButton

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

Це трохи вдосконалений в області відображення зображень та спрощений у всьому іншому компонент BitButton.

Компонент не має властивості Caption (напис), тому неможлива в ньому й зміна властивостей шрифту (Font), як це можливо в компоненті BitButton. Але це зовсім не означає, що ImageButton не може містити надписів — просто створювати їх необхідно як бітові зображення, використовуючи графічний редактор (наприклад, Abode Photoshop). Там же, при створенні зображення, задаються властивості напису (шрифт, колір, розмір і т. і.).

З інших властивостей BitButton компонент ImageButton має власивості:

• Cursor — тип курсору, коли він знаходиться на компоненті;

• Enabled — включення / вимикання кнопки;

• Height — висота компоненту в пікселях;

• Left — положення компонента по горизонталі;

• Name — ім'я компоненту;

• Top — положення компоненту по вертикалі;

• Width — ширина компоненту в пікселах.

Основна подія будь-якої кнопки — OnClick, що виникає при натисненні на неї. Саме в обробник цієї події записуються оператори, які повинні виконуватися при натисненні користувачем по кнопці.

4.1.4 Image и PaintBox

Компоненти Image та PaintBox представляють собою деяку обмежену поверхню з канвою, на яку можна заносити зображення. При цьому компонент PaintBox, власне кажучи, не дає нічого нового порівняно з малюванням на канві форми. Малювання на PaintBox замість форми не має ніяких переваг, окрім як деякого полегшення у розташуванні одного чи декількох малюнків на площі вікна.