Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Поняття активного компоненту

Читайте также:
  1. I. Поняття про екосистему.
  2. Алгоритм активного слушания в диалоге
  3. Аналіз ступеня вільності механізму. Наведемо визначення механізму, враховуючи нові поняття.
  4. Базові поняття управління проектами
  5. Валютне право як інститут фінансового права: поняття, особливості
  6. Ведення РіІНР у зонах радіоактивного зараження.
  7. Вимоги до визначення поняття у словнику

Один з компонентів можна вибрати, натиснувши над ним ліву кнопку миші, після чого він стане «активним», про що свідчить габаритна рамка навколо нього. Рамка призначена для зміни розмірів візуальних компонентів, а для невізуальних просто указує на активність компоненту. На мал. 3 активним є невізуальний компонент.

Проте зміна розмірів - не єдиний привід зробити компонент активним, а найбільш істотні можливості реалізовані в Інспекторові об'єктів (екземплярів компонентів), який за умовчанням знаходиться в лівій частині вікна. Якщо Інспектор об'єктів відсутній на екрані або прихований іншими вікнами, його можна викликати за допомогою пункту головного меню View->Object inspector, або натиснувши клавішу F11.

Передбачена можливість вибору декількох компонентів одночасно, вибираючи їх при натиснутій клавіші Shift.

Інспектор об'єктів

Інспектор об'єктів призначений для зміни всіх published-свойств, описаних в компоненті, і складається з двох частин - заголовка, в якому вказана назва активного об'єкту і його тип (назва класу), і блокнота з двома закладками: Properties (англ. Properties - властивості), на якій в табличній формі представлені властивості, які не є посиланнями на підпрограми-обробники подій, і Events (англ. Events - події), на якій в аналогічній формі представлені властивості, що є посиланнями на підпрограми-обробники подій. Варіанти Інспектора об'єктів з вибраними закладками Properties і Events представлені на мал. 4 і 5. Як видно із заголовка Інспектора, активним об'єктом є BitBtn1 - екземпляр компоненту TBitBtn.

Мал. 4. Закладка Properties Інспектора об'єктів Мал. 5. Закладка Events Інспектора об'єктів

Published-властивості компоненту можуть мати різні типи даних, як прості, наприклад, Integer або Double, або складніші, наприклад string, так і складні, наприклад, записи і масиви. Інспектор об'єктів має можливість відображати і змінювати значення властивостей різних типів даних на основі зареєстрованих в IDE редакторів властивостей. Кожен компонент, що містить властивості нестандартних (не вхідних до складу інсталяційного пакету Delphi) типів даних, повинен при додаванні його в Палітру компонентів реєструвати власні редактори властивостей.

Таким чином, розробник програми не повинен піклуватися про коректність відображення значень в Інспекторові об'єктів - її підтримує розробник компонентів. Якщо властивість компоненту має на увазі наявність підвластивостей (полів), то зліва від нього в таблиці на закладці Properties відображається символ «+». При натисненні на цей символ мишею властивість розгортається і з'являється можливість редагування його полів (див. властивості Anchors і Constraints).

Права частина таблиці властивостей містить поля введення значень, причому для зручності розробника значення можна не тільки вводити, але і вибирати із списків допустимих значень. Це стосується, перш за все, властивостей типу Boolean (у списку вибору представлені значення True і False), а також властивостей перерахованих типів (у списках вибору знаходяться константи, вказані при описі відповідних типів даних).

При створенні екземпляра компоненту всі його властивості, представлені на закладці Properties заповнюються початковими значеннями, оскільки мають на увазі під собою наявність деяких структур даних усередині об'єкту, причому нерідко залежних один від одного. З властивостями, розташованими на закладці Events, ситуація протилежна: при створенні компоненту вони не заповнені і мають порожні значення.

Дані властивості є посиланнями на підпрограми-обробники подій, що викликаються при появі якої-небудь події в системі, пов'язаної з даним компонентом. Спочатку значення таких властивостей - nil - порожнє посилання, тобто при виникненні події не буде викликаний ніякий метод. Значення nil не відображається в Інспекторові об'єктів, замість нього там знаходиться порожній рядок. Якщо властивості відповідає який-небудь метод, то замість посилання на нього відображається його назва.

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

Таким чином, в Delphi реалізований наступний принцип обробки подій: кожній події може відповідати один обробник, проте один і той же обробник може відповідати декільком подіям.

Спільні властивості візуальних компонентів

1. Розміщення та розміри елементу керування на екрані

Розміщення візуального компоненту (елементу керування) на екрані задається в точках відносного вікна компоненту-контейнера, в якому знаходиться даний компонент, і міститься в цілочисельних властивостях Left і Тор. Розміри компоненту також задаються в точках і містяться у властивостях Width і Height:

property Left: Integer;

property Тор: Integer;

property Width: Integer;

property Height: Integer;

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

2. Автоматичне управління розміщенням

При зміні розмірів вікна, в якому знаходяться візуальні компоненти, з'являється додаткова область, з урахуванням якої можна розташувати інтерфейсні елементи для досягнення більшої зручності користувача. Характеристики положення компонентів можуть бути змінені в обробнику події OnResize форми за допомогою властивостей Left, Тори, Width і Height, проте такий підхід є трудомістким і практично зводить нанівець сенс візуальної побудови додатку. При цьому самі візуальні компоненти забезпечені засобами автоматичної зміни свого положення залежно від розмірів форми. Поведінка компонентів визначається властивостями Align, Anchors і Constraints.

Прив'язка візуального компоненту до однієї із сторін контейнера

Властивість Align (англ. Align - вирівнювання) управляє автоматичною зміною розміру і положення візуального компоненту, прив'язуючи його до однієї із сторін компоненту-контейнера і має перелічуваний тип TAlign.

property Align: TAlign;

Type Talign = (alNone, alTop, alBottom, alLeft, alRight, alClient, alCustom);

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

Можливі значення властивості Align приведені в таблиці 1.

Таблиця 1.

Можливі значення властивості Align.

Значення Вирівнювання Примітка
alNone Компонент не стежитьза змінами контейнера, в якому він знаходиться  
alTop При установці даного значення компонент розташовується у верхній частині контейнера, займаючи всю його ширину. При змінах розмірів контейнера автоматично змінюється ширина компоненту, висота залишається незмінною Використання властивості Width не приводить до зміни ширини компоненту
alBottom При установці даного значення компонент розташовується в нижній частині контейнера, займаючи всю його ширину. При змінах розмірів контейнера автоматично змінюється ширина компоненту, висота залишається незмінною Використання властивості Width не приводить до зміни ширини компоненту
alLeft При установці даного значення компонент розташовується в лівій частині контейнера, займаючи всю його висоту. При змінах розмірів контейнера автоматично змінюється висота компоненту, ширина залишається незмінною Використання властивості Height не приводить до зміни висоти компоненту
alRight При установці даного значення компонент розташовується в правій частині контейнера, займаючи всю його висоту. При змінах розмірів контейнера автоматично змінюється висота компоненту, ширина залишається незмінною Використання властивості Height не приводить до зміни висоти компоненту
alClient При установці даного значення компонент займає всю внутрішню область контейнера. При змінах розмірів контейнера автоматично змінюються ширина і висота компоненту Використання властивостей Width і Height не приводить до зміни розмірів компоненту

Налаштування автоматичної зміни положення сторони компоненту відповідно до такої ж сторони його контейнера

Множинна властивість Anchors (англ. Anchors - якорі) визначає, чи слід змінювати положення якої-небудь сторони компоненту відповідно до такої ж сторони його контейнера:

property Anchors: TAnchors;

Опис типу TAnchors виглядає таким чином:

Туре

TAnchorKind = (akTop, akLeft, akRight, akBottom);

TAnchors = Set Of TAnchorKind;

Можливі значення властивості Anchors приведені в таблиці 2.

Таблиця 2

Можливі елементи множини Anchors

Елемент Зміна поведінки
akLeft При включенні даного елементу в множину Anchors положення лівої сторони елементу управління (тобто значення властивості Left) не змінюється при зміні розмірів контейнера. Якщо елемент не включений в множину, ліва межа елементу управління переміщається услід за правою межею контейнера
akTop При включенні даного елементу в ьножину Anchors положення верхньої сторони елементу (тобто значення властивості Тор) управління не змінюється при зміні розмірів контейнера. Якщо елемент не включений в множину, верхня межа елементу управління переміщається услід за нижньою межею контейнера
akRight При включенні даного елементу в множину Anchors права сторона елементу управління переміщається услід за правою стороною контейнера. При цьому, якщо в множині присутній елемент akLeft, змінюється ширина компоненту (властивість Width)
akBottom При включенні даного елементу в множину Anchors нижня сторона елементу управління переміщається услід за нижньою межею контейнера. При цьому, якщо в множині присутній елемент akTop, змінюється висота компоненту (властивість Height)

Елементи множини Anchors використовуються парами - akLeft спільно з akRight, а akTop спільно з akBottom. При різних значеннях елементів в парах, елемент управління або змінює свої розміри, або змінюється його положення, або стан елементу управління відповідає початковому (таблиця 3).

Таблиця 3

Автоматична зміна положення елементу управління

  akRight (akBottom)
  True False
akLeft(akTop True Зміна ширини (висоти) відповідно зміні ширини контейнера Без змін
False Переміщення без зміни розміру відповідно зміні ширини контейнера Переміщення без зміни розміру на величину, меншу, ніж зміна розмірів контейнера

Початкові значення, що встановлюються при додаванні візуального компоненту на форму, підібрані так, щоб положення елементу управління не змінювалося при зміні розміру контейнера. Тобто множина Anchors складається з елементів fkLeft і akTop, що указує на необхідність прив'язки лівого верхнього кута компоненту до лівого верхнього кута контейнера, і відсутність прив'язки правого нижнього кута компоненту до правого нижнього кута контейнера.

 

Задання мінімально і максимально можливих розмірів компонентів

І, нарешті, перейдемо до розгляду властивості Constraints, керівника мінімально і максимально можливими розмірами компоненту:

propertyConstraints: TSizeConstraints;

Тип даних, з яким описана ця властивість, є класом з чотирма основними полями MaxHeight,MaxWidth,MinHeight і MinWidth.що визначають відповідно максимальну висоту і ширину елементу управління, а також його мінімальну висоту і ширину.

Властивість Constraints може бути корисна при використанні автоматичної зміни розмірів компоненту, описаного вище, для обмеження меж такої зміни. Наприклад, за допомогою властивості Constraints можна задати мінімальні розміри панелі з елементами управління, щоб користувач міг мати до них доступ незалежно від розміру вікна.

3. Дружня поведінка елементів управління

Зміна виду курсора миші при наведенні на компонент

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

У Delphi також реалізована зміна курсора миші при наведенні її на компонент. Курсор, який слід відобразити, знаходиться у властивості Cursor всіх спадкоємців класу TСontrol:

property Cursor: TCursor

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

Використання спливаючих підказок

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

Для підтримки підказок використовується властивість Hint (англ. Hint - транспарант), що містить рядок, що виводиться як підказка, і властивість ShowHint вказує, чи слідує підказку використовувати.

property Hint: string;

property ShowHint: Boolean;

Завдання 1. Створити проект який містить декілька візуальних компонентів та демонструє можливості викладені в теоретичних відомостях:

· збереження проекту в окремій папці;

· створення обробника події onClick для одного з компонентів(реакцією на подію повинна бути зміна назви в заголовку форми);

· використати різні способи вирівнювання компонентів;

· забезпечити зміну розмірів компонентів при зміні розмірів форми;

· для кожного компоненту задати різний вигляд курсору та виведення підказки.

Завдання 2. Оформити звіт у якому вказати наступну інформацію:

· перелік компонентів(назви змінних) які використовувались у проекті, та їх призначення;

· для кожного компоненту вказати властивості які змінювались на етапі візуального конструювання форми і записати їх значення.

 


Дата добавления: 2015-07-11; просмотров: 142 | Нарушение авторских прав


Читайте в этой же книге: Нарахування зарплати | Особливості обліку ПДФО | Виплата зарплати | Введення початкових залишків по зарплаті | Типізовані покажчики | Динамічні масиви | Визначення типу варіантних змінних | Автоматичне приведення типів | Варіантні масиви | Знищення варіантних змінних |
<== предыдущая страница | следующая страница ==>
Головне меню| Основні засоби як об'єкти обліку

mybiblioteka.su - 2015-2024 год. (0.017 сек.)