Что содержит лента интерфейса
знакомство с платформой Windows Ribbon
платформа Windows Ribbon — это обширная система представления команд, которая предоставляет современные альтернативы многоуровневый меню, панелям инструментов и панелям задач традиционных Windows приложений.
Новая парадигма команд
платформа Ribbon — это коллекция интерфейсов api Microsoft Win32, которые поддерживают узел новых возможностей пользовательского интерфейса для Windows разработчиков.
Эта обширная современная платформа команд пользовательского интерфейса предоставляет следующие возможности:
Платформа Ribbon состоит из двух основных компонентов пользовательского интерфейса:
Сочетание декларативного XML и собственного COM-интерфейса используется для отделения представления и функциональности этих компонентов.
Представления
Представление ленты
пользовательский интерфейс представления ленты является основным компонентом платформы ribbon и обеспечивает пользовательский интерфейс следующего поколения для представления команд в Windows приложениях.
Лента — это панель команд, которая предоставляет основные возможности приложения с помощью ряда вкладок в верхней части окна приложения. он похож на функциональность и внешний вид для пользовательского интерфейса Microsoft Office 2007 Fluent. лента обеспечивает интуитивно понятный соответствующую процесс обнаружения команд, типичный для стандартных систем меню Windows. Благодаря оптимизации для повышения эффективности и обнаруживаемости лента упрощает поиск, понимание и использование команд с минимальными щелчками мыши и нажатиями клавиш через систему стандартных элементов управления, коллекций и предварительного просмотра.
на следующем рисунке показана реализация платформы Ribbon в Paint для Windows 7.
Представление Контекстпопуп
представление контекстпопуп с помощью всплывающего элемента управления предоставляет более обширную систему контекстного меню, чем доступна в более ранних Windows приложениях. Всплывающее контекстное меню может быть развернуто только при поддержке ленты, а изолированное всплывающее контекстное меню не поддерживается платформой Ribbon.
Архитектура ленты
в отличие от традиционной модели разработки Windows пользовательского интерфейса на основе элементов управления, Windows разработка пользовательского интерфейса платформы Ribbon основана на более абстрактной концепции команд. Изменяя команды, связанные с элементами управления, а не сами элементы управления, платформа может автоматически настраивать пользовательский интерфейс в ответ на состояние выполнения команды, полученное из хост-приложения ленты.
Приложение, использующее платформу Ribbon, предоставляет команды без обязательств с подробными сведениями о том, как эта команда представлена в пользовательском интерфейсе. Иногда это называется моделью пользовательского интерфейса на основе намерения. Тип команды, его свойства и ресурсы определяют назначение команды для приложения. Например, ввод с помощью мыши, ввод с клавиатуры или даже встряхиваний устройство гироскопик может привести к выполнению одной и той же команды. приложение работает только с выполнением команды, а не с тем, как оно было вызвано.
Платформа Ribbon обеспечивает такую гибкость, отделяя функциональные возможности презентации с помощью двух различных структур разработки: языка разметки на основе XAML (XAML) для объявления элементов управления и визуального макета реализации ленты, а также COM-интерфейсы на основе C++ для инициализации платформы и обработки событий во время выполнения. Это различие позволяет разработчикам и дизайнерам пользовательского интерфейса самостоятельно отвечать за внешний вид Ribbon-приложения, а основные функциональные возможности остаются в области инженеров по.
Интерфейсы API ленты
Интерфейсы API ленты обеспечивают необходимые соединения между представлением и ведущим приложением ленты. Эти API-интерфейсы состоят из следующих интерфейсов и ключей свойств:
Набор COM-интерфейсов, реализованных платформой Ribbon для выполнения служб пользовательского интерфейса.
Набор COM-интерфейсов, реализованных ведущим приложением ленты, которое платформа вызывает в ответ на изменения пользовательского интерфейса.
Интерфейс | Описание |
---|---|
Иуиаппликатион * * * * | Определяет методы точки входа обратного вызова приложения для платформы ленты. |
Иуикоммандхандлер * * * * | Определяет методы для сбора сведений о командах и обработки событий команд из платформы ленты. |
Иуиколлектиончанжедевент * * * * | Определяет метод, необходимый для управления изменениями в коллекции во время выполнения. |
Набор ключей свойств, которые определяют, какие свойства пользовательского интерфейса приложения имеют программный контроль.
Тип ключа свойства | Описание |
---|---|
Коллекция | Определяет свойства для элементов управления на основе коллекции Ribbon. |
Палитра | Определяет свойства для элементов управления выбора цвета ленты. |
Font | Определяет свойства для ленты Фонтконтрол. |
Глобальный | Определяет глобальные свойства для платформы Ribbon. |
Ресурс | Определяет свойства ресурса ленты. |
Лента | Определяет свойства представления ленты. |
Состояние | Определяет свойства для состояния или контекста элемента управления ленты. |
Безопасность и конфиденциальность
Библиотека DLL платформы Ribbon (uiribbon.dll) выполняется в процессе и имеет те же привилегии, что и ведущее приложение. Лента принимает только то, что ведущее приложение предоставляет в качестве входных данных или вводимых пользователем данных из строго ограниченных элементов управления, таких как поле со списком «Счетчик» и «редактируемый».
кроме того, платформа не хранит никаких сведений, за исключением того, что предоставлено ведущим приложением или собрано (в соответствии с полномочиями конечного пользователя) с помощью программы согласия Windows пользователя.
Специальные возможности и локализация
Чтобы обеспечить высокодоступный пользовательский интерфейс, платформа Ribbon реализует Microsoft Active Accessibility. Благодаря автоматическому заполнению соответствующих свойств Microsoft Active Accessibility с помощью действительной и полезной информации платформа значительно сокращает нагрузку на разработчиков, чтобы обеспечить широкую работу для всех пользователей.
дополнительные сведения о специальных возможностях в платформе Ribbon см. в разделе работа с Active Accessibility в пользовательском интерфейсе 2007 Office Fluent.
кроме того, платформа Ribbon является Windowsной функцией и, таким образом, локализована для всех языков, которые Windows поддерживаются. Однако разработчики несут ответственность за локализацию собственных ресурсов приложений.
Заключение
Лента — это новая и привлекательная форма команды, которую разработчики приложений, архитекторы и проектировщики должны учитывать при проектировании и создании новых приложений или обновлении существующих.
на форуме Windows ribbon можно обсудить темы и задать вопросы, связанные с разработкой приложений, которые реализуют платформу Windows Ribbon.
Разработка Ленты («Почему» Интерфейса, часть 1)
Это первая статья в серии, в которой я укажу на некоторые причины, которые побудили нас принять решении о создании нового пользовательского интерфейса в Офисе 2007.
Любая дискуссия о графических интерфейсах современных компьютеров имеет корни в исследовательском центре Ксерокса в Пало Альто (PARC) в 1970-х. Для работы над компьютерами Альто, а затем и Стар, собралась удивительная, и в конечном счете повлиявшая на ход компьютерной истории, компания научных сотрудников. Значительное количество технологий и концепций, которые ныне применяются повсеместно, были впервые разработаны в PARC: WYSIWYG (что видишь, то и получишь), использование мышь, метафора рабочего стола (включая папки и иконки), перекрывающиеся окна, сеть, лазерные принтеры и некоторое количество контролов, которые теперь составляют пользовательский интерфейс: меню, полосы прокрутки, контролы edit, чекбоксы. Эта картинка дает представление о том, как выглядел пользовательский интерфейс Стар. (Некоторые раздражающие недостатки этой системы, такие например, как необходимость щелкнуть мышью неактивное окно для того, чтобы оно перерисовало себя, сегодня по большей части забыты).
Star была коммерчески неуспешна, и сегодня многие люди, занимающиеся историей технологий, указывают на то, что Ксерокс сделала мало для того, чтобы защитить созданную ею интеллектуальную собственность. В результате, многие сегодня думают, что Ксерокс — всего лишь производитель копировальных машин, не зная о той ключевой роли, которую PARC сыграл в разработке современного пользовательского интерфейса.
Много людей, придумавших идеи, воплощенные в Star, перешли в другие компании, особенно в Майкрософт и Эппл. Эппл первая позаимствовала и расширила эти идеи, сначала в провалившейся high-end системе Лиза, а затем и в Макинтоше. Лиза стандартизовала некоторые концепции, которые до сих пор используются во многих современных интерфейсах: верхние меню, отметка выбранных опций в меню и затемнение тех, которые сейчас недоступны и т.д. (Не все изменения были в лучшую сторону — некоторые идеи были заброшены Эпплом, например такие, как пропорциональные полосы прокрутки (бегунки?) и практически не использовались до выхода Виндоуз 95). Если вам интересно более подробно, со скриншотами, посмотрите сайт Джереми Реймера.
Вышедший вслед за Лизой Макинтош унаследовал много от нее и Стар, и развивается до сих пор, под тем же брендом. Майкрософт работала с ранними прототипами Эппл чтобы разработать Ворд 1.0, который поставлялся в 1984 году с оригинальным Макинтошем. Мультиплан и Чарт также разрабатывалить для 512К Макинтоша, и в конечном счете слились в единый продукт в 1985, называвшийся Майкрософт Эксель 1.0: первая программа-блокбастер для Макинтоша (а также причина, по которой много людей покупали первые Макинтошы). Вы можете посмотреть изображения ранних офисный приложений Майкрософта в рекламе Эппла 1984 года.
Таким образом, корни раннего офиса растут из Макинтоша, и интерфейс, конечно, отражал это. Как самый большой поставщик программ для Эппла (звание, которое Майкрософт удерживает до сих пор (2007 год)), некоторые из решений по проектированию пользовательского интерфейса в первом Макинтоше были сделаны из-за нужд разработчиков Майкрософта. Хотя степень влияния МС на интерфейс Макинтоша может сильно различаться в зависимости от точки зрения, можно смело сказать, что программы были разработаны с глубоким пониманием системы, а система — с глубоким пониманием программ. Несомненно, ноги у пользовательского интерфейса Офиса (особенно использование верхних меню) растут из той самой первой версии под Макинтош.
В следующей статье мы посетим «Пыльный музей прошлого Офиса» и посмотрим на развитие Ворда для Виндоуз с течением времени.
Ленточный интерфейс
Введение
Оформление различных документов – статей, рефератов, пояснительных записок к курсовым проектам и работам, дипломных проектов и работ – в настоящее время осуществляется с помощью текстового процессора Word различных версий. Текстовый процессор Word 2007 по сравнению с предыдущими версиями обладает более широкими возможностями. Однако при оформлении документов достаточно владеть базовыми навыками работы с ним.
Под базовыми навыками подразумевают те элементарные действия, которые должен знать пользователь программного продукта Word 2007 при оформлении текстов различной сложности. К этим элементарным действиям можно отнести:
· ввод и редактирование текста;
· работу со списками;
· работу с таблицами в текстовом документе;
· работу с рисунками в текстовом документе;
· использование различных стилей при оформлении документов;
· создание оглавления документа;
· работу с колонтитулами;
· работу с шаблонами;
· использование закладок и сносок, гиперссылок и перекрёстных ссылок;
· работу с математическими формулами и другие.
Перечисленные элементарные знания могут служить основой для самостоятельного и более глубокого изучения возможностей Word 2007.
ИНТЕРФЕЙС ТЕКСТОВОГО ПРОЦЕССОРА WORD
Ленточный интерфейс
Панель инструментов, используемая в предыдущих версиях Word, в текстовом процессоре Word 2007 заменена ленточным интерфейсом –лентой инструментов, на которой расположены различные вкладки.
Переход от одной вкладки к другой осуществляется щелчком левой кнопки мыши по её имени. После этого на экране монитора отображаются группа или группы инструментов, раскрывающие возможности, которые предоставляются пользователю при её использовании.
На ленте инструментов расположены следующие вкладки:
· Главная – включает инструменты, предназначенные для выполнения основных операций по редактированию и форматированию текста: Шрифт, Абзац, Стили, Редактирование и Буфер обмена;
· Вставка – предназначена для оформления страниц документа, работы с таблицами, иллюстрациями, колонтитулами, специальными символами, дополнительными элементами текста и др.;
· Разметкастраницы – используется для настройки параметров страницы документа;
· Ссылки – используются для вставки оглавления, сносок;
· Рассылки – предназначены для работы с электронной почтой;
· Рецензирование – предоставляет возможности, необходимые для проверки правописания и рецензирования документов;
· Вид – предназначена для настройки режима просмотра.
Следует обратить внимание на то, что не все элементы, необходимые для работы с текстом, помещаются на ленте. Если справа или внизу некоторых групп элементов расположен значок «Стрелка вниз», то это означает, что при щелчке по нему левой кнопкой мыши на экране монитора отобразится перечень дополнительных инструментов группы. Это может быть панель с инструментами или диалоговое окно, например:
Общие сведения об объектной модели ленты
Набор средств Visual Studio для Office (cреда выполнения)Предоставляет объектную модель со строгой типизацией, которую можно использовать для получения и задания свойств элементов управления ленты во время выполнения. Например, можно динамически заполнять элементы управления меню или отображать или скрывать элементы управления в зависимости от контекста. на ленту можно также добавить вкладки, группы и элементы управления, но только перед загрузкой ленты приложением Office. Дополнительные сведения см. в разделе Задание свойств, которые становятся доступны только для чтения.
Эта объектная модель ленты состоит главным образом от класса ленты, событий лентыи классов элементов управления ленты.
Класс ленты
Этот класс отображается как разделяемый класс, который разбивается между файлом кода ленты и файлом кода конструктора ленты.
События ленты
Класс Ribbon содержит следующие три события:
Событие | Описание |
---|---|
Load | возникает, когда приложение Office загружает настройку ленты. LoadОбработчик событий автоматически добавляется в файл кода ленты. Этот обработчик событий используется для запуска пользовательского кода при загрузке ленты. |
LoadImage | Позволяет кэшировать изображения в настройке ленты при загрузке ленты. При написании кода для кэширования образов ленты в этом обработчике событий можно получить небольшое увеличение производительности. Дополнительные сведения см. в разделе LoadImage. |
Close | Возникает при закрытии экземпляра ленты. |
Элементы управления ленты
Microsoft.Office.Tools.Ribbonпространство имен содержит тип для каждого элемента управления, отображаемого в группе Office ленты элементы управления панели элементов.
В следующей таблице показаны типы для каждого Ribbon элемента управления. Описание каждого элемента управления см. в разделе Общие сведения о ленте.
Имя элемента управления | Имя класса |
---|---|
Box | RibbonBox |
Кнопка | RibbonButton |
ButtonGroup | RibbonButtonGroup |
CheckBox | RibbonCheckBox |
ComboBox | RibbonComboBox |
Крывающихся | RibbonDropDown |
Поле | RibbonEditBox |
Коллекции | RibbonGallery |
Группа | RibbonGroup |
Label | RibbonLabel |
Меню | RibbonMenu |
Двоеточи | RibbonSeparator |
SplitButton | RibbonSplitButton |
TAB | RibbonTab |
ToggleButton | RibbonToggleButton |
Microsoft.Office.Tools.RibbonПространство имен использует префикс «Ribbon» для этих типов, чтобы избежать конфликта имен с именами классов элементов управления в System.Windows.Forms пространстве имен.
При добавлении элемента управления в конструктор ленты конструктор ленты объявляет класс для этого элемента управления как поле в файле кода конструктора ленты.
Общие задачи с использованием свойств элементов управления ленты
Каждый Ribbon элемент управления содержит свойства, которые можно использовать для выполнения различных задач, таких как назначение метки элементу управления или скрытие и отображение элементов управления.
В некоторых случаях свойства становятся доступны только для чтения после загрузки ленты или после добавления элемента управления в динамическое меню. Дополнительные сведения см. в разделе Задание свойств, которые становятся доступны только для чтения.
В следующей таблице описаны некоторые задачи, которые можно выполнить с помощью Ribbon свойств элемента управления.
Для выполнения этой задачи | Процедура | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Скрытие или отображение элемента управления. | Используйте свойство Visible. | |||||||||||||||||||
Включение или отключение элемента управления. | Используйте свойство Enabled. | |||||||||||||||||||
Задает размер элемента управления. | Используйте свойство Контролсизе. | |||||||||||||||||||
Получение изображения, отображаемого на элементе управления. | Используйте свойство Image. | |||||||||||||||||||
Изменение метки элемента управления. | Используйте свойство Label. | |||||||||||||||||||
Добавление определяемых пользователем данных в элемент управления. | Используйте свойство Tag. | |||||||||||||||||||
Получение элементов в,, RibbonBox RibbonDropDown RibbonGallery илиЗадание свойств, которые становятся доступны только для чтенияНекоторые свойства можно задать только до загрузки ленты. Задать эти свойства можно тремя способами: в окне свойства Visual Studio. В CreateRibbonExtensibilityObject методе ThisAddin ThisWorkbook класса, или ThisDocument проекта. Динамические меню предоставляют некоторые исключения. Можно создавать новые элементы управления, задавать их свойства, а затем добавлять их в динамическое меню во время выполнения даже после загрузки ленты, содержащей меню. Свойства элементов управления, добавляемых в динамическое меню, можно задать в любое время. Задание свойств в конструкторе лентыДобавьте следующий код. в проектах Visual C#, обновленных с Visual Studio 2008, конструктор отображается в файле кода ленты. Задание свойств в методе КреатериббонекстенсибилитйобжектСвойства Ribbon элемента управления можно задать при переопределении CreateRibbonExtensibilityObject метода в ThisAddin ThisWorkbook классе, или ThisDocument проекта. Дополнительные сведения о CreateRibbonExtensibilityObject методе см. в разделе Лента Overview. в следующем примере задаются свойства ленты в CreateRibbonExtensibilityObject методе ThisWorkbook класса Excel проекта книги. Добавьте следующий код. Свойства, которые становятся доступны только для чтенияВ следующей таблице показаны свойства, которые можно задать только до загрузки ленты. Свойства элементов управления в динамических меню можно задать в любое время. Эта таблица не применяется в этом случае.
RibbonToggleButton | ||||||||||||||||||||
итемсизе | RibbonMenu RibbonSplitButton | |||||||||||||||||||
MaxLength | RibbonComboBox RibbonEditBox | |||||||||||||||||||
Имя | RibbonComponent | |||||||||||||||||||
Позиция | RibbonButton RibbonToggleButton | |||||||||||||||||||
RibbonType | OfficeRibbon | |||||||||||||||||||
RowCount | RibbonGallery | |||||||||||||||||||
шовитемимаже | RibbonComboBox RibbonGallery | |||||||||||||||||||
шовитемлабел | RibbonDropDown RibbonGallery | |||||||||||||||||||
шовитемселектион | RibbonGallery | |||||||||||||||||||
сизестринг | RibbonComboBox RibbonEditBox | |||||||||||||||||||
стартфромскратч | OfficeRibbon | |||||||||||||||||||
Вкладки | OfficeRibbon | |||||||||||||||||||
Title | RibbonSeparator |
задание свойств для лент, отображаемых в Outlook инспекторах
Новый экземпляр ленты создается каждый раз, когда пользователь открывает инспектор, в котором отображается лента. Однако свойства, перечисленные в таблице выше, можно задать только до создания первого экземпляра ленты. после создания первого экземпляра эти свойства становятся доступны только для чтения, поскольку первый экземпляр определяет XML-файл, который Outlook использует для загрузки ленты.
Если имеется условная логика, которая задает для любого из этих свойств другое значение при создании других экземпляров ленты, этот код не будет оказывать никакого влияния.
События элемента управления ленты
Каждый класс элемента управления содержит одно или несколько событий. Эти события описаны в следующей таблице.
Обработчики событий для этих событий имеют два следующих параметра.
Ribbon Controls шаг за шагом. Шаг 1 – визуальная разработка интерфейса.
Начиная с RAD Studio 2009 в составе VCL Delphi появилась новая вкладка Ribbon Controls. На этой вкладке располагаются компоненты для создания относительно нового интерфейса для приложения, так называемого “ленточного” интерфейса к которому уже давно привыкли пользователи Microsoft Office 2007. Сегодня и мы, как разработчики, начнем процесс мучительного привыкания к новым компонентам на благо пользователей наших приложений.
На самом деле процесс освоения работы с новыми компонентами не такой уж и мучительный, если подойти к изучению этого вопроса с самого начала и не торопиться разработать интерфейс один-к-одному как у Office 2007 – за день такие вещи, к сожалению, не делаются.
Поэтому и мы начнем изучение Ribbon Controls с самого начала и будем создавать интерфейс приложения шаг за шагом, от простого к сложному, чтобы не упустить ни одной детали.
1. Устройство интерфейса Ribbon
В основе Ribbon лежат три вида элементов: вкладка, панель и элемент внутри панели (см. рисунок)Вкладкам и панелям можно изменять порядок расположения в ленте Ribbon, а элементы на панелях могут иметь различную функциональную нагрузку (применяться в качестве кнопок, флажков, списков, галерей и т.д.), а также группироваться по определенным признакам. И, забегая немного вперед, скажу, что все функциональные возможности элементов Ribbon определяются с помощью одно-трех компонентов без применения каких-либо стандартный контролов, наподобие Button, CheckBox и т.д.
Дополнительно, Ribbon может содержать кнопку главного меню и панель быстрого запуска.
В главном меню, помимо основных элементов, могут размещаться также ссылки на последние открытые документы, что делает такое меню практически идеальным для пользователей приложений, работающих с различными документами.
Панель быстрого запуска может содержать копии любых элементов Ribbon для удобства их использования.
Теперь, вооружившись элементарными знаниями об устройстве Ribbon, попробуем построить свой собственный ленточный интерфейс.
2. Первые Ribbon интерфейс – он самый сложный
Все элементы Ribbon располагаются на странице палитры компонентов Ribbon Controls
На первый взгляд, разработчики по жадничали и оставили нам в распоряжение всего пять элементов:
1. TRibbon – основа всего интерфейса (лента)
2. TRibbonComboBox
3. TRibbonSpinEdit
4. TRibbonScreenTipManager – менеджер всплывающих подсказок
5. TScreenTipsPopup – всплывающая подсказка
Но на самом деле, этих компонентов более чем достаточно для разработки полноценного интерфейса. Более того, не факт, что когда-либо Вам придётся использовать в работе второй и третий компоненты (TRibbonComboBox и TRibbonSpinEdit).
Дело в том, что Ribbon в Delphi работает только совместно с компонентом TActionManager со страницы Additional палитры компонентов. И этот компонент берет на себя львиную долю всей работы, в том числе, и работы с событиями элементов.
Теперь попробуем создать простенький интерфейс, рассмотрев попутно свойства компонентов Ribbon.
2.1. Работа с TRibbon
Откройте Delphi, создайте новое приложение и расположите на форме следующие элементы:
В итоге Вы должны получить примерно следующую картинку:
Теперь выберите TRibbon и в свойстве ActionManager укажите наш ActionManager1.
В свою очередь, у компонента ActionManager1 в свойстве Images укажите ImageList1.
Предварительная настройка закончена – теперь TRibbon будет находится под управлением менеджера действий и каждая новая панель Ribbon будет автоматически добавляться в список ActionManager1.
Прежде, чем переходить к расстановке вкладок, панелей и элементов на ленте, рассмотрим её константы и основные свойства.
У компонента TRibbon определены следующие константы:
Константа | Значение | Описание |
cRibbonHideWidth | 300 | Ширина родительского элемента при которой Ribbon должен автоматически скрываться |
cRibbonHideHeight | 250 | Высота родительского элемента при которой Ribbon должен автоматически скрываться |
cRibbonQuickAccessToolbarLeft | 34 | Левый отступ панели быстрого запуска |
cRibbonHeight | 117 | Высота ленты |
cRibbonQATHeight | 26 | Высота панели быстрого запуска |
cRibbonUnthemedCaptionHeight | 30 | Высота заголовка ленты |
cRibbonFirstTabOffSet | 47 | Отступ первой вкладки |
cRibbonTabSpacing | 6 | Отступ между вкладками |
cRibbonTabHeight | 23 | Высота вкладки |
cRibbonMinimizedHeight | 27 | Высота вкладки в минимизированном состоянии |
cRibbonTabScrollButtonWidth | 12 | Ширина скрола |
cRibbonGroupCaptionHeight | 16 | Высота заголовка группы |
cRibbonGroupHeight | 86 | Высота группы |
cRibbonPageHeight | 93 | Высота вкладки |
cRibbonMinimumCaptionWidth | 50 | Минимальная ширина заголовка ленты |
UM_DISPLAYKEYTIPS | WM_USER + 1 | Сообщение показа KeyTips |
UM_CHECKSIZE | WM_USER + 2 | Сообщение, посылаемое после WMWindowPosChanged |
Свойства компонента TRibbon:
Свойство | Тип | Описание |
ActionManager | TCustomActionManager | Компонент TActionManager под управлением которого будет работать лента |
ApplicationMenu | TApplicationMenu | Главное меню приложения |
Caption | string | Заголовок ленты |
DocumentName | string | Необязательное свойство. Имя документа дописывается перед свойством Caption |
HideTabs | boolean | Определяет будут или нет скрываться вкладки на ленте |
QuickAccessToolbar | TQuickAccessToolbar | Панель быстрого запуска |
ScreenTips | TCustomScreenTipsManager | Менеджер всплывающих подсказок |
ShowHelpButton | boolean | Определяет будет или нет показываться кнопка “Помощь” в правом верхнем углу ленты |
Style | TRibbonStyleActionBars | Визуальный стиль ленты. Всего по умолчанию доступно три стиля: Luna, Obsidian и Silver |
Tabs | TRibbonTabs | Коллекция вкладок ленты |
Теперь, давайте добавим на нашу ленту первую вкладку. Для этого можно:
Теперь на вкладку можно добавлять новые группы. Сделать это можно либо через контекстное меню вкладки, либо, опять же воспользовавшись опциями в Object Inspector’е. Для примера, добавим на вкладку три группы:
В любой момент вы можете изменить положение групп на вкладке. Для этого необходимо воспользоваться опцией “Reorder Groups…”.
У группы Ribbon появляются следующие дополнительные свойства:
DialogAction : TAction – действие, которое будет выполняться при клике на заголовке группы. Если это свойство определено, то вид заголовка группы измениться на следующий:
Rows : integer – свойство определяет на сколько строк будут занимать элементы панели. По умолчанию свойство имеет значение 3.
Теперь попробуем добавить обычную кнопку.
Теперь определим обработчик действия. Пусть при вызове действия открывается главная страница нашего блога. Располагаем на форме компонент TWebBrowser (вкладка Interet палитры компонентов), в редакторе Action Manager’а делаем двойной клик по действию и пишем обработчик:
Теперь возьмие и перетащите мышкой действие из ActionManager на любую панель Ribbon. В результате должно получиться примерно следующее:
По умолчанию новое действие располагается в первой свободной строке (Row) панели. Для того, чтобы новая кнопка выглядела как полагается, т.е. сверху располагалась иконка 32×32 пикселя и снизу подпись, необходимо выбрать действие на панели, перейти в Object Inspector’е выбрать вкладку свойств CommandProperties и указать в свойстве ButtonSize значение bsLarge. При этом ширина панели Ribbon автоматически изменится и вид панели Ribbon станет следующим:
Теперь можете запустить приложение и проверить работу.
Кроме того, что Вы можете располагать на панели действия в виде кнопок различного размера, Вы также можете, используя ActionManager располагать действия как CheckBox’ы, RadioButton’ы и т.д.
Давайте, например на второй панели разместим 3 действия в виде радиокнопок.
Создаем в Action Manager’е три новых действия с именами RadioOption1, RadioOption2, RadioOption3 соответственно. Перетаскиваем их наа панель Ribbon и в свойстве CommandStyle указываем значение csRadioButton. Вид Ribbon должен быть следующим:
Видите, новые опции при запуске приложение оказались недоступными? Все дело в том, что, если Action не имеет обработчика, то в работающем приложении его свойство Enabled автоматически переходит в значение false. Напишем три простых обработчика:
Для того, чтобы все три кнопки действовали как и полагается, чтобы в одно время могла быть нажата только одна кнопка, необходимо в ActionManager’е выставить у всех трех действий одинаковое свойство GroupIndex отличное от нуля.
Теперь снова запустите приложение и можете увидеть, что вторая панель Ribbon действует также как и обычный компонент TRadioGroup.
Все возможные формы представления действий на панелях Ribbon мы рассмотрим в следующей статье, а пока сосредоточимся на основах работы.
Переходим к созданию главного меню. Выбираем компонент TRibbon и в Object Inspector’е жмем опцию “Add Application Menu”. Иконка кнопки главного меню берется из свойств проекта (Application Icon). По умолчанию в главное меню добавляется пустое действие ActionClientItem0, которое Вы можете изменить по своему усмотрению. Добавим в главное меню уже имеющееся у нас действие OpenStartURL. Просто перетащите действие из ActionManager’а на кнопку главного меню. В результате вид главного меню у работающего приложения будет следующим:
Аналогичным образом настраивается и панель быстрого запуска. Надеюсь, смысл работы с компонентом Ribbon в общих чертах Вам стал более-менее понятен. Поэтому переходим к следующему шагу разработки интерфейса – работе с всплывающими подсказками.
2.2. Работа с компонентом TScreenTipsManager
Ещё одной отличительной чертой интерфейса Ribbon являются красивые всплывающие подсказки. Эти подсказки (ScreenTips) помимо своей красоты и удобства являются также и более информативными для пользователей нежели те же самые Hints.
За работу и управление подсказками отвечает компонент TScreenTipsManager. Располагаем его на форме и в свойстве ScreenTips у компонента TRibbon указываем ScreenTipsManager1. Теперь вы можете создавать подсказки программно или воспользоваться редактором. Так как сегодня мы делаем только первый шаг в работе с Ribbon Controls, то рассмотрим работу визуального редактора.
Выбираем компонент ScreenTipsManager1, в Object Inspector’e вызываем редактор свойства LinkedActionLists, и добавляем в список уже имеющийся компонент ActionManager1:
Теперь в опциях Object Inspector выбираем действие “Generate Screen Tips”. В итоге, если всё сделано правильно, то Вы должны получить сообщение следующего вида:
Это сообщение означает, что ScreenTipsManager создал для каждого действия из ActionManager свою подсказку. Для того, чтобы изменить вид подсказок нажмите в Object Inspector’е “Edit Screen Tips” и перед Вами откроется визуальный редактор подсказок:
Работа с редактором достаточно проста и удобна:
По умолчанию за текст подсказки принимается значение свойства Hint у действия. Создадим подсказку для одного из наших действий.
Выбираем в редакторе действие OpenStartURL и заполняем текстовое поле:
Загружаем картинку для подсказки. Для этого делаем двойной клик по соответствующему полю и выбираем рисунок в формате bmp.
Так как у нашего приложения ещё нет своей встроенной справки, то желательно убрать Footer. Для этого снимаем флажок с опции Show Footer. В итоге у меня получилась вот такая подсказка:
Дополнительно для каждой подсказки вы можете установить радиус скругления для углов (свойство Corner Size), изменить текст Footer’а, отключить показ заголовка, клавиш быстрого вызова (ShortCuts), а также изменить рисунок для Footer (по умолчанию это рисунок в виде вопросительного знака).
А теперь самое важное – для того, чтобы все подсказки появлялись необходимо чтобы у главной формы приложения свойство ShowHint было равно True.
Теперь запустите приложение и наведите курсор мыши на кнопку. Через пару секунд появится всплывающая подсказка:
Кроме такого вида всплывающих подсказок, вы также можете использовать компонент TScreenTipsPopup.
2.3. Работа с компонентом TScreenTipsPopup
В отличие от предыдущего компонента TScreenTipsPopup является визуальным компонентом. Смысл работы примерно тот же, что и у ScreenTipsManager, но за одним замечательным различием – TScreenTipsPopup может быть ассоциирован с любым компонентом формы, даже с тем у которого нет действия, описанного в ActionManager’е. В нашем случае таким компонентом является WebBrowser1. Давайте создадим для него свой Screen Tip.
Расположите в любом удобном для Вас месте новый компонент TScreenTipsPopup.
Теперь перейдите в Object Inspector и откройте вкладку свойств Screen Tip. Задайте значения свойств Description и Header. Остальные свойства можно оставить незаполненными.
Ассоциируйте подсказку с компонентом WebBrowser. Для этого в выпадающем списке свойства Associate компонента выберите WebBrowser1, а в свойстве ScreenTipsManager укажите ScreenTipsManager1.
Запустите приложение и наведите указатель мыши на браузер:
Эта же подсказка появится и при наведении указателя мыши на сам компонент ScreenTipsPopup.
Вот пожалуй и все, что касается основ работы с компонентами Ribbon Controls.
Как видите, сегодня основной упор в статье был сделан именно на визуальную разработку интерфейса при минимальной работе с исходным кодом.
В следующий раз пройдем немного дальше и займемся программированием. Научимся создавать новые виды элементов, красивые PopUp-меню и так далее. В общем оставайтесь с нами и скучно не будет 😉