Updated: Dec 16, 2023
Follow on twitter

Новое в AlphaControls 2016 (версия 11)

Поддержка масштабирования окон (автоматического и ручного).

Click image for enlarge.

В компоненте TsSkinManager добавлено свойство Options.ScaleMode со значениями sm100, sm125, sm150, smAuto и smOldMode. Значением по-умолчанию является smOldMode, при нем программа будет вести себя так же как с предыдущими версиями пакета, SkinManager никак не будет влиять на масштаб окна и изображений.

Значения sm100, sm125 и sm150 позволяют указывать вручную масштаб, в котором будут рисоваться формы приложения (100:100, 125:100 и 150:100 соответственно).

Если установлено значение smAuto, то SkinManager будет выбирать масштаб автоматически в зависимости от настроек системы.


Если иконки хранятся в компоненте TsAlphaImageList, то они меняют масштаб автоматически:


Рекомендации для разработчика приложения, масштабируемого с помощью свойства TsSkinManager.Options.ScaleMode:
  • Свойство TForm.Scaled должно быть отключено.
  • Функция TsSkinManager.ScaleInt масштабирует целое число к текущему масштабу, может применяться для получения новой высоты шрифта и в других случаях.
  • Для программного изменения масштаба окна (если необходимо) используйте процедуру TsSkinManager.UpdateScale(Ctrl: TWinControl; iCurrentScale: integer = 100). Процедура меняет масштаб окна от текущего, заданного параметром iCurrentScale к масштабу приложения.
  • Используйте TsAlphaImageList для хранения иконок, которые будут автоматически менять размер в зависимости от масштаба в SkinManager.
Ограничения, присутствующие при использовании свойства TsSkinManager.Options.ScaleMode:
  • Компонент SkinManager должен быть активен для работы свойства Options.ScaleMode
  • Системные диалоги всегда имеют масштаб, заданный в системе, SkinManager не влияет на масштаб системных диалогов.
  • Разработчик должен быть осторожен при манипуляциях с размерами и позиционированием элементов управления, а также со свойством Anchors
Возможность показа форм в виде всплывающего окна, ведущего себя как PopupMenu.

Для показа формы в стиле всплывающего окна достаточно вызвать одну из процедур, объявленных в модуле acPopupController.pas

При вызове первой процедуры показываемое окно будет выровнено автоматически относительно элемента управления AOwnerControl. Вторая процедура позволяет задать координаты левого верхнего угла формы.


Новые компоненты
TsSkinSelector

Компонент автоматически находит доступные скины и представляет их пользователю в виде удобного списка с предпросмотром. Изменение текущего скина происходит автоматически после выбора пользователем.

TsTrackEdit

Компонент, позволяющий редактировать числа с помощью всплывающего окна с TrackBar.

TsPopupBox

Компонент имеет вид ComboBox и позволяет показывать любую форму как всплывающее окно вместо списка ComboBox.

Сначала нужно создать форму которая будет показываться при нажатии на TsPopupBox. Затем эту форму нужно присвоить в свойстве TsPopupBox.PopupForm. После нажатия мышью на PopupBox или комбинации клавиш Alt+Down пользователем форма будет показана.

Дальнейшая обработка действий пользователя задается разработчиком. Например, можно задать на форме кнопку "Ok", которая закрывает форму и присваивает полю TsPopupBox.Text определенное значение.

TsGradientPanel

Компонент представляет собой панель, заполненную градиентом. Существует возможность использовать цвет текущего скина, что полезно для визуальной совместимости со всеми скинами.

Используйте свойство PaintData для задания цветов и направления градиента. Ниже изображен встроенный редактор свойства PaintData.CustomGradient:

Новые свойства
TsSkinManager.MenuSupport.CustomFont и TsSkinManager.MenuSupport.Font

Если свойство CustomFont установлено, то есть возможность изменять шрифт всплывющих меню с помощью свойства Font.

Это свойство работает только если скины активны.

TsColorSelect.PopupMode

Свойство позволяет изменять способ выбора цвета. Если задано как cpmColorList, то цвет выбирается из выпадающего списка. Если cpmPickColor, то при нажатии на компонент выпадает диалог выбора цвета.

TsSkinProvider.DisabledBlendColor

Позволяет изменять цвет затемнения окна при Enabled = False и использовании свойства TsSkinProvider.DisabledBlendValue

TsFrameBar.Items[i].Alignment

Позволяет выравнивать по горизонтали содержимое заголовка компонента.

TsTimePicker.Use12Hour

Если свойство включено, то время показываается в 12-ти часовом формате (AM/PM)

TsDateEdit.IsEmpty

Возвращает True если значение компонента пустое.

Новые процедуры
procedure ChangeControlColors(AControl: TControl; AFontColor, AColor: TColor);

Процедура меняет цвет фона и шрифта заданного элемента управления. Если задан цвет clNone и элемент управления зашкурен, то значение сбрасывается к тому, который задан в текущем скине. Процедура объявлена в модуле sVclUtils.pas

Другие изменения
Добавлена внутренняя секция "MAINCOLOR"

Данная секция в каждом скине задает заливку компонента основным цветом скина, бордюры отсутствуют.

Убрана большая часть устаревшего кода.




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