Updated: 19.12.2017

Most powerful skin-engine for Delphi and C++ Builder components!

AlphaSkins gallery

Tip of the day

Changing color of a (skinned) component.

Several ways exists for changing of colors in skinned controls:

  • Most components from the AlphaControls package has the SkinData property where CustomColor sub-property exists. If the SkinData.CustomColor property is True, then component will be colored by standard Color property.

  • Second way is more complex, but have more possibilities. Colors for different states of the control may be defined, also may be specified gradient or texture. The TsSkinManager component has the CommonSections property, where may be created any amount of virtual skin sections which may be used in components. These sections may inherit properties like colors or images from other existing section and doesn't loss data after a skin changing.

    Working example of the CommonSections property using may be downloaded here .

Latest site updates: 

Update: AlphaControls v12.22 Stable released19.12.2017

  • Added the PopupWidth property in TsComboBoxEx, TsColorBox, TsShellComboBox and TacCheckComboBox
  • Fixed issue when DrawNonClientArea property is False
  • Fixed some errors in the TsShellListView component
  • Solved some issues in skinning of standard ScrollBox
  • Solved issue with switching and activating of skins at the design-time
  • Solved issue with using of the Glyph property in the TsRoundBtn component
  • Improved support of the SKININDESIGN key (coloring of frames at the design-time)
  • Showing of own hints for glyphs in ComboEdits implemented

New skin: Topaz 2017

Download: Download
Size: 226.8 Kb
Price: Free

New tutorial: New in the AlphaControls 2017 (version 12)


This component is a collection of buttons which may be placed in any place of form, including borders and title area. Buttons are placed over all other controls. They may be painted with using of current skin sections, standard Windows theme or custom images.

New tutorial: New in the AlphaControls 2016 (version 11)

Support of forms scaling (automatic and manual).

Click image for enlarge.

In the TsSkinManager component the Options.ScaleMode property has been added with sm100, sm125, sm150, smAuto and smOldMode values. Default smOldMode value added for a backward compatibility. Application will have ...

New skin: Notes Plastic

Download: Download
Size: 120.5 Kb
Price: Free

New tutorial: New in the AlphaControls 2015 (version 10)

Removed all code which was marked in v9 as "deprecated".

Improved animation in all "glowing" effects.

Deprecated TsHintManager component has been removed. It's recommended to use the TsAlphaHints component instead. ...

New tutorial: Using of skins, protected by keys

The possibility of AlphaSkins encryption has been added in the AlphaControls v10. Such skin can't be unpacked and message about unregistered skin is shown when it loaded in the application. The message about unregistered skin will not be shown if special secure key contained in the ...

Nonuniversal personal skins

New skin: Notes Leather

Download: Download
Size: 204.1 Kb
Price: Free

Update: Released AlphaControls 2014 (version 9 Beta)28.02.2014

  • Most code has been rewritten, raised speed of rendering.
  • Controls can have outer effects, like shadows and others, look of effect defined in a skin.
  • Scrolls may have different sizes, arrow buttons can have different sizes too and may be invisible.

    View full list of changes in the version 9

New tutorial: Non-standard possibilities of components in the package

Properties common for all components
• BoundLabel

This property is available in all edit controls (TsComboBox, TsMaskEdit, TsSpinEdit and others). The property allows to add a label which will be near the edit control always and moved automatically together with this control. Options which are available in this property:

  • Active - creates a label for the control
  • Caption - text of the label
  • Font - specifies a font of the label. Change the UseSkinColor property to True if custom font color should be used.
  • Indent - space between a label and an owner control
  • Layout - specifies a position of a label
  • MaxWidth - maximum width of a text block (text is wrapped automatically if width is bigger than MaxWidth)
  • UseSkincolor specifies that color of text should be receive from current skin. Otherwise, the Font.color property will be used.

• AnimatEvents

The property is available in buttons from the package and in the TsCheckBox, TsRadioButton and TsTrackBar. Property defines events when will be used animation of component. Each button have own animation options. Animated control changing may be occured in four mouse events(mouse entering and leaving, left button down and up). If aeGlobalDef is enabled then will be used global animation options from TsSkinManager.AnimEffects.Buttons.Event property. In this case we can control behaviour of animation effects for all buttons from one point.

• DisabledKind

This property is available in buttons, edit controls and many other components. Defines looking of the disabled control. Available options:

  • dkBlended - if True then control is drawn alphablended. Blend value , used by definition, is equal to 0.4 and declared in the sDefaults.pas file
  • dkGrayed - if True then control is drawn with changed saturation. Saturation value DefDisabledGrayed>, used by definition, is equal to -90 and declared in the sDefaults.pas file

• SkinData

This property is available in most visible controls and allows to change a skin options in separate control. Available options:

  • CustomColor - ensures that a control is drawn with account of the standard Color property value
  • CustomFont - ensures that a control is drawn with account of the standard Font property definitions
  • SkinManager - specifies the TsSkinManager component which will be used for skinning of the component
  • SkinSection - contains a skin section name for this control. SkinSection allows to change a looking of the control by using of defined section from skin.

Some components (buttons, for sample) have HUEOffset and Saturation options in the SkinData property. These options allows to change color tones in separate control.

The SkinData.Invalidate procedure completely repaint skinned control (standard Invalidate procedure can work not always because sometimes a control image is in the skin cache and this cache image should be updated too).

SkinData.BeginUpdate and SkinData.EndUpdate procedures forbids and allows a control repainting accordingly.

New tutorial: Additional features in menus

  • The TsSkinManager.OnGetPopupItemData event
  • Headers for groups of menu items
  • Multiline texts in items
  • Additional vertical info bar
  • Global changing of font in menu
  • Customizable alphablending effect
  • Attachment to system menus of forms

New tutorial: Adding skins to existing project

Two main ways exists for adding skins:

  1. Using of standard components, controlled by the TsSkinManager component
  2. Replacement of standard controls by analogs from the AlphaControls package

1. Using of standard components

This way is more easier in most cases and allows to see a result after few minutes of work. Therefore, we first consider it. For a sample will be used an existing demo-program from Demos directory in BDS2005. Sources of this demo may be downloaded there.

After first compiling of this project we will receive a window where form and all controls have standard looking.

All we need now is ...

New tutorial: Skins creation. General information

Only unpacked AlphaSkins may be loaded to the skin editor. For unpacking and loading of packed skin (*.asz) use the "Unpack and open" button in the ASkinEditor.exe. All skins in unpacked state contains two main files :

  • Common bitmap image which contains all skin parts as one file (named as "Master.bmp" usually). The skin parts position in bitmap's image is not important. This bitmap image will be known in this manual as "MasterBitmap".
  • The second file ("Options.dat") is the configuration file of the skin, it's view like INI-file format (may be edited by any text editor). This file contains general options in the "GLOBALDATA" section and options for each type of control in a different sections (skin sections). Most of sections has identical parameters.

  • So, for a new skin creation needed ...

    New tutorial: TsAlphaHints component

    Controls a drawing of tooltips in the application with or without skins. To get this component working, it is enough to place him to the main form of application. He has one basic style already, this style is configured and used as default. That's all! Hints will be drawn automatically now while the Active property is True.

    A variety of styles may be made by changing of component settings. For managing styles there is a special design-time editor of the Templates property.

    Unlike TsHintManager component, the TsAlphaHints manager can draw hints with any shape. TsHintManager is obsolete and remains in the package for compatibility. Component TsAlphaHints more promising and preferable to use.

    Thanks to the TsAlphaHints tips may have a text formatting using Html tags, can display images and graphs. Animated hints may be produced also. Example of use can be seen in this demo.

    The component can apply user defined styles, and can use styles defined in the current skin, if it is active. The UseSkinData property should be enabled for using of styles from skin. Each skin has the 'HINT' section, where defined a data which used for drawing.

    ShowHint and HideHint procedures may ...

    New tutorial: TsAlphaImageList and TsVirtualImageList

    This component is an analogue of standard TImageList component, but there are some significant differences:

    • Changing of Height and Width properties without loss of icons.
    • It's possible to use this component as a storage of images with different sizes.
    • Allowed formats of icons : Ico, Png and Bmp 32bpp.
    • Images are embedded in executable file in the original format (with compression).
    • Support of the NumGlyphs property of buttons.

    New tutorial: TsSkinProvider component

    This component manages skinning of each separate form where he is placed. Despite the fact that it is created automatically (if TsSkinManager.SkinningRules.srStdForms is True), it is recommended to put this component on the form in design-time. This contributes to better controlling of the form, improves an animation of forms showing and many other operations. Also, this component contains many additional settings that help to influence the best skinning of the form on ...

    New tutorial: TsSkinManager component

    Component is designed for centralized management of program skinning process. For work of this component is enough to define a skin and set the Active property to True.

    There are two ways of skins deploying with the application ...

    New tutorial: Standard and third-party components

    To allow a support of 3rd-party or standard control within your project, the control must be declared in the SkinManager.ThirdParty property. Use a special design-time editor for a handy adding of required controls.

    List of currently supported components (increases ...

    New tutorial: Important stuff

    Here are a several simple tips, the implementation of which can significantly improve the behavior of the skinned application:

    1. Use the TsSkinProvider in all forms, where possible. It manages the drawing of form-owner. If the TsSkinProvider component is not placed on form in design-time, then it will be ...

    New tutorial: First application with AlphaSkins

    How to use AlphaSkins properly? Consider the simplest example :

    1. Create a new application

    2. Put the TsSkinManager component on the form, let's call him as sSkinManager1

    3. Add at least one skin to ...

    New tutorial: Installing questions and issues

    Below we try describe the main questions that may arise during installation of components and recommendations for addressing them.

    New tutorial: Installing the Alphacontrols package

    If you have a previous version of the package already installed, you should remove it using the following method.

    1. Open the "Component/Install packages" menu item in Delphi/C++ Builder and remove Alpha packages there
    2. Remove all AlphaControls files in the ...