📄 skin.ini_description_en.txt
字号:
----------------------------------------
Description of SKIN.INI-file
----------------------------------------
CONTENTS
1. Sections names and descriptions
1.1. Static sections
1.2. General style sections
1.3. Component-associated styles sections
1.4. Other sections
2. Values of standard properites
2.1. Color
2.2. Rectangle
2.3. Polygon (polyline)
2.4. Region
3. Properties for description of standard objects
3.1. Font
3.2. Filter
3.3. Transform Effect
4. Description of static sections
4.1. BasedOn
4.2. Strings
5. Skin styles
6. General skin styles
6.1. General skin style properties
6.2. Skin style elements
7. Selective skin styles
8. Component-associated styles properties
8.1. Label
8.2. Button
8.3. CheckBox
8.4. RadioButton
8.5. Edit
8.6. GroupBox
8.7. MultiState
8.8. MultiStateCheck
8.9. Form
8.10. UpDown
8.11. SpinEdit
9. Arithmetic operations
------------------------------------------------------------------------
====================================
1. Sections names and descriptions
====================================
File SKIN.INI consists of sections. Every section contains any number of
properties. Here is an example of a section:
[SectionName]
Property1_Name=Property1_Value
Property2_Name=Property2_Value
Property3_Name=Property3_Value
1.1. Static sections
====================
You can use these static sections (sections with fixed file names):
[BasedOn] - contains paths list of parent skin files
[Strings] - contains skin file parameters and variables
1.2. General style sections
===========================
Name of a general skin MUST NOT start with:
_Label
_Button
_CheckBox
_RadioButton
_Edit
_GroupBox
_MultiState
_MultiStateCheck
_Selective
_Form
_UpDown
_SpinEdit
and MUST NOT be equal to BasedOn or Strings.
1.3. Component-associated styles sections
=========================================
[_Label] - default TSXSkinLabel style
[_Label*] - custom TSXSkinLabel style
[_Button] - default TSXSkinButton style
[_Button*] - custom TSXSkinButton style
[_CheckBox] - default TSXSkinCheckBox style
[_CheckBox*] - custom TSXSkinCheckBox style
[_RadioButton] - default TSXSkinRadioButton style
[_RadioButton*] - custom TSXSkinRadioButton style
[_Edit] - default TSXSkinEdit style
[_Edit*] - custom TSXSkinEdit style
[_GroupBox] - default TSXSkinGroupBox style
[_GroupBox*] - custom TSXSkinGroupBox style
[_Form] - default TSXSkinForm style
[_FormSmallCaption] - default TSXSkinForm style
[_Form*] - custom TSXSkinForm style
[_UpDown] - default TSXSkinUpDown style (vertical)
[_UpDownH] - default TSXSkinUpDown style (horizontal)
[_UpDown*] - custom TSXSkinUpDown style
[_SpinEditLH] - default TSXSkinSpinEdit style (left, horiz)
[_SpinEditLV] - default TSXSkinSpinEdit style (left, vert)
[_SpinEditRH] - default TSXSkinSpinEdit style (right, horiz)
[_SpinEditRV] - default TSXSkinSpinEdit style (right, vert)
1.4. Other sections
===================
[_MultiState*] - TSXSkinButton or TSXSkinGroupBox glyph
[_MultiStateCheck* ] - TSXSkinButton or TSXSkinGroupBox glyph with
checked state (CanBeDown in VCL)
[_Selective*] - style, which is painted depending on region
width and height
==================================
2. Values of standard properites
==================================
2.1. Color
==========
Color can be set in various ways:
- default Windows scheme color - one of ScrollBar, Background,
ActiveCaption, InactiveCaption, Menu, Window, WindowFrame,
MenuText, WindowText, CaptionText, ActiveBorder, InactiveBorder,
AppWorkSpace, Highlight, HighlightText, BtnFace, BtnShadow,
GrayText, BtnText, InactiveCaptionText, BtnHighlight, 3DDkShadow,
3DLight, InfoText, InfoBk, HotLight, GradientActiveCaption,
GradientInactiveCaption, MenuHighlight, MenuBar
(e.g. ColorPropertyName=HighlightText);
- setting 3 hexadecimal values of color components, value MUST
start with $ or #: $RRGGBB, RR - red component, GG - green
component, BB - blue component (e.g. ColorPropertyName=$FF0000
gives red color, ColorPropertyName=$FFFF00 - yellow color, etc);
- setting 3 hexadecimal values of color components with alpha
channel using format: $AARRGGBB or #AARRGGBB, AA - transparency
level of the color: 00 - invisible, FF - opaque
(e.g. ColorPropertyName=$8000FF00 - semi-transparent green);
- using of decimal notation for alpha and 3 color components in
format: A,R,G,B (e.g. ColorPropertyName=255,0,0,255 - solid blue).
2.2. Rectangle
==============
Rectangle coordinates are set by four integer values: X1,Y1,X2,Y2,
where point (X1,Y1) - left-top corner of a rectangle, and (X2,Y2) -
right-bottom corner+1 pixel (like in all Windows GDI functions).
e.g. RectanglePropertyName=10,10,150,50
Also you can use style-specific variables and arithmetic operations.
Every general style has only two variables set:
* W - equals to the width of some element;
* H - equals to the height of some element.
e.g. RectanglePropertyName=0,0,W,H
See section 9 to look through supported arithmetic operations list.
2.3. Polygon (polyline)
=======================
Polygon (polyline) is defined as X,Y-coordinates, separated with
commas. You can use spaces to separate points. Format of polygon value:
PolyProperty=X1,Y1, X2,Y2, X3,Y3, X4,Y4, ...
You can use variables and arithmetic operations to specify
coordinates (see sections 2.2 and 9). Unlike rectangles, polygons and
polylines can be defined with floating-point numbers.
2.4. Region
===========
Regions are used to specify some areas (e.g. Mouse Capture) with the
use of combination of some standard geometrical figures.
Region is a comma-separated list of parameters.
Format of a region:
RegionProperty=Action1,Action2,Action3,...
where Action is one of:
- Full;
- Param1,AdditionalParams where Param1 is a concatenation of
inverse symbol (optional), operation symbol (optional) and
figure name;
Inverse symbol is "!" or "~" (without quotes).
Operation symbol is one of:
* "+" or "&" for combining (default);
* "*" for intersecting;
* "-" for excluding;
* "^" for exclusive or operation.
Figure name is one of:
* Rect: AdditionalParams is X1,Y1,X2,Y2 (see section 2.2);
* Ellipse: AdditionalParams is X1,Y1,X2,Y2 as for Rect;
* RoundRect: AdditionalParams is X1,Y1,X2,Y2,Roundness;
* Polygon: AdditionalParams is PtNum,X1,Y1,X2,Y2,X3,Y3,...
where PtNum - the number of points in a polygon;
* Image: AdditionalParams is FilePath,Width,Height,Color,ColorMask
Figure is a one-colour area of an image, FilePath is path of
JPEG or PNG-file, Width and Height can be set if image resizing
is needed, Color is in #AARRGGBB form and defines TRANSPARENT (!)
area color (transparent area is excluded from result region),
ColorMask is also in #AARRGGBB format. See following examples to
undertand, how ColorMask works:
e.g. Color=#00000000 MaskColor=#FF000000 - all fully-transparent
regions will be excluded;
Color=#FFFF0000 MaskColor=#FFFF0000 - only fully-solid reg
areas will be excluded;
Color=#00FF0000 MaskColor=#00FF0000 - all regions, color of
which has non-zero red component, will be excluded.
* ImageO: same as Image, but with image offset specified:
FilePath,OffsetX,OffsetY,Width,Height,Color,ColorMask
* BoxTile: AdditionalParams is:
PathMask,ResizeMode.Width,Height,Color,
ColorMask,Left,Right,Top,Bottom
PathMask is some string in format dir_path\file_*.ext, where
asterisk means that files dir_path\file_topleft.ext, ..._top.ext,
..._topright.ext, ..._left.ext, ..._center.ext, ..._right.ext,
..._bottomleft.ext, ..._bottom.ext and ..._bottomright.ext exist.
Left, Right, Top and Bottom are corresponding width and height of
corner images of BoxTile;
* BoxTileO: same as BoxTile, but with offset specified:
PathMask,ResizeMode,OffsetX,OffsetY,Width,Height,
Color,ColorMask,Left,Right,Top,Bottom
Examples:
1. Rounded ractangle with a round hole inslide:
RegionProperty=RoundRect,10,10,90,90,5,-Ellipse,40,40,50,50
2. Opaque area with a triangle hole inside:
RegionProperty=!Polygon,3,20,10,10,30,30,30
3. Semicircular region:
RegionProperty=Ellipse,0,0,50,50,*Rect,0,0,25,50
===================================================
3. Properties for description of standard objects
===================================================
3.1. Font
=========
Font object can be described with these properites:
- FontName (e.g. xxxx_FontName=Times New Roman);
- FontSize (e.g. xxxx_FontSize=12);
- FontColor - see section 2.1 (e.g. xxxx_FontColor=#FF0000);
- HasTextShadow - 1 to enable shadow: text shadow is drawn with a
1-pixel right-bottom shift (e.g. xxxx_HasTextShadow=1);
- ShadowColor - see section 2.1, used only when HastTextShadow=1
(e.g. ShadowColor=#A0808080);
- SmoothLevel - digital velue between 1 and 4, inclusive.
Smoothed text is drawn slower, I don't recommend to use smooth
level equal to 3 or 4 (e.g. xxxx_SmoothLevel=2);
- DoPrepaint - 1 to enable the prepaint feature. I recommend to use
DoPrepaint when SmoothLevel property is set, this will accelerate
redrawing of a smoothed text;
- FontStyle - a string of letters, each letter means that font
style parameter is set: B or b - bold, I or i - italic,
U or u - underlined, S or s - strike out
(e.g. xxxx_FontStyle=bi for bold italic font);
When no font object properties are set in skin.ini-files, they are
taken from TControl.Font property.
3.2. Filter
===========
Filter object is set using these properties:
- Filter - is one of:
* Lighten - adding constant values to red, green and blue color
components for each pixel of an image;
* LightenHorizG - Lighten, but with horizontal gradient;
* LightenVertG - Lighten, but with vertical gradient;
* Darken - subtracting constant values from red, green and blue
color components for each pixel of an image;
* DarkenHorizG - Darken, but with horizontal gradient;
* DarkenVertG - Darken, but with vertical gradient;
* Alpha - multiplying each pixel's alpha component value by the
FilterValue and dividing it by 255;
* Monochrome - making image black-and-white;
* ColorOverlay - using monotonous transparent image overlay;
* ColorOverlayHorizG - using horizontal gradient transparent
image overlay;
* ColorOverlayVertG - using vertical gradient transparent image
overlay;
(e.g. xxxx_Filter=LightenHorizG);
- FilterColor - see section 2.1: is used when Filter is equal to
Lighten, Darken or ColorOverlay;
- FilterColor1 - see section 2.1: is used when Filter is equal to
LightenHorizG, DarkenHorizG or ColorOverlayHorizG to specify
left start color of a gradient; LightenVertG, DarkenVertG or
ColorOverlayVertG to specify top start color of a gradient;
- FilterColor2 - see section 2.1: is used when Filter is equal to
LightenHorizG, DarkenHorizG or ColorOverlayHorizG to specify
right finish color of a gradient; LightenVertG, DarkenVertG or
ColorOverlayVertG to specify bottom finish color of a gradient;
- FilterValue - value between 0 and 255, inclusive; is used when
Filter is set to Alpha.
3.3. Transform Effect
=====================
Transform effect data containts information about the way of changing
one image to another (e.g. when you put mouse cursor over a button, it is
highlighted). Image can be changed in a moment: the first frame - an old
image is drawn, the second frame - a new image is drawn). If more than
2 frames are used for describing a trransform, some rules are used for
computing intermediate frames form the second till the next to last,
inclusive. Intermediate frames are drawn in this way: first, an old
image (with some changes) is drawn, and then a new image (with some
changes) is drawn.
Transform effect data is set with these properties:
- TransformO - can be set to one of these values:
* Blend
* Clear
* Fade
* OverDraw
* Slide
Defines a type of changes for an old image used in intermediate
frames.
- TransformDirO - can be set to one of these values:
* Right
* Top
* Bottom
* LeftRight
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -