Updated: Dec 16, 2023
Follow on twitter

Нестандартные возможности компонентов пакета

Свойства, общие для всех компонентов
• BoundLabel

Свойство доступно во всех элементах редактирования. Позволяет задать метку, которая находится возле компонента и автоматически перемещается вместе с ним. Настройки, доступные в этом свойстве:

  • Active - создает метку для данного компонента
  • Caption - текст метки
  • Font - шрифт метки. Чтобы задать цвет текста отличный от заданного в скине, свойство UseSkinColor должно быть изменено в False
  • Indent - отступ текста от компонента владельца
  • Layout - задает раположение текста относительно компонента владельца
  • MaxWidth - максимальная ширина текста (текст переносится автоматически, если его ширина больше)
  • UseSkincolor - указывает, что цвет текста должен быть получен из текущего скина

• AnimatEvents

Свойство доступно в кнопках из пакета, а также в таких компонентах как TsCheckBox, TsRadioButton, TsTrackBar. Оно указывает при каких событиях может происходить анимация компонента. Для каждого компонента есть возможность использовать собственные настройки анимации. Анимированное изменение компонента может вызываться при наведении и ухода мыши, а также нажатии и отпускании ее клавиш. Если включено aeGlobalDef, то анимация будет управляться из свойства TsSkinManager.AnimEffects.Buttons.Event. Таким образом можно менять глобально поведение для всех кнопок в приложении.

• DisabledKind

Свойство доступно в кнопках, элементах редактирования и многих других компонентах. Оно определяет, как должен выглядеть компонент если свойство Enabled = False. Доступные настройки:

  • dkBlended - компонент будет полупрозрачен. Коэффициент полупрозрачности DefDisabledBlend, используемый по умолчанию, равен 0.4 и объявлен в файле sDefaults.pas
  • dkGrayed - компонент будет рисоваться с пониженной цветностью. Коэффициент цветности DefDisabledGrayed, используемый по умолчанию, равен -90 и объявлен в файле sDefaults.pas

• SkinData

Доступно в большинстве видимых компонентов, позволяет менять настройки скина в отдельном компоненте. Доступные настройки:

  • CustomColor - указывает, что нужно использовать цвет компонента из свойства "Color"
  • CustomFont - использовать цвет текста из свойства "Font" компонента
  • SkinManager - позволяет указывать используемый менеджер скинов для компонента
  • SkinSection - свойство позволяет менять внешний вид компонента, используя заданную секцию скина

Некоторые компоненты (например кнопки) имеют также свойства HUEOffset и Saturation. Эти свойства позволяют изменять цветовые настройки в отдельном компоненте.

Процедура SkinData.Invalidate заставляет компонент полностью перерисоваться (обычный Invalidate не всегда может сработать из-за того, что иногда изображение компонента может находиться в кэше и оно должно быть также обновлено).

Процедуры SkinData.BeginUpdate и SkinData.EndUpdate запрещают и разрешают отрисовку компонента соответственно.

Список дополнительных свойств в аналогах стандартных компонентов
TsLabel

  • SkinSection - свойство позволяет менять внешний вид компонента, используя заданную секцию скина
  • UseSkinColor позволяет отключить использование цвета из скина. Текст будет выводится цветом, заданным в свойстве компонента Font.Color.

TsMemo

  • Событие OnScrollCaret возникает при передвижении каретки в компоненте
  • Событие OnVScroll возникает при вертикальной прокрутке компонента

TsButton

Свойства, появившиеся в последних версиях VCL, поддерживаются в данном компоненте и в старых версиях Delphi. Это свойства CommandLinkHint, DisabledImageIndex, DropDownMenu, HotImageIndex, Images, ImageAlignment, ImageIndex, ImageMargins, PressedImageIndex, SelectedImageIndex и Style.

Добавлены свойства:

  • ContentMargin задает расстояние от рамки кнопки до ее содержимого
  • Reflected добавляет зеркальное отражение иконки, если она задана
  • ShowFocus позволяет запретить отрисовку прямоугольника фокуса
  • Down заставляет кнопку рисоваться в нажатом состоянии

TsCheckBox
  • AutoSize включает автоматическое изменение размеров компонента при изменении его содержимого
  • GlyphChecked и GlyphUnChecked позволяют задать иконки для разных состояний компонента
  • ImgChecked и ImgUnChecked задают индексы иконок из свойства Images, если свойство Images задано
  • Images задает альтернативные иконки для компонента
  • Margin задает расстояние от края компонента до его содержимого
  • ReadOnly позволяет запретить изменение значения компонента пользователем
  • ShowFocus позволяет запретить отрисовку прямоугольника фокуса
  • TextIndent задает отступ текста от иконки
  • VerticalAlign задает вертикальное выравнивание иконки в компоненте
  • WordWrap поддерживается в старых версиях Delphi, задает автоматический перенос текста если AutoSize выключено
  • Событие OnValueChanged возникает после изменения значения компонента

TsRadioButton
  • AutoSize включает автоматическое изменение размеров компонента при изменении его содержимого
  • GlyphChecked и GlyphUnChecked позволяют задать иконки для разных состояний компонента
  • ImgChecked и ImgUnChecked задают индексы иконок из свойства Images, если свойство Images задано
  • Images задает альтернативные иконки для компонента
  • Margin задает расстояние от края компонента до его содержимого
  • ReadOnly позволяет запретить изменение значения компонента пользователем
  • ShowFocus позволяет запретить отрисовку прямоугольника фокуса
  • TextIndent задает отступ текста от иконки
  • VerticalAlign задает вертикальное выравнивание иконки в компоненте
  • WordWrap поддерживается в старых версиях Delphi, задает автоматический перенос текста если AutoSize выключено
  • Событие OnValueChanged возникает после изменения значения компонента

TsListBox

  • AutoHideScroll позволяет компоненту автоматически прятать вертикальную прокрутку, если она не нужна
  • Событие OnVScroll возникает при вертикальной прокрутке компонента

TsComboBox

  • VerticalAlignment задает выравнивание текста по вертикали

TsGroupBox

Свойства компонента, позволяющие изменить вид заголовка компонента, работают при включенных скинах:

  • CaptionLayout задаёт расположение текста заголовка компонента
  • CaptionMargin указывает расстояние текста от краёв этого заголовка
  • CaptionYOffset задаёт смещение клиентской области с заголовком по вертикали
  • CaptionSkin позволяет определить секцию скина, которая будет задавать внешний вид заголовка
  • CaptionWidth - ширина заголовка, если значение свойства 0, то размер заголовка вычисляется автоматически

TsPanel

Событие OnPaint возникает при рисовании компонента, имеет параметер Canvas, на котором возможно добавить свою отрисовку. При включенных скинах это событие возникает при изменении изображения компонента в кэше. Это обычно происходит автоматически, но, если необходимо, чтобы кэш изменился принудительно, то нужно выставить флаг sPanel1.SkinData.BGChanged в True.

TsBitBtn

  • Свойство Alignment определяет выравнивание текста и иконки на кнопке
  • Blend процент прозрачности иконки на кнопке
  • DisabledGlyphKind определяет алгоритм автоматического рисования картинок для недоступных (disabled) кнопок
  • Down заставляет кнопку рисоваться в нажатом состоянии
  • DrawOverBorder указывает очередность рисования текста и иконки на кнопке (сначала бордюры кнопки, а потом содержимое, и наоборот)
  • FocusMargin определяет расстояние между текстом и прямоугольником фокуса в пикселях
  • Grayed задаёт рисование иконки контрола в оттенках серого
  • ImageIndex задаёт индекс изображения в компоненте ImageList, который связан с кнопкой, и из которого будет взята иконка с указанным индексом, и нарисована на кнопке
  • Images имя компонента, который будет являться хранилищем картинок для кнопки, и из которого кнопке можно назначить необходимое изображение. Обычно таким компонентом является компонент TImageList или ему подобный. Раскрыв выпадающий список в инспекторе объектов можно увидеть все доступные для этого свойства исконки (если они есть), которые могут быть использованы кнопкой
  • Reflected включает эффект зеркального отражения иконки
  • ShowCaption определяет, будет ли показан текст, взятый из свойства Caption на кнопке
  • ShowFocus определяет, рисовать ли прямоугольник фокуса на кнопке, если она имеет фокус
  • TextAlignment определяет расположение текста в компоненте
  • TextOffset расстояние между текстом кнопки и ее иконкой в пикселях
  • WordWrap разрешает автоматический перенос текста

Событие OnPaint возникает при рисовании компонента и имеет параметер Bitmap, на котором возможно добавить свою отрисовку. При включенных скинах это событие возникает при изменении изображения компонента в кэше. Это обычно происходит автоматически, но, если необходимо, чтобы кэш изменился принудительно, то нужно выставить флаг sPanel1.SkinData.BGChanged в True.

TsSpeedButton

  • Свойство Alignment определяет выравнивание текста и иконки на кнопке
  • Blend процент прозрачности иконки на кнопке
  • ButtonStyle задаёт режим, в котором будет работать кнопка. Доступные стили:
    1. tbsButton, кнопка появляется и функционирует как обычная кнопка SpeedButton
    2. tbsDropDown, кнопка имеет стрелку, направленную вниз (указывающую на наличие выпадающего меню)
    3. tbsSeparator, кнопка появляется как пустое место на панели инструментов (используется для отделения других элементов управления друг от друга)
    4. tbsDivider, кнопка появляется как вертикальная линия на панели инструментов (используется для отделения других элементов управления друг от друга)
  • DisabledGlyphKind определяет алгоритм автоматического рисования картинок для недоступных (disabled) кнопок
  • DrawOverBorder указывает очередность рисования текста и иконки на кнопке (сначала бордюры кнопки, а потом содержимое, и наоборот)
  • DropDownMenu определяет PopupMenu, которое будет показано при нажатии на стрелку, если ButtonStyle = tbsDropDown. Если событие OnClick кнопки не задано, то меню будет выпадать при нажатии любой области кнопки.
  • FocusMargin определяет расстояние между текстом и прямоугольником фокуса в пикселях
  • Grayed задаёт рисование иконки контрола в оттенках серого
  • ImageIndex задаёт индекс изображения в компоненте ImageList, который связан с кнопкой, и из которого будет взята иконка с указанным индексом, и нарисована на кнопке
  • Images содержит имя компонента, который будет являться хранилищем картинок для кнопки, и из которого кнопке можно назначить необходимое изображение. Обычно таким компонентом является компонент TImageList или ему подобный. Раскрыв выпадающий список в инспекторе объектов можно увидеть все доступные для этого свойства исконки (если они есть), которые могут быть использованы кнопкой
  • Reflected включает эффект зеркального отражения иконки
  • ShowCaption определяет, будет ли показан текст, взятый из свойства Caption на кнопке
  • TextAlignment определяет расположение текста в компоненте
  • TextOffset расстояние между текстом кнопки и ее иконкой в пикселях
  • WordWrap разрешает автоматический перенос текста

Событие OnPaint возникает при рисовании компонента и имеет параметер Bitmap, на котором возможно добавить свою отрисовку. При включенных скинах это событие возникает при изменении изображения компонента в кэше. Это обычно происходит автоматически, но, если необходимо, чтобы кэш изменился принудительно, то нужно выставить флаг sPanel1.SkinData.BGChanged в True.

TsScrollBox

Свойство AutoMouseWheel включает автоматическую прокрутку компонента колесиком мыши. Прокрутка работает, если фокус находится на одном из компонентов, находящемся на компоненте ScrollBox.

Событие OnPaint возникает при рисовании компонента, имеет параметер ControlBmp, на котором возможно добавить свою отрисовку. При включенных скинах это событие возникает при изменении изображения компонента в кэше. Это обычно происходит автоматически, но, если необходимо, чтобы кэш изменился принудительно, то нужно выставить флаг sScrollBox1.SkinData.BGChanged в True.

Также добавлены события OnAfterScroll, OnBeforeScroll, OnMouseEnter, OnMouseLeave

TsCheckListBox

Свойство HeaderSkin указывает секцию, которую следует использовать при рисовании заголовков групп

TsSplitter

  • Glyph позволяет задать иконку, которая будет рисоваться на компоненте как Grip
  • ShowGrip задаёт видимость grip-области компонента
  • Добавлены события OnMouseEnter и OnMouseLeave

TsPageControl

В компоненте TsPageControl добавлена возможность показа кнопок "Закрыть" для каждой закладки, а также добавлено несколько новых режимов использования закладок (как обычная кнопка и как кнопка с выпадающим меню). Также добавлена возможность автоматического поворота текста на 90 градусов.

  • AccessibleDisabledPages позволяет запретить доступ на страницы, у которых свойство Enabled = False
  • ActiveIsBold заставляет рисоваться текст активной закладки шрифтом со стилем Bold
  • CloseBtnSkin задаёт секцию, которая будет использоваться при рисовании кнопок закрытия вкладок
  • RotateCaptions указывает, что текст в закладках необходимо повернуть на 90 градусов
  • ShowCloseBtns включает показ кнопок "Закрыть" на закладках. На отдельных страницах есть возможность отключения такой кнопки, используя свойство TsTabSheet.UseCloseBtn
  • TabPadding устанавливает отступы от краев закладки до их содержимого
  • В событии OnPageChanging существует возможность запрета перехода на страницу до ее активации
  • Также добавлены события OnCloseBtnClick, OnDblClick, OnTabMouseEnter и OnTabMouseLeave

В модуле реализована процедура DeletePage, позволяющая удалить страницу без перехода на первую страницу компонента.

TsTrackBar

  • ThumbGlyph позволяет задать иконку, которая будет рисоваться вместо дефолтного ползунка
  • BarOffsetV и BarOffsetH задают смещения содержимого компонента относительно его краев при включенных скинах
  • Событие OnUserChange возникает при перемещении ползунка пользователем
  • Событие OnSkinPaint возникает при рисовании компонента и позволяет добавить свою отрисовку

TsGauge

  • CalcPercents позволяет отключить подсчет и вывод прогресса в процентах. Если свойство отключено, то выводится значение Progress
  • ShowText позволяет отключить вывод текста
  • Suffix содержит текст, который будет добавлен к выводимому значению
  • Событие OnPaintText возникает перед выводом текста и позволяет его переопределить

TsSpinEdit

  • Alignment задает расположение текста в компоненте
  • EditorEnabled позволяет запретить редактирование значения с помощью прямого ввода, оставляя пользователю только кнопки Вверх/Вниз
  • AllowNegative разрешает/запрещает ввод отрицательных чисел
  • ShowSpinButtons позволяет отключить показ кнопок в компоненте
  • NextTabControl и PrevTabControl задают следующий и предыдущий контролы, на который будет передан фокус после нажатия кнопки табуляции
  • События OnDownClick и OnUpClick возникают при нажатии встроенных кнопок компонента

TsImage

  • Свойство Blend задаёт степень прозрачности изображения, выводимого компонентом
  • ImageIndex указывает на индекс изображения в ImageList, которое будет выводиться
  • Images содержит имя компонента, который будет являться хранилищем картинок, и из которого можно назначить необходимое изображение. Обычно таким компонентом является компонент TImageList или ему подобный. Раскрыв выпадающий список в инспекторе объектов можно увидеть все доступные для этого свойства исконки (если они есть), которые могут быть использованы компонентом.
  • Grayed позволяет включать и выключать вывод рисунка в цвете
  • Reflected добавляет зеркальное отражение рисунка, если он задан
  • SkinData позволяет менять внешний вид компонента
  • UseFullSize указывает как считать размер рисунка если включено свойство AutoSize. Если UseFullSize включено, то размер изображения вычисляется вместе с отражением.



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