Використання компонента tcoolbar або як створювати Кульні панелі інструментів

Головна »Статті з програмування» Delphi - Все статті »

Обговорити на форумі

Більшість сучасних додатків Windows мають кілька панелей інструментів (тулбаров). У їх числі, такі поширені програмні продукти як Microsoft Internet Explorer, MS Word і Delphi IDE. У цій статті розповідається про компоненті-контейнері CoolBar, який може містити інші компоненти, такі як тулбари, що випадають списки і т.д.

Компонент TCoolBar, це новий різновид TToolBar. TCoolBar це елемент управління, який зазвичай містить в собі два або більше TCoolBand-ів, розміри і місце розташування яких можна змінювати під час виконання програми. CoolBand в свою чергу є областю елемента управління, яка може містити інші віконні контроли, головним чином панелі інструментів, віконця редагування, що випадають списки і анімація.

Створити coolbar досить просто: досить помістити компонент CoolBar з набору Win32 VCL на форму. У CoolBar-а є досить багато налаштувань (настройка здійснюється через властивості): Align - за замовчуванням, розташування Coolbar налаштоване на верхню частину вікна, тому, щоб змінити розташування кулбара, нам прийдеться підредагувати це властивість; Bitmap - використовується для зафарбовування фону CoolBar-а картинкою; властивість FixedOrder визначає, чи може користувач перевизначити порядок панелей.

Найцікавіша можливість CoolBar-а, це те, що він може містити в собі елементи управління, відмінні від кнопок.

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

Під час виконання програми користувач може змінювати місце розташування елементів управління шляхом переміщення і, тим самим змінюючи розмір.

Вам хочеться додати ще компонентів?

Як згадувалося вище, на CoolBar можна додавати різні віконні компоненти. Віконні компоненти, це ті, які успадковані від TWinControl. Це означає, що Labels і Shapes, наприклад, не вийде додати на CoolBar. Однак, якщо уважно подивитися на Delphi IDE, то можна виявити, що coolbar може так само містити меню, хоча меню і не є віконним компонентом. Значить повинен бути спосіб додавати на кулбар неоконів компоненти!

Кульні менюшки на Cool Band-ах
Отже, спершу, нам необхідно розмістити на формі компонент MainMenu і додати в нього пункти за допомогою Menu designer. Зверніть увагу, що коли ми поміщаємо компонент TMainMenu на форму, то значення властивості форми Menu встановлюється в MainMenu1. Нам необхідно очистити це властивість і тим самим відключити об'єкт MainMenu від форми, тому що нам необхідно використовувати його в Coolbar-е.
Далі, додаємо Toolbar в Coolbar а так само додаємо кілька ToolButton - один ToolButton для кожного меню, що випадає. Якщо, наприклад, у Вас два меню верхнього рівня File і Edit, то додати необхідно всього два ToolButton-а.
Далі, встановлюємо властивості тулбару. Flat і ShowCaptions встановлюємо в True. Властивості AutoSize і Grouped компонента ToolButton так само повинні бути встановлені в True. І, на закінчення, з'єднуємо кожну кнопку з випадає меню, використовуючи для цього властивість MenuItem.

Ось так повинен виглядати результат виконаних кроків (запущена програма):

трохи програмування

Під час виконання програми, можна додавати CoolBand-и. Наступний код, додає CoolBand на CoolBar з розміщеним на ньому TDateTimePicker.

ЗАУВАЖЕННЯ: як згадувалося раніше, розміщення контрола в кулбаре змушує об'єкт TCoolBar створити TCoolBand і помістити елемент управління в band-е. За допомогою "CoolBar1.Bands.Items [count - 1]" ми пов'язуємо текст з останнім створеним TCoolBand.
ЗАМЕЧАНІЕ2: Пам'ять компонента TDateTimePicker автоматично звільняється при звільненні пам'яті батька. Відбувається це, коли додаток завершується і CoolBar знищується формою.

Процедура CreateDatePickerOnCoolBar всього навсього створює TDateTimePicker на кулбаре CoolBar. Для того, щоб використовувати події TDateTimePicker, нам необхідно створити процедури обробників подій. Не будемо вдаватися в подробиці створення об'єктів в Delphi. Для створення обробника події для TDateTimePicker, нам необхідно написати метод (процедуру) деякого об'єкта (зазвичай для цього вибирають головну форму) з такою ж кількістю параметрів, з такими ж типами і іменами параметрів. Потім, в коді, змініть ім'я процедури на таке ж ім'я властивості TDateTimePicker, обробляти яке Ви хочете. Після цього нова процедура автоматично стане обробником події для цього об'єкта.

В кінці процедури CreateDatePickerOnCoolBar додайте

OnCloseUp відбувається, коли випадає календар закривається. А тепер використовуємо цю подію, щоб передати дату з DateTimePicker в компонент Memo:

TControlBar

TCoolBar це стандартний Win32 елемент управління, який є частиною операційної системи. Перевірте, чи присутній компонент TControlBar на додатковій закладці набору компонент. TControlBar це рідний компонент VCL, який працює практично так само як і кул бар. Цей компонент не використовує в своїй роботі COMCTL32.DLL, як це робить TCoolBar, тому менш сприйнятливий до примх Microsoft.

посилання
Див. Демонстрашку Webbrows Delphi в директорії coolstuf яка демонструє використання TCoolbar.

Компонент TMenubar. Це нащадок TToolbar, що має властивість меню, яке дозволяє пов'язувати TMainMenu з панеллю інструментів (toolbar). Після цього компонент включає всі пункти меню в панель інструментів.

Форум Програміста
Новини
Огляди
магазин Програміста
Каталог посилань
Пошук
Додати файл
Зворотній зв'язок

Схожі статті