+7 (495) 229-0436   shopadmin@itshop.ru 119334, г. Москва, ул. Бардина, д. 4, корп. 3
 
 
Вход
 
 
Каталог
 
 
Подписка на новости
Новости ITShop
Windows 7 и Office: Новости и советы
Обучение и сертификация Microsoft
Вопросы и ответы по MSSQLServer
Delphi - проблемы и решения
Adobe Photoshop: алхимия дизайна
 
Ваш отзыв
Оцените качество магазина ITShop.ru на Яндекс.Маркете. Если вам нравится наш магазин - скажите об этом Google!
 
 
Способы оплаты
 
Курс расчета
 
 1 у.е. = 94.09 руб.
 
 Цены показывать:
 
 
 
 
  
Новости, статьи, акции
 

Ribbon Controls шаг за шагом. Шаг 3 - работа со ScreenTips.

18.01.2010 16:13

Источник: webdelphi

Да, давненько я уже не запускал Delphi 2010. Всё как-то в последнее время работа в Lazarus кипит.

Сегодня решил немного выделить время и снова поразбираться с Ribbon Controls. Как раз и причина появилась - вопрос читаеля блога. Конечно, если б вопрос касался чего-нибудь наподобие "где находится Action Manager?" то поста бы и не было, а был бы ответный комментарий. Но, простой на первый взгляд вопрос, касающийся работы со ScreenTips, чувствую может попортить кровь не одному желающему использовать Ribbon Controls. Поэтому расскажу-ка я про подсказки немного по-подробнее (заодно и самому будет потом шпаргалка, если вдруг чего забуду).

Итак, сегодняшний пост посвящён работе с подсказками Ribbon они же ScreenTips.Частично про ScreenTips я рассказывал в первом шаге своего изучения Ribbon . В отличие от стандартных Hints (подсказок), ScreenTips дают нам на порядок больше возможностей, в т.ч. вставка в подсказку своих изображений, использование горячих клавишь и т.д.

Рассмотрим простой пример использования ScreenTips .

Открываем Delphi 2010 , создаем новый проект и укладываем на главную форму ActionManager , Ribbon и ScreenTipsManager, как показано на рисунке:

У Ribbon создаем одну страницу RibbonPage1 (кому не нравятся стандартные имена - переименуйте, я показываю пример) и на этой странице располагаем одну группу RibbonGroup1 .

Теперь производим следующие манипуляции с компонентами:

  1. У компонента ScreenTipsManager1 открываем редактор свойства LinkedActionLists , жмем в редакторе кнопку "Add New…" или Ins . В итоге добавится пустой контейнер.
  2. Выбираем в редакторе " 0 - TActionListItem " и в Object Inspector"е указываем ActionManager1 :

Собственно теперь наш ScreenTipManager способен создать подсказки для всех действий определенных в ActionManager .

Теперь открываем двойным щелчком редактор ActionMaager"а и, не сильно заморачиваясь, добавляем в список новое дейтсвие:

Обработчик действия может быть каким угодно на Ваше усмотрение. Измените только у Action1 свойство Hint (сейчас нам это свойство будет очень важно). Пусть, допустим, оно будет равно "Подсказка для Action1″.

Теперь перетягиваем мышкой Action1 из редактора на RibbonGroup1 и у нас практически всё готово:

Всё, что нам теперь остается сделать - это сгенерировать подсказки. Делается это двойным кликом по компоненту ScreenTipsManager или с использованием опции "Generate Screen Tips" в Object Inspector.

При этом, если Вы всё сделали правильно, то получите сообщение вида:

Если же допущена ошибка, то, первое, что обычно видит пользователь после двойного клика по компоненту это:

Т.е. в данном случае не было определено свойство LinkedActionLists .

После того как подсказки сгенерированы, Вы можете смело присупать к их редактированию и настройке внешнего вида. Для этого Вы можете опять же воспользоваться встроенным редактором свойств, который доступен по двойному клику на компоненте и выглядит следующим образом:

В редакторе отражены все используемые у ScreenTip свойства:

  • ShowImage: boolean - показывать или нет картинку у подсказки
  • ShowFooter: boolean - показывать или нет "подвал" (нижнюю часть). Обычнов подвале размещается какая-либо дополнительная информация, например, как по умолчанию приглашение нажать F1 для получения справки.
  • ShowHeader: boolean - показывать или нет "шапку", в нашем случае - это название определенное для Action1.
  • Show Short Cut: boolean - показывать или нет горячие клавиши для действия, если они были определены.
  • Border Style - стиль бордюра. Для подсказки ScreenTip возможо применения двух стилей: Normal - при этом форма окна подсказки быдет прямоугольной и Rounded - для придания форме подсказки скругленых углов (используется по умолчанию).
  • Corner Size: integer - определяет радиус скругления углов для подсказки.
  • Color Start и Color End : TColor - определяют градиент заливки формы ScreenTip"а.
  • Offset X и Offset Y: integer - определяют на каком расстоянии от элемента будет располагаться подсказка. Чем больше значение - тем дальше от элемента появится ScreenTip .
  • FooterImage: TBitmap - изображение, которое будет расположено в "подвале". Желательно не выбирать слишком большие изображения.

Дополнительно Вы можее настроить в редакторе вид и текст подсказки при выключенном действии (когда у Action свойство Enabled усановлено в False ). Для этого необходимо включить свойство "Disabled " в группе "Mode"

Ну, а теперь устанавливаем у главной формы приложения свойство ShowHint в значение True и запускаем приложение. У меня получилась вот такая подсказка для действия Action1:

Красота да и только. Но это ещё не всё. Помните, я сказал, что свойство Hint у Action1 для нас важно ? Сказал я это не просто так. Вы, вероятно, заметили, что после того как подсказки были сгенерированы, то текст у подсказок по умолчанию соответствовал тому, что было написано в Hint ? Следовательно было бы логично предположить, что ScreenTipManager , а вместе с ним и Ribbon "наследуют" все подсказки из контейнеров. Давайте проверим так ли это на самом деле.

Выделяем RibbonGroup1 и в свойстве DialogAction указываем Action1 . По логике вещей мы ничего не поменяли ни в подсказках ни где. Теперь точно такой же ScreenTip должен появиться и у кнопки дополнительного действия у группы. Проверяем:

Спрашивается: что за дела? Действие тоже самое, подсказку не меняли, мэнеджер не трогали.

Я не буду утверждать, что это на самом деле - глюк или недокументированная возможность , но факт остается фактом - RibbonGroup с опеределенным свойством DialogAction плевать хотела на всякие подсказки.

Но ведь у того же Word 2007 такие подсказки работают превосходно. Признаюсь, после того как мне был задан вопрос по поводу подсказок для DialogAction , я полез копаться в модулях Ribbon , отслеживать что, откуда и как поступает, какие свойства перекрываются, какие наследуются и пр.  Дошло даже до того, что стал собирать свой собственный мэнеджер подсказок. А оказалось, что решение проблемы-то лежит на самой, что ни есть поверхности, а точнее на панели компонентов Ribbon Controls :) .

Смотрите, как всё оказывается просто. Берем с панели Ribbon Controls компонент ScreenTipsPopup , укладываем его на форму и устанавливаем свойство Visible в false .

Теперь в свойстве Associate выбираем RibbonGroup1 . В свойстве ScreenTipsManager указываем ScreenTipManager1 и заполняем все необходимые свойства во вкладке ScreenTip . Запускаем приложение и любуемся результатом:

Конечно этот вариант никак нельзя назвать изящным или панацеей от всех болезней. Скорее всего это что-то наподобие "костыля" для Ribbon Controls , т.к. мы ассоциируем подсказку не конкретно с кнопкой вызова диалога дополнительных действий, а со всей панелькой RibbonGroup1 сразу. Но, тем не менее, вариант вполне работоспособный. А если учесть, что панели Ribbon изменяют свой размер автоматически, то при полном заполнении панели действиями пользователь в принципе и не почувствует "подвоха".

Ссылки по теме

  
Помощь
Задать вопрос
 программы
 обучение
 экзамены
 компьютеры
Бесплатный звонок
ICQ-консультанты
Skype-консультанты

Общая справка
Как оформить заказ
Тарифы доставки
Способы оплаты
Прайс-лист
Карта сайта
 
Бестселлеры
Курсы обучения "Atlassian JIRA - система управления проектами и задачами на предприятии"
Microsoft Windows 10 Профессиональная 32-bit/64-bit. Все языки. Электронный ключ
Microsoft Office для Дома и Учебы 2019. Все языки. Электронный ключ
Курс "Oracle. Программирование на SQL и PL/SQL"
Курс "Основы TOGAF® 9"
Microsoft Office 365 Персональный 32-bit/x64. 1 ПК/MAC + 1 Планшет + 1 Телефон. Все языки. Подписка на 1 год. Электронный ключ
Курс "Нотация BPMN 2.0. Ее использование для моделирования бизнес-процессов и их регламентации"
 

О нас
Интернет-магазин ITShop.ru предлагает широкий спектр услуг информационных технологий и ПО.

На протяжении многих лет интернет-магазин предлагает товары и услуги, ориентированные на бизнес-пользователей и специалистов по информационным технологиям.

Хорошие отзывы постоянных клиентов и высокий уровень специалистов позволяет получить наивысший результат при совместной работе.

В нашем магазине вы можете приобрести лицензионное ПО выбрав необходимое из широкого спектра и ассортимента по самым доступным ценам. Наши менеджеры любезно помогут определиться с выбором ПО, которое необходимо именно вам. Также мы проводим учебные курсы. Мы приглашаем к сотрудничеству учебные центры, организаторов семинаров и бизнес-тренингов, преподавателей. Сфера сотрудничества - продвижение бизнес-тренингов и курсов обучения по информационным технологиям.



 

О нас

 
Главная
Каталог
Новинки
Акции
Вакансии
 

Помощь

 
Общая справка
Как оформить заказ
Тарифы доставки
Способы оплаты
Прайс-лист
Карта сайта
 

Способы оплаты

 

Проекты Interface Ltd.

 
Interface.ru   ITShop.ru   Interface.ru/training   Olap.ru   ITnews.ru  
 

119334, г. Москва, ул. Бардина, д. 4, корп. 3
+7 (495) 229-0436   shopadmin@itshop.ru
Проверить аттестат
© ООО "Interface Ltd."
Продаем программное обеспечение с 1990 года