Властивість Break використовується у довгих меню, щоб розбити список розділів на кілька стовпців. Можливі значення Break: mbNone — відсутність розбиття меню (це значення прийнято за замовчуванням), mbBarBreak та mbBreak — в меню вводиться новий стовпець розділів, відділений від попереднього смугою (mbBarBreak) або пропусками (mbBreak). На Рисунку 9 показаний приклад, в якому в розділі 1-3 встановлено значення Break = mbBreak, а в розділі 1-5 — Break = mbBarBreak [9].
Рисунок 9 – Приклад використання Break
Властивість Checked, встановлене в true, вказує, що в розділі меню буде відображатися маркер прапорця, який показує, що даний розділ обраний. Щоправда, сам по собі цей маркер не змінюється, і в обробник події OnClick такого розділу треба вставляти оператор типу [2]:
MName.Checked := not MName.Checked;Починаючи з Delphi 4 передбачена можливість введення в розділи меню зображень. За це відповідальні властивості розділів Bitmap та ImageIndex. Перший з них дозволяє безпосередньо ввести зображення в розділ, вибравши його із зазначеного вами файлу. Друге дозволяє вказати індекс зображення, що зберігається у зовнішньому компоненті ImageList. Вказівку на цей компонент ви можете задати у властивості Images компонента MainMenu. Індекси починаються з 0. Якщо ви вкажете індекс -1 (значення за замовчуванням), зображення не буде.
4.1.6 PageControl
Багатосторінкові панелі дозволяють заощаджувати простір вікна додатку, розміщуючи на одному і тому ж місці сторінки різного змісту. На Рисунку 10 показані різні форми відображення багатосторінкового компоненту PageControl [5].
Рисунок 10 – Форми відображення PageControl
Це панель, на якій можна розміщувати будь-які управляючі компоненти, вікна редагування і т. п. Сторінка має наступні основні властивості:
· Name —м'я, по якому можна посилатися на сторінку;
· Caption — напис, що з'являється на ярличку закладки;
· PageIndex — індекс сторінки, по якій можна посилатися на сторінку;
· ImageIndex — індекс зображення, яке може з'являтися на ярличку закладки;
З загальних властивостей компонента PageControl можна відзначити:
· Style — визначає стиль відображення компоненту: tsTabs — закладки (верхні компоненти на Рисунку 10), tsButtons — кнопки (лівий нижній компонент на Рисунку 10), tsFlatButtons — плоскі кнопки (правий нижній компонент на Рисунку 10);
· MultiLine — визначає, чи будуть закладки розміщатися в кілька рядів; якщо всі вони не поміщаються в один ряд (на Рисунку 10 вгорі два однакових компонента, але в лівому MultiLine = false, а у правому — true);
· TabPosition — визначає місце розташування ярличків закладок: tpBottom — знизу, tpLeft — зліва, tpRight — справа та tpTop — вгорі компоненту (це значення за замовчуванням і саме воно задано в прикладах Рисунку 10);
· TabHeight та TabWidth — висота і ширина ярличків закладок в пік-селях. Якщо значення цих параметрів задано рівним 0, то розміри ярличків визначаються автоматично за розмірами написів на них;
· Images — посилання на компонент ImageList, який містить список зображень на ярличках.
· ScrollOpposite — визначає спосіб переміщення закладок при розташуванні їх в декілька рядів;
· ActivePage — ім'я активної сторінки;
· Pages [Index: Integer] — доступ до сторінки з індексом (перша сторінка має індекс 0). Властивість тільки для читання;
· PageCount — кількість сторінок. Властивість тільки для читання.
Абревіатура OLE означає Objects Linked and Embedded (приєднання та вбудовані об'єкти). Дані, поділювані між додатками, називаються OLE-об'єктами. Програма, яка може містити OLE-об'єкти, має назву OLE-контейнера (OLE Container). Додаток, дані з якого можна включити в OLE-контейнер у вигляді OLE-об'єкту, називають OLE-сервером [11].
Як випливає з назви, OLE-об'єкти можна або приєднати до OLE-контейнера, або включити до нього. У першому випадку дані будуть зберігатися в файлі на диску; будь-який додаток буде мати доступ до цих даних і зможе вносити зміни. У другому випадку дані включаються в OLE-контейнер, і тільки він зможе переглядати і модифікувати ці дані.
OLE є подальшим розвитком ідеї поділюваних між додатками даних. OLE дозволяє легко вмонтувати в додаток обробку будь-яких типів даних. Кожен раз, коли в програмі-клієнті користувач звертається до OLE-об'єкту з метою перегляду або редагування даних (зазвичай подвійного клацання мишкою на об'єкті), запускається додаток-сервер, в якому і відбувається робота з даними [11].
Компонент OLEContainer і потрібен для створення додатків OLE-контейнерів. OLEContainer приховує всі складнощі, пов'язані з внутрішньою організацією OLE, і надає програмісту досить простий інтерфейс.
Вибрати OLE-сервер можна, двічі натиснувши на компоненті. З'явиться стандартний діалог Windows "Insert Object" (див. Рисунок 11).
Рисунок 11 – Вибір OLE-сервера
У цьому діалозі є список всіх зареєстрованих в системі OLE-серверів (реєстрація відбувається при інсталяції програми). Тип OLE-об'єкту визначається як раз тим сервером, який Ви вкажете. Якщо Ви створите новий об'єкт (Create New), то при натисканні на кнопку OK запуститься програма OLE-сервера, в якій і формується новий об'єкт. Після виходу з програми-сервера новий OLE об'єкт включається до програми.
Також OLE-об'єкт можна створити, використовуючи вже існуючий файл у форматі одного з OLE-серверів. Для цього потрібно вибрати пункт Create from File (див. Рисунок 12).
Рисунок 12 — Створення із файлу
Обраний об'єкт можна як включити до програми, так і приєднати, відзначивши пункт Link.
Якщо під час дизайну Ви обираєте об'єкт для включення в OLE-контейнер, то він повністю записується у файл форми (formName.dfm) і в подальшому прикомпілюється к .exe файлу. У випадку дуже великих об'єктів це може призвести до тривалих пауз і навіть до виникнення помилки "Out of resource". Тому рекомендується великі об'єкти робити приєднаними (linked).
OLEContainer дозволяє відображати в програмі об'єкт в його безпосередньому вигляді, з різним ступенем збільшення або зменшення (властивість Zoom), або у вигляді піктограми, що визначається у діалоговому вікні на малюнку 12 (Display as Icon).
Вибір OLE-об'єкта може відбуватися не тільки під час дизайну, але і під час виконання програми. Результати роботи з цим об'єктом можна зберегти у вигляді файлу і наступного разу відновити його звідти. Для цього OLEContainer має два методи: SaveToFile та LoadFromFile.
Компонент TrackBar являє собою елемент управління у вигляді повзунка, який користувач може переміщати курсором миші або клавішами клавіатури під час роботи додатку. Таким чином, користувач може керувати якимись процесами: гучністю звуку, розміром зображення і т. п. На Рисунку 13 наведені різні форми відображення повзунка [12]. Як видно з рисунку, він може розташовуватися горизонтально, вертикально, мати шкалу з різних сторін, мати якийсь виділений діапазон шкали.
Рисунок 13 – Різноманітні форми відображення повзунка
Основна властивість компоненту — Position. Цю властивість можна встановити під час проектування або програмно під час виконання додатку. При переміщенні користувачем повзунка можна прочитати значення Position, що характеризує позицію, в яку користувач перемістив повзунок. Для можливості такого читання є подія OnChange. У обробнику цієї події можна прочитати значення Position та використовувати його для керування якимось компонентом.
Властивість Position — ціла, значення якої може змінюватися в межах, що задаются властивостями Min та Мах. За замовчуванням Min = 0, Мах = 10, так що Position може приймати тільки 11 значень — від 0 до 10. Якщо задати більше значення Мах, відповідно збільшиться кількість можливих значень Position у діапазоні Min-Мах.
Властивість Orientation визначає орієнтацію повзунка: trHorizontal — горизонтальна, trVertical — вертикальна.
Властивість TickMarks вказує розміщення шкали щодо компонента і може приймати значення: tmBottomRight — знизу або праворуч, в залежності від орієнтації компоненту (верхній і правий компоненти на Рисунку 13), tmTopLeft — зверху або ліворуч у залежності від орієнтації компоненту (нижній компонент на Рисунку 13), tmBoth — з обох сторін (середній компонент на Рисунку 13).
Властивість TickStyle визначає спосіб зображення шкали. Воно може набувати значення: tsAuto — автоматичне промальовування шкали, tsNone — відсутність шкали, tsManual — програмне малювання шкали за допомогою методу SetTick (Value: Integer), який вміщує позначку шкали в позицію, відповідну величині Value. Мітки, що відповідають початку та кінцю шкали автоматично розміщуються і у випадку TickStyle = tsManual [12].
При TickStyle = tsAuto частота позначок шкали визначається властивістю Frequency. Ця властивість задає, скільки можливих значень Position лежить між позначками. Наприклад, якщо Frequency = 2, то позначки будуть відповідати тільки кожному другому можливому значенню позиції (таке значення Frequency задано у верхньому компоненті на Рисунку 13).
Властивості LineSize та PageSize визначають, наскільки зміщується повзунок, якщо користувач керує ним за допомогою клавіш зі стрілками або клавішами PageUp та PageDown відповідно.
Властивості SelStart і SelEnd дозволяють візуально виділити на шкалі де-який діапазон (див. середній компонент на Рисунку 13), який про щось говорить користувачеві (наприклад, рекомендований діапазон значень). При цьому ніщо не заважає користувачеві вийти за межі цього діапазону.
Визначення вимог до програми — один із найважніших етапів. На цьому етапі детально описується вихідна інформація та формулюються вимоги до результату. Крім того, описується поведінка програми в особливих випадках.