Меню в стилі Windows XP (исходники), Різне, Програмування, статті

Я вже встановив собі Delphi 7, а ти вже зробив те ж саме? Якщо ні, то нічого страшного. Сьогоднішній приклад буде працювати і в Delphi 6, тільки працювати буде не все, але більшість. Я буду розповідати на прикладі 7-й версії, а різницю (вона невелика) покажу окремо.

Мене довгий час бентежили компоненти ActionManager, ActionMainMenuBar і ActionToolBar на закладці Additional. Я довгий час був консерватором і любив використовувати класичні ToolBar і MainMenu. Але недавно я вирішив перебороти себе і спробувати написати програму за допомогою нових компонентів. Я був у захваті, тому вирішив поділитися своїм досвідом і показати всі плюси нових компонентів.

Отже, створюємо новий проект і поміщаємо на головну форму по одній копії компонентів ActionManager, ActionMainMenuBar і ActionToolBar. Для більшої краси потрібно помістити на форму ще й набір картинок ImageList з закладки Win32. У цей набір потрібно додати купу картинок розміром 16х16 для твоїх майбутніх кнопок. Після цього вирізняєш ActionManager і у властивості Images потрібно вказати створений набір картинок.



Рисунок 5.

Спробуй запустити приклад і вибрати пункт Customize з меню Tools. Перед тобою відкриється вікно схоже на створення наборів дій. Тільки тут ти не можеш створити нічого нового, зате можна перетягувати кнопки на панель створюючи нові кнопки або видаляти за допомогою перетягування кнопок назад у вікно (можна навіть не у вікно, а в будь-яке місце, як би знімаючи кнопки з панелі). Виходить, що не написавши ще жодного рядка ми створили редаговану панель.

Залишається один тільки маленький штрих. Виділи компонент ActionManager і у властивості FileName вкажи якесь ім’я файлу. Я вказав . В цьому файлі будуть автоматично зберігатися всі налаштування кнопок панелей і будь-які зміни внесені в режимі Runtime. Вказавши файл знову запусти приклад. Зверни увагу, що кнопка зі стрілкою вниз на панелі кнопок не доступна. Це пов’язано з тим, що мій файл toolbar.dat не існує. Закрий програму. Під час закриття вона зберігає всі стани кнопок і створює файл настройок. Запусти програму ще раз і тепер вже все доступно і працює, тому що toolbar.dat існує.

Якщо ти вказав файл, в якому повинні зберігатися настройки, то пам’ятай, що коли ти в дизайнері змінюєш положення кнопок (додаєш нові або видаляєш), то під час виконання це відображатися не буде, тому що в файлі toolbar.dat немає ніякої інформації про зміни. Щоб зміни пройшли, потрібно видалити файл, або під час виконання програми проробити ті ж зміни, викликавши пункт Customize з меню Tools.

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

На останок я покажу, як працювати з спливаючими меню. Давай кинемо на форму компонент PopupMenu. Двічі клацніть по компоненту, і в редакторі меню зробимо наступне: створи новий пункт меню (кнопка Insert) і у властивості Action вкажи дія, яка має бути асоційоване з цим пунктом. Все. Всі необхідні властивості нового елемента заповнюються автоматично і більше нічого робити не треба.

Признач це меню головній формі. Єдиний недолік – спливаюче меню буде виглядати не так як основне. Але цей недолік теж виправимо.

Ну і саме останнє – навчимо наше головне меню відкидати тінь. Створи нову дію в категорії Tools і вкажи в нього такі властивості:


За події OnExecute напиши наступний код:


procedure TForm1.MenuShadowActionExecute(Sender: TObject);
begin
ActionMainMenuBar1.Shadows := MenuShadowAction.Checked;
end;

Запусти програму і подивися як буде змінюватися головне меню при різному стані пункту <Тінь>.

УВАГА! Тінь працює тільки в Delphi 7.

Ще дуже цікавим являється властивість Style компонента ActionManager. Спробуй змінити його і подивитися на результат сам. Ця властивість є і в 6-й і 7-й версії Delphi.

P.S. В Delphi 7 з’явився новий компонент XPManifest на закладці Win32. Просто кинь його на форму і всі кнопки та елементи керування в WindowsXP будуте мати стиль XP.

Схожі статті:


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

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*