Компоненти заголовків HeaderControl і Header є компонентами, за допомогою яких можна управляти розміщенням розташованих під ними панелей. Тема складається з ряду секцій, причому користувач під час виконання програми може змінювати ширину окремих секцій за допомогою миші.
Завдання 5. Вивчити компоненти заголовків.
Почніть новий проект. Перенесіть на форму зі сторінки Win32 компонент HeaderControl. За замовчуванням властивість Align задано рівним alTop. що забезпечує розміщення компонента у верхній частині вікна форми. Змініть це властивість на alNone і розмістіть компонент в будь-якому місці.
Основна властивість компонента HeaderControl - Sections. Воно є списком об'єктів типу THeaderSection. кожен з яких описує одну секцію заголовка.
Після того, як секція додана, у вікні Інспектора Об'єктів з'явиться безліч властивостей цього об'єкта.
У властивості Text задайте текст заголовка, наприклад секція 1.
Властивості MinWidth і MaxWidth визначають відповідно мінімальну і максимальну ширину секції в пікселах. Тільки в цих межах користувач може змінювати під час виконання ширину секції курсором миші. Значення ширини за замовчуванням задається властивістю Width.
Задайте 3-4 секції.
Виконайте додаток. Переконайтеся, що ширина секцій під час виконання змінюється курсором миші, а при натисканні користувача на секції вона поводиться як кнопка.
При зміні ширини секції під час виконання генерується подія OnSectionResize. В обробник цієї події треба вставити оператори, синхронно змінюють ширину того, заголовком чого є секція: це може бути якась панель, таблиця, зображення і т.п.
Властивість AllowClick. рівне за замовчуванням true. визначає поведінку секції як кнопки при натисканні користувача на ній. В цьому випадку при натисканні генерується подія OnSectionClick. в обробник якого і треба вставити оператори, які виконують необхідні дії.
Властивість Style може мати значення hsText - в цьому випадку в заголовку відображається значення властивості Text. або hsOwnerDraw- в цьому випадку Ви зможете бачити те, що малюється безпосередньо на канві операторами, записаними в обробнику події OnDrawSection.
Компонент Header володіє істотно меншими можливостями, ніж HeaderControl. тому розглядати його не будемо.
Таймер - компонент Timer
Компонент Timer дозволяє задавати в додатках інтервали часу. Таймер - невізуальний компонент, який може розміщуватися в будь-якому місці форми. Він має дві властивості, що дозволяють їм управляти: Interval - інтервал часу в мілісекундах і Enabled - доступність. Властивість Interval задає період спрацьовування таймера. Через заданий інтервал часу після попереднього спрацьовування, або після програмної установки властивості Interval. або після запуску програми, якщо значення Interval встановлено під час проектування, таймер спрацьовує, викликаючи подія OnTimer. У обробнику цієї події записуються необхідні операції.
Якщо задати Interval = 0 або Enabled = false, то таймер перестає працювати. Щоб запустити відлік часу, треба або задати Enabled = true. якщо встановлено позитивне значення Interval. або задати позитивне значення Interval. якщо Enabled = true.
Наприклад, якщо потрібно, щоб через 5 секунд після запуску додатка закрилася форма - заставка, яка відображає логотип програми, на ній треба розмістити таймер, задати в ньому інтервал Interval = 5000, а в обробник події OnTimer вставити оператор Close. закриває вікно форми.
Якщо необхідно в деякій процедурі запустити таймер, який відрахував б заданий інтервал, наприклад, 5 секунд, після чого виконати деякі операції і відключити таймер, це можна зробити наступним чином. При проектуванні таймер робиться доступним (Enabled = true), але властивість Interval задається рівним 0. Таймер не працюватиме, поки в момент, коли потрібно запустити таймер, не виконається оператор
Через 5 секунд після цього настане подія OnTimer. У його обробнику треба задати оператор
який відключить таймер, після чого можна виконувати необхідні операції.
Інший еквівалентний спосіб вирішення завдання - використання властивості Enabled. Під час проектування задається значення Interval = 5000 і значення Enabled = false. У момент, коли треба запустити таймер, виконується оператор
В обробник події OnTimer. яке настане через 5 секунд після запуску таймера, можна вставити оператор
який відключить таймер.