Updated: Dec 16, 2023
Follow on twitter

Дополнительные возможности в меню

  • Событие TsSkinManager.OnGetPopupItemData
  • Заголовки для групп элементов
  • Автоперенос текста в пунктах меню
  • Дополнительная вертикальная информационная полоса
  • Глобальное изменение шрифта меню
  • Настраиваемый эффект полупрозрачности
  • Присоединение к системному меню формы

Download the demo of menu items customizing

Событие TsSkinManager.OnGetPopupItemData

Событие позволяет менять шрифт при выводе текста для каждого элемента меню. Высота элементов меняется автоматически при изменении размера шрифта.

Параметры:

  • Item - текущий элемент меню
  • State - состояние элемента меню
  • ItemData - структура, содержащая запрашиваемые данные. На данные момент содержит свойство Font, в будущем планируется добавление новых свойств.
  • Заголовки для групп элементов

    В стандартном меню рисуется разделитель, если Caption = "-". В AlphaControls добавлена возможность выделения пункта меню как заголовка группы. Для этого свойство Caption должно начинаться и заканчиваться символом "-".

    Автоперенос текста в пунктах меню

    Текст в пункте меню переносится автоматически, если свойство Caption сожержит символы возврата каретки и перевода строки (#13#10).

    Дополнительная вертикальная информационная полоса

    Показ вертикальных полос в выпадающих меню включается в свойстве TsSkinManager.MenuSupport.UseExtraLine Если это свойство включено, то полоса будет рисоваться на всех выпадающих меню. Чтобы она рисовалась лишь на некоторых меню, а также, чтобы задать выводимый текст и иконку, используется событие "OnGetMenuExtraLineData".

    Событие TsSkinManager.OnGetMenuExtraLine вызывается перед рисованием выпадающего меню. Полоса будет выводиться для данного меню, если параметр LineVisible = True. Параметр FirstItem указывает на пункт меню, который является первым. Ориентируясь на этот параметр можно разрешать или запрещать показ дополнительной полосы, а также задавать для неё такие параметры как SkinSection, Caption и Glyph.

    Свойство TsSkinManager.MenuSupport.ExtraLineFont задаёт шрифт для текста.

    TsSkinManager.MenuSupport.ExtraLineWidth - ширина дополнительной полосы.

    Глобальное изменение шрифта меню

    Существует возможность задать шрифт для всех пунктов меню приложения.

    Изменение шрифта в меню возможно с помощью свойства TsSkinManager.MenuSupport.Font. Если свойство TsSkinManager.MenuSupport.CustomFont равно True, то свойство Font используется во всем приложении при отображении меню со скинами.

    Настраиваемый эффект полупрозрачности

    Свойство TsSkinManager.MenuSupport.AlphaBlend позволяет задавать величину прозрачности выпадающих меню приложения. При значении 0 меню полностью прозрачно. При 255 (значение по-умолчанию) - непрозрачно.

    Присоединение к системному меню формы

    Компонент TsSkinProvider имеет свойство SysSubMenu. В этом свойстве возможно указать - какое выпадающее меню будет прицеплено к системному меню формы.




    В большинстве случаев пункты меню обрабатываются и показываются в соответствии с настройками скина автоматически. Если в процессе работы программы добавляются новые пункты меню, то их необходимо дополнительно инициализировать, вызвав процедуру HookPopupMenu.

    Пример:

    sSkinManager1.SkinableMenus.HookPopupMenu(PopupMenu1, sSkinManager1.Active);



    Installing, using and licensing the demo programs © Sergii Goncharov, Ukraine, Odessa 2004-2023