Updated: Dec 16, 2023
Follow on twitter

Новое в AlphaControls 2014 (версия 9.0)

Переписана большая часть кода, увеличена скорость отрисовки.

Компоненты могут иметь теперь внешние эффекты, такие как тень и другие, вид эффекта зависит только от создателя скина.

Полосы прокрутки могут иметь разные размеры, кнопки со стрелками также могут быть разных размеров и могут отсутствовать вообще.

Новые свойства
TsSkinManager.Brightness

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

sSkinManager1.CommonSkinData.BrightMin; sSkinManager1.CommonSkinData.BrightMax;

TsSkinManager.Effects.DiscoloredGlyphs

Свойство позволяет убрать цвет из иконок в тех компонентах приложения, которые не являются активными в данный момент (не в фокусе и на них не наведена мышь). Но иконка не становится просто серой, её оттенок зависит от свойства Color секции скина, соответствующей данному элементу.

TsSkinManager.ScrollsOptions.ScrollSize

Задаёт ширину полосы прокрутки во всём приложении. Если значение свойства равно -1, то ширина берется из системы.

TsSkinManager.ScrollsOptions.ButtonsSize

Задаёт размер кнопок полосы прокрутки во всём приложении. Если значение свойства равно -1, то размер кнопок берется из системы.

TsSkinManager.Options

Несколько новых опций для настройки работы скинов.

  • CheckEmptyAlpha - если включено, то при выводе 32bpp иконок происходит проверка альфаканала - задана маска или он пуст. Может помочь, если иконка не выводится на кнопке или другом компоненте из-за пустого альфаканала.
  • NoMouseHover - запрещает Hover effects при прохождении мыши над компонентом. Может быть полезно при работе приложения на устройствах с тач-скрином.
  • NativeBordersMaximized - если включено, то форма не будет использовать ExtendedBorders когда развернута на весь экран. Помогает решить проблему с перекрытием автоскрываемой панели задач системы, когда приложение развернуто на весь экран.
  • StdGlyphsOrder - задаёт стандартную очередность иконок в кнопках, когда NumGlyphs больше 1. Если выключено, то вторая по счёту иконка используется при отрисовке компонента, когда мышь находится над ним (Hot state). Если опция включена, то вторая иконка будет выводиться при неактивном компоненте (Enabled = False).
  • OptimizingPriority (opMemory, opSpeed) - свойство определяет чему отдавать предпочтение при оптимизации. Эффект от использования этого свойства может быть заметен, например, при переключении закладок. Если выбрано opSpeed, то изображение компонента остается в кеше, когда он становится невидим. Повторный показ компонента происходит быстрее, так как изображение не нужно создавать заново. Если выбрано opMemory, то кешированное изображение компонента очищается, если он становится невидим.

TsSkinManager.Effects.AllowOuterEffects

Разрешает или запрещает внешние эффекты у компонентов во всем приложении.

SkinData.VertScroll и SkinData.HorzScroll

Свойства добавлены в компонентах имеющих полосы прокрутки. Они позволяют задавать разные размеры полосы прокрутки и их кнопок индивидуально для каждого компонента.

SkinData.OuterEffects

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

Описание создания тени и других эффектов находится в руководстве по созданию скинов.

Кнопки: добавлено свойство SkinData.ColorTone

Заменяет цвет кнопки, заданный в скине. Значением по-умолчанию является clNone, в этом случае кнопка рисуется так, как задано в скине.

TsPageControl: ReflectedGlyphs, TabAlignment and TabMargin properties

Задают эффект отражения иконок, правило выравнивания содержимого закладки и отступ от краев закладки.

Все Labels: добавлено свойство SkinManager

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

Новые функции
function acShowHintWnd(HintText: string; Pos: TPoint): THintWindow

Выводит подсказку с заданным текстом в заданных координатах экрана. Подсказка не убирается автоматически. Функция возвращает окно типа THintWindow, которое можно полностью освободить, когда подсказку нужно убрать.

События
TsFrameBar.OnFrameShow и TsFrameBar.OnFrameClose

Возникают после открытия или закрытия фрейма.

TsAlphaHints.OnHideHint

Возникает при закрытии окна подсказки.

Другие изменения
Значение Tag для отмены скинов в компоненте изменено.

В предыдущих версиях пакета значение Tag, равное -98, отменяло скины в компоненте. В версии 9 это значение работает так же как и раньше, но теперь также достаточно лишь установить один бит: "Tag := Tag or 256" или Tag := 256. Это позволяет использовать остальные биты в программе, если нужно.

Отменена регистрация обработчика acPng в последних версиях Delphi.

По-умолчанию для загрузки Png теперь используется обработчик, встроенный в Delphi (в последних версиях).

Добавлена секция "TRANSPARENT"

Добавлена внутренняя секция скинов "TRANSPARENT". Её не обязательно добавлять в новые скины, так как она в любом случае создаётся менеджером при загрузке скина. Эта секция может использоваться в компонентах (Panels, Buttons, frames и др.), которые должны быть полностью прозрачны и без рамок.

Отступ кнопки в ComboBox до краев компонента

Добавлена возможность задания отступа кнопки в скине.

Добавлены новые шаблоны для TsAlphaHints

В демо-программе ASkinDemo добавлены новые шаблоны подсказок в компоненте sAlphaHints1. Этот компонент можно скопировать в свой проект и удалить из него ненужные шаблоны, оставив только те, что будут использоваться.

Улучшения в программе - редакторе скинов

Улучшена процедура выбора изображения, добавлен зум мышью (Alt + MouseWheel). Добавлены новые свойства для поддержки OuterEffects. Улучшена связь с программой предварительного просмотра редактируемого скина. Исправлены некоторые ошибки.

+

Улучшен показ подсказок в элементах заголовка формы, добавлена анимация с размытием (процедура AnimShowControl), в SpeedButtons добавлено сокращение текста многоточием, если он не вмещается полностью (при WordWrap = False) и другие небольшие улучшения.

Отмечено как deprecated (будет убрано из пакета позже):

  • unit acntUtils:
    function AddChar function AddCharR function WordToByte_ procedure GetIniSection function OffsetPoint function SubStrInclude function GetWordNumber function OemToAnsiStr function IsWordPresent function AnsiProperCase function CorrectString function CurRound function GetCents procedure SetObjProp function acMakeString function GetSystemDir function GetAppName function GetFileSize function CopyFiles function MoveFiles procedure GetDirs function acGetCurrentDir procedure InitControl function Scrolls_SetStyle function RotateRect0
  • unit acSkinPack:
    procedure PackDir procedure UnpackSkinFile
  • unit sAlphaGraph:
    procedure CopyMasterRectA procedure ConvertMaskToAlpha
  • unit sConst:
    types TsHintStyle TsHintsPredefinitions TsShadowingShape variables (use TsSkinManager.Options property instead) ac_CheckEmptyAlpha MouseForbidden ac_NoExtBordersIfMax acOldGlyphsOrder ac_OptimizeMemory
  • unit sDateUtils:
    function ExtractDay function GetKvartal function LastDayOfPrMonth
  • unit sMaskData: TsGeneralData record have deprecated items (Props array should be used):
    Color Transparency GradientPercent GradientData GradientArray ImagePercent FontColor HotColor HotTransparency HotGradientPercent HotGradientData HotGradientArray HotImagePercent HotFontColor FadingEnabled FadingIterations
  • unit sScrollBox:
    procedure SkinScrollInView (use standard procedure)
  • unit sToolEdit:
    OnDrawDay event, use OnGetCellParams instead
  • unit sGraphUtils:
    function CreateBmp24
  • components:
    TsHintManager (use TsAlphaHints, TsHintManager will be moved to the AlphaExtra package later)
  • units:
    sHintDesigner sHintEditor sHintManager



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