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

БІБІЛІОТЕКА ВІЗУАЛЬНИХ КОМПОНЕНТ

План

1. Візуальні компоненти

2. Візуальні компоненти та їх спільні властивості

3. Події які виникають для візуальних компонент

4. Методи для роботи з візуальними компонентами

 

Візуальні компоненти

Для створення інтерфейсу додатків Delphi пропонує великий набір візуальних компонентів, головні з який розташовуються на вкладках Standard, Additional і Win32 Палітри компонентів. Їх називають відповідно стандартними, додатковими і 32-розрядними (введеними в Windows 95) компонентами.

Такий розподіл компонентів обумовлено, мабуть, назвами вкладок (сторінок), а не функціональним призначенням або важливістю компонентів, тому що грань, наприклад, між стандартними і додатковими керуючими елементами нечітка, кнопка SpeedButton (вкладка Additional) використовується при створенні панелей інструментів додатка і достатньо давно є головним керуючим елементом Windows, a кнопки Button і BitBtn, розташовуючись на різних вкладках, практично не відрізняються по функціях.

На вкладці Standard (мал.2) палітри компонентів знаходяться інтерфейсні компоненти, більшість із яких використовувалися в перших версіях Windows:

· Frames - Фреймы

· MainMenu - Головне меню

· РopupMenu - Спливаюче меню

· Label - Надпис

· Edit - Однорядковий редактор

· Memo - Багаторядковий редактор

· Button - Стандартна кнопка

· СheckBox - Незалежний перемикач (прапорець)

· RadioButton - Перемикач

· ListBox - Список

· СomboBox - Поле зі списком

· ScrollBar - Смуга прокручування

· GroupBox - Група

· RadioGroup - Група залежних перемикачів

· Panel - Панель

· ActionList - Список дій

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

Мал.2. Вкладка Standard

На сторінці Additional (мал.3) палітри компонентів знаходяться наступні компоненти:

· BitBtn - Кнопка з малюнком

· SpeedButton - Кнопка швидкого доступу

· MaskEdit - Однорядковий редактор із використанням даних по шаблону

· StringGrid - Таблиця рядків

· DrawGrid - Таблиця

· Іmage - Графічний образ

· Shape - Геометрична фігура

· Bevel - Фаска

· ScrollBox - Область прокручування

· CheckListBox - Список перемикачів

· Splitter - Роздільник

· StaticText - Статичний текст

· ControlBar - Контейнер для панелі інструментів

· АpplicationEvents - Події додатка

· Chart - Діаграма

Мал.3. Вкладка Additional

На сторінці Win32 (мал.4) палітри компонентів знаходяться компоненти, що відносяться до нового 32-розрядного інтерфейсу Windows:

· TabСontrol - Вкладка

· PageControl - Блокнот

· ІmageList - Список графічних образів

· RichEdit - Повнофункціональний текстовий редактор

· TrackBar - Бігунець

· ProgressBar - Індикатор ходу робіт

· UpDown - Лічильник

· HotKey - Редактор комбінацій гарячих клавіш

· Animate - Перегляд відеокліпів

· DateTimePicker - Рядок введення дати

· MonthCalendar - Календар

· TreeView - Дерево об'єктів

· ListView - Список

· HeaderControl - Роздільник

· StatusBar - Рядок станe

· ToolBar - Панель інструментів

· CoolBar - "Крута" панель інструментів

· PageScroller - Прокручування зображень

Мал.4. Палітра Win32

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

Властивості дозволяють керувати зовнішнім виглядом і поводженням компонентів при створенні і при виконанні додатка. Встановлення значень більшості властивостей компонентів звичайно виконується при створенні додатка за допомогою Інспектора об'єктів (Object Inspector). У наведених прикладах для наочності властивостям присвоюються значення за допомогою оператора присвоювання.

Відзначимо, що окремі компоненти мають не всі аналізовані нижче властивості. Наприклад, редактор Edit не має властивості caption, а напис Label - властивості Readonly.

Властивість Caption типу TCaption містить рядок для напису заголовка компонента. Відзначимо, що тип TCaption аналогічний типу String. Окремі символи в заголовку можуть бути підкреслені, вони позначають комбінації клавіш швидкого доступу. Натискання клавіші з показаним символом при натиснутій клавіші <Alt> викликає ту ж дію, що і натискання кнопки миші на елементі керування з цим заголовком. Для визначення комбінації клавіш необхідно поставити в заголовку перед відповідним символом знак &, наприклад:

Buttoni.Caption:='&Close'; <Alt>+<С>

Label1.Caption:='за&дайте своє ім‘я'; <Alt>+<Д>

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

Властивість Align типу TAlign визначає варіант вирівнювання компонента всередині контейнера, у якому знаходиться цей компонент. Найчастіше в ролі такого контейнера виступає форма Form або панель Рanel. Вирівнювання використовується у випадках, коли потрібно, щоб якийсь інтерфейсний елемент займав фіксоване місце щодо його контейнера незалежно від зміни розмірів останнього. Для деяких компонентів, наприклад, кнопки Button, ця властивість доступно тільки під час виконання програми.

Властивість Align може приймати одне з таких значень:

alNone - вирівнювання не використовується. Компонент по замовчуванню знаходиться на тому місці, куди був поміщений при розробці додатка

alTop - компонент переміщається у верхню частину контейнера, висота компонента не змінюється, а його ширина стає рівній ширині контейнера

alBottom - аналогічно дії alTop, але компонент переміщається в нижню частину контейнера

alLeft - компонент переміщається в ліву частину контейнера, ширина компонента не змінюється, його висота стає рівній висоті контейнера

alRight - аналогічно дії alLeft, але компонент переміщається в праву частину контейнера.

alСlient - компонент займає весь контейнер

Властивість Color типу TColor визначає колір фону (поверхні) компонента. Тип ТСо1ог описаний у такий спосіб:

 

Властивість Сtl3D типу Boolean дозволяє задати вид візуального компонента. Якщо значення властивості Сtl3D дорівнює False, то компонент має двомірний вигляд, якщо дорівнює True - то тривимірний (по замовчуванню). Ефект трьохмірності (об'ємності) створюється поглибленням об'єкта щодо поверхні контейнера. Ця властивість ставиться не до всіх компонентів, наприклад, напис Label її немає.

Властивість Cursor типу TCutsor визначає вид покажчика миші при розміщенні його в області компонента. Delphi 5 пропонує більше 20 видів покажчика миші і відповідних їм констант, головними з яких є такі:

crDefault - покажчик має вигляд по замовчуванню (звичайна стрілка)

crNone - покажчик не видимий

crСross - покажчик має вигляд хреста

crHourGlass - покажчик має вигляд піскового годинника

Крім того, можна самостійно розробляти нові малюнки для покажчика миші, зберігаючи їх у файлах ресурсів відповідних форматів (CUR, RES).

Властивість DragCursor типу TCursor визначає вид покажчика миші при переміщенні компонентів. Значення цієї властивості не відрізняються від значень властивості cursor.

Властивість Enabled типу Boolean визначає активність компонента, тобто його спроможність реагувати на повідомлення, що надходять, наприклад, від миші або клавіатури. Якщо властивість має значення True (по замовчуванню), то компонент активний, в іншому випадку неактивний. Неактивний стан виділяється кольором, при цьому заголовок або текст неактивного компонента стає блідим.

Властивість Font типу TFont визначає шрифт тексту, що відображається на візуальному компоненті. У свою чергу, клас TFont містить властивості, що дозволяють управляти параметрами шрифту.

Властивості Height і Width типу Integer вказують відповідно вертикальний і горизонтальний розміри компонента в пикселах.

Властивості Left і Тор типу Іnteger визначають координати лівого верхнього кута щодо його контейнера. Сама форма також є компонентом; її координати обчислюються від лівого верхнього кута екрана монітора. Властивості Left і Тор разом із Height і Width задають розміщення і розмір компонента.

Властивість HelpContext типу THelpContext задає номер контексту довідкової системи. Якщо при виконанні програми компонент має фокус введення, то натискання клавіші <F1> призводить до відображення на екрані контекстної довідки, пов'язаної з даним компонентом.

Властивість Hint типу string задає текст підказування, відображуваний в тому випадку, коли курсор знаходиться в області компонента і деякий часнерухомий. Підсказування являє собою поле жовтого (по замовчуванню) кольору, на якому відображається текст, що пояснює призначення або використання компонента. Для того щоб підсказування відображалося, необхідно встановити значення True властивості ShowHint типу Boolean. По замовчунню ShowHint має значення False, і підсказування не відображаються.

Властивість PopupMenu типу TPopupMenu вказує локальне спливаюче (контекстне) меню, що з'являється при натисканні правої кнопки миші, якщо вказівник розміщенний в області компонента. Щоб асоційоване з компонентом меню з'являлося при натискуванні правою кнопкою миші, потрібно також задати значення True властивості AutoРopup типу Boolean. По замовчуванню воно має значення False.

Властивість Text типу TCaption подібно властивості Сaption містить стрічку пов'язану з компонентом. На відміну від властивості Сaption, значення властивості Text з'являється не як заголовок, а як вміст елемента компонети Наприклад, для компонентів Edit і Memo значення властивості Text відображається всередині них як що редагуються символьні дані.

Властивість TabOrder типу TTabOrder визначає порядок одержання компонентами фокуса введення при натисканні клавіші <Таb>, тобто послідовність обходу (табуляції) компонент. По замовчуванню ця послідовність визначається при конструюванні форми порядком розміщення компонентів в контейнер: для першого компонента властивість TabOrder має значення 0, для другого - 1 і т.д. Властивість TabOrder використовується спільно з властивістю TabStop типу Boolean, що вказує на можливість одержання фокуса компонентом. Якщо властивість TabStop має значення True, то елемент може одержувати фокус, якщо False - не може.

Властивість ReadОnly типу Boolean визначає, чи дозволено керуючому елементу, пов'язана з запровадженням і редагуванням інформації, змінювати текст, що знаходиться в ньому. Якщо властивість ReadОnly має значення True, то текст в елементі редагування доступний тільки для читання. Якщо властивість має значення False (по замовчуванню), то можна редагувати текст.

Візуальні компоненти для таких властивостей, як Сolor, Сtr3D, Font i ShowHint, можуть приймати значення відповідних властивостей батьківського елемента керування, наприклад, форми. Подібне спадкування дозволяє просто і зручно змінювати значення параметрів одночасно для багатьох компонентів. Для цього достатньо встановити потрібне значення властивості батька цих компонентів. Якщо програміст вручну змінює для компонента який успадковує властивості, то відповідна ознака спадкування автоматично встановлюється в значення False. Таким чином, надалі компонент приймає для цієї властивості своє власне значення, а не батьківське, і при необхідності спадкування програміст повинен сам встановити ознаку спадкування в значення True.

Властивість Parent типу TWinControl указує на батьківський елемент керування для компонента. Батьківський елемент є контейнером для розміщення в ньому інших компонент і відповідає за промальовування всіх підпорядкованих компонентів. При динамічному створенні візуальних компонентів під час виконання програми програміст повинний самостійно встановити значення властивості parent нового компонента так, щоб це значення вказувало на контейнер, у якому компонент повинен знаходитися і відображатися.

У компонентів є подібна на властивість Parent властивість Owner типу TComponent, що вказує на елемент-власник компонента. Звичайно власником компонентів є форма, на якій вони розташовані. При видаленні компонента віддаляться всі інші компоненти, власником яких він є.

Властивість DragMode типу TDragMode використовується при програмуванні операцій, пов'язаних із переміщенням об'єктів способом drag-and-drop (перемістити і лишити), і визначає поводження елемента керування при його переміщенні за допомогою миші. Властивість DragMode може приймати одне з двох значень: dmAutomatic і dmManual. По умовчанню воно має значение dmManual, тому елемент керування не можна переміщати, поки не буде викликаний метод BeginDrag. Якщо даній властивості задати значення Manual, то елемент керування можна переміщати мишею в будь-який момент. Крім установлення властивості DragMode необхідного значення програміст повинний виконати кодування дій, що управляють перемещеням елемента, тобто підготувати процедуру опрацювання подій, пов'язаних з операцією переміщення. При організації спільного використання декількох взаємозв‘язаних керуючих елементів можна застосовувати спеціальний компонен ActionList. Він призначений для централізованого керування різноманітними елементами, наприклад такими, як кнопка Button і пункт меню MenuІtem. Зв'язок між керуючим елементом і об'єктом дії, який міститься в компоненті ActionList, виконується через властивість Action типу TBasicAction керуючого елемента.