📄 sxskinlibrary.pas
字号:
SetCaptionRightOffset:Boolean;
SetCaptionBottomOffset:Boolean;
//
Style:String;
OverStyle:String;
FD:TSXFontData;
CaptionLeftOffset:Integer;
CaptionTopOffset:Integer;
CaptionRightOffset:Integer;
CaptionBottomOffset:Integer;
DefGlyphFilter:TSXFilterData;
end;
PSXSkinButtonStateParam=^TSXSkinButtonStateParam;
TSXSkinButtonStyle=class(TSXSkinStyle)
public
NUUState:TSXSkinButtonStateParam;
NFUState:TSXSkinButtonStateParam;
HUUState:TSXSkinButtonStateParam;
HFUState:TSXSkinButtonStateParam;
DFUState:TSXSkinButtonStateParam;
RUUState:TSXSkinButtonStateParam;
NUCState:TSXSkinButtonStateParam;
NFCState:TSXSkinButtonStateParam;
HUCState:TSXSkinButtonStateParam;
HFCState:TSXSkinButtonStateParam;
DFCState:TSXSkinButtonStateParam;
RUCState:TSXSkinButtonStateParam;
//
HInButtonEffect:TSXTransformEffectData;
HOutButtonEffect:TSXTransformEffectData;
CheckButtonEffect:TSXTransformEffectData;
UncheckButtonEffect:TSXTransformEffectData;
DownButtonEffect:TSXTransformEffectData;
UpButtonEffect:TSXTransformEffectData;
EnableButtonEffect:TSXTransformEffectData;
DisableButtonEffect:TSXTransformEffectData;
FocusButtonEffect:TSXTransformEffectData;
UnfocusButtonEffect:TSXTransformEffectData;
//
HInGlyphEffect:TSXTransformEffectData;
HOutGlyphEffect:TSXTransformEffectData;
CheckGlyphEffect:TSXTransformEffectData;
UncheckGlyphEffect:TSXTransformEffectData;
DownGlyphEffect:TSXTransformEffectData;
UpGlyphEffect:TSXTransformEffectData;
EnableGlyphEffect:TSXTransformEffectData;
DisableGlyphEffect:TSXTransformEffectData;
FocusGlyphEffect:TSXTransformEffectData;
UnfocusGlyphEffect:TSXTransformEffectData;
//
HInDDGlyphEffect:TSXTransformEffectData;
HOutDDGlyphEffect:TSXTransformEffectData;
CheckDDGlyphEffect:TSXTransformEffectData;
UncheckDDGlyphEffect:TSXTransformEffectData;
DownDDGlyphEffect:TSXTransformEffectData;
UpDDGlyphEffect:TSXTransformEffectData;
EnableDDGlyphEffect:TSXTransformEffectData;
DisableDDGlyphEffect:TSXTransformEffectData;
FocusDDGlyphEffect:TSXTransformEffectData;
UnfocusDDGlyphEffect:TSXTransformEffectData;
//
SetDropDownGlyphWidth:Boolean;
SetDropDownGlyphHeight:Boolean;
SetDropDownGlyphOffset:Boolean;
//
DropDownGlyphWidth:Integer;
DropDownGlyphHeight:Integer;
DropDownGlyphOffset:Integer;
procedure AssignStyle(Style:TSXSkinStyle); override;
procedure SetParameter(const Name,Value:String); override;
procedure GetCurrentBState(var BState:TSXSkinButtonStateParam;
FChecked,Enabled,FMouseOver,FDown,FLastFocused:Boolean);
procedure SaveToStream(S:TStream;const RootPath:String); override;
procedure LoadFromStream(S:TStream;Version:Integer;
const RootPath,ZipFilePath:String;DestList1,DestList2:TSXSkinStyleList); override;
end;
TSXSkinEditStateParam=record
SetStyle:Boolean;
Style:String;
FD:TSXFontData;
end;
PSXSkinEditStateParam=^TSXSkinEditStateParam;
TSXSkinEditStyle=class(TSXSkinStyle)
public
NUState:TSXSkinEditStateParam;
NFState:TSXSkinEditStateParam;
HUState:TSXSkinEditStateParam;
HFState:TSXSkinEditStateParam;
RUState:TSXSkinEditStateParam;
//
SetTextLeftOffset:Boolean;
SetTextTopOffset:Boolean;
SetTextRightOffset:Boolean;
SetTextBottomOffset:Boolean;
TextLeftOffset:Integer;
TextTopOffset:Integer;
TextRightOffset:Integer;
TextBottomOffset:Integer;
//
HInEditEffect:TSXTransformEffectData;
HOutEditEffect:TSXTransformEffectData;
EnableEditEffect:TSXTransformEffectData;
DisableEditEffect:TSXTransformEffectData;
FocusEditEffect:TSXTransformEffectData;
UnfocusEditEffect:TSXTransformEffectData;
procedure AssignStyle(Style:TSXSkinStyle); override;
procedure SetParameter(const Name,Value:String); override;
procedure SaveToStream(S:TStream;const RootPath:String); override;
procedure LoadFromStream(S:TStream;Version:Integer;
const RootPath,ZipFilePath:String;DestList1,DestList2:TSXSkinStyleList); override;
end;
TSXSkinFormStateParam=record
SetMaskLeftWidth:Boolean;
SetMaskRightWidth:Boolean;
SetMaskTopHeight:Boolean;
SetMaskBottomHeight:Boolean;
SetMaskTopLeft:Boolean;
SetMaskTopRight:Boolean;
SetMaskBottomLeft:Boolean;
SetMaskBottomRight:Boolean;
SetMaskLeft:Boolean;
SetMaskRight:Boolean;
SetMaskTop:Boolean;
SetMaskBottom:Boolean;
SetFullMask:Boolean;
SetResizeTopLeft:Boolean;
SetResizeTopRight:Boolean;
SetResizeBottomLeft:Boolean;
SetResizeBottomRight:Boolean;
SetResizeLeft:Boolean;
SetResizeRight:Boolean;
SetResizeTop:Boolean;
SetResizeBottom:Boolean;
SetCaptionRegion:Boolean;
SetCaptionStyle:Boolean;
SetLeftFrameStyle:Boolean;
SetRightFrameStyle:Boolean;
SetBottomFrameStyle:Boolean;
SetIconRect:Boolean;
SetTextRect:Boolean;
SetCloseRect:Boolean;
SetMaximizeRect:Boolean;
SetMinimizeRect:Boolean;
SetHelpRect:Boolean;
SetCloseButton:Boolean;
SetMaximizeButton:Boolean;
SetMinimizeButton:Boolean;
SetRestoreButton:Boolean;
SetHelpButton:Boolean;
SetTextAlignment:Boolean;
//
MaskLeftWidth:Integer;
MaskRightWidth:Integer;
MaskTopHeight:Integer;
MaskBottomHeight:Integer;
MaskTopLeft:String;
MaskTopRight:String;
MaskBottomLeft:String;
MaskBottomRight:String;
MaskLeft:String;
MaskRight:String;
MaskTop:String;
MaskBottom:String;
FullMask:String;
ResizeTopLeft:String;
ResizeTopRight:String;
ResizeBottomLeft:String;
ResizeBottomRight:String;
ResizeLeft:String;
ResizeRight:String;
ResizeTop:String;
ResizeBottom:String;
CaptionRegion:String;
CaptionStyle:String;
LeftFrameStyle:String;
RightFrameStyle:String;
BottomFrameStyle:String;
IconRect:String;
TextRect:String;
CloseRect:String;
MaximizeRect:String;
MinimizeRect:String;
HelpRect:String;
CloseButton:String;
MaximizeButton:String;
MinimizeButton:String;
RestoreButton:String;
HelpButton:String;
TextFont:TSXFontData;
TextAlignment:TAlignment;
end;
PSXSkinFormStateParam=^TSXSkinFormStateParam;
TSXSkinFormStyle=class(TSXSkinStyle)
public
NUState:TSXSkinFormStateParam;
NFState:TSXSkinFormStateParam;
MUState:TSXSkinFormStateParam;
MFState:TSXSkinFormStateParam;
XUState:TSXSkinFormStateParam;
XFState:TSXSkinFormStateParam;
//
SetCaptionHeight:Boolean;
SetLeftFrameWidth:Boolean;
SetRightFrameWidth:Boolean;
SetBottomFrameHeight:Boolean;
//
CaptionHeight:String;
LeftFrameWidth:Integer;
RightFrameWidth:Integer;
BottomFrameHeight:Integer;
//
ZipFilePath:String;
SkinFilePath:String;
procedure AssignStyle(Style:TSXSkinStyle); override;
procedure SetParameter(const Name,Value:String); override;
procedure GetCurrentFState(var FState:TSXSkinFormStateParam;
Maximized,Minimized,Focused:Boolean);
procedure SaveToStream(S:TStream;const RootPath:String); override;
procedure LoadFromStream(S:TStream;Version:Integer;
const RootPath,ZipFilePath:String;DestList1,DestList2:TSXSkinStyleList); override;
end;
TSXSkinUpDownStateParam=record
SetStyle:Boolean;
SetOverStyle:Boolean;
//
Style:String;
OverStyle:String;
end;
PSXSkinUpDownStateParam=^TSXSkinUpDownStateParam;
TSXSkinUpDownStyle=class(TSXSkinStyle)
public
NUState:TSXSkinUpDownStateParam;
NFState:TSXSkinUpDownStateParam;
HUState:TSXSkinUpDownStateParam;
HFState:TSXSkinUpDownStateParam;
DFState:TSXSkinUpDownStateParam;
RUState:TSXSkinUpDownStateParam;
//
HInUpDownEffect:TSXTransformEffectData;
HOutUpDownEffect:TSXTransformEffectData;
DownUpDownEffect:TSXTransformEffectData;
UpUpDownEffect:TSXTransformEffectData;
EnableUpDownEffect:TSXTransformEffectData;
DisableUpDownEffect:TSXTransformEffectData;
FocusUpDownEffect:TSXTransformEffectData;
UnfocusUpDownEffect:TSXTransformEffectData;
//
SetUpButton:Boolean;
SetDownButton:Boolean;
SetUpButtonRect:Boolean;
SetDownButtonRect:Boolean;
//
UpButton:String;
DownButton:String;
UpButtonRect:String;
DownButtonRect:String;
procedure AssignStyle(Style:TSXSkinStyle); override;
procedure SetParameter(const Name,Value:String); override;
procedure GetCurrentUDState(var UDState:TSXSkinUpDownStateParam;
Enabled,MouseOver,Down,Focused:Boolean);
procedure SaveToStream(S:TStream;const RootPath:String); override;
procedure LoadFromStream(S:TStream;Version:Integer;
const RootPath,ZipFilePath:String;DestList1,DestList2:TSXSkinStyleList); override;
end;
TSXSkinSpinEditStyle=class(TSXSkinStyle)
public
SetEdit:Boolean;
SetUpDown:Boolean;
SetEditRect:Boolean;
SetUpDownRect:Boolean;
//
Edit:String;
UpDown:String;
EditRect:String;
UpDownRect:String;
procedure AssignStyle(Style:TSXSkinStyle); override;
procedure SetParameter(const Name,Value:String); override;
procedure SaveToStream(S:TStream;const RootPath:String); override;
procedure LoadFromStream(S:TStream;Version:Integer;
const RootPath,ZipFilePath:String;DestList1,DestList2:TSXSkinStyleList); override;
end;
TSXSkinStyleList=class
protected
FItem:TList;
TmpWidth:Integer;
TmpHeight:Integer;
function Get(Index:Integer):TSXSkinStyle;
procedure Put(Index:Integer;Item:TSXSkinStyle);
function GetCount:Integer;
public
function GetIndexToInsert(const Name:String):Integer;
function GetIndexByName(const Name:String):Integer;
function GetGStyleIndexOnGetVar(const VarName:String;var Error:Boolean):Single;
function GetGStyleIndex(const Name:String;Width,Height:Integer):Integer;
procedure Add(SXSkinStyle:TSXSkinStyle);
procedure AddUnique(SXSkinStyle:TSXSkinStyle);
procedure Delete(Index:Integer);
procedure Clear;
procedure ClearLinks;
procedure SaveToStream(S:TStream;const RootPath:String);
procedure LoadFromStream(S:TStream;Version:Integer;const RootPath,ZipFilePath:String;
DestList1,DestList2:TSXSkinStyleList);
constructor Create;
destructor Destroy; override;
property Item[Index:Integer]:TSXSkinStyle read Get write Put; default;
property Count:Integer read GetCount;
end;
TSXStoredSkin=class(TComponent)
private
FFileName:String;
FStream:TMemoryStream;
procedure SetFileName(const Value:String);
protected
procedure ReadData(Reader:TStream);
procedure WriteData(Writer:TStream);
procedure DefineProperties(Filer:TFiler); override;
public
property Stream:TMemoryStream read FStream;
procedure LoadStrings(SL:TStringList);
constructor Create(AOwner:TComponent); override;
destructor Destroy; override;
procedure LoadFromFile(const AFileName:String);
procedure SaveToFile(const AFileName:String);
published
property FileName:String read FFileName write SetFileName;
end;
TSXSkinCustomLibrary=class(TComponent)
private
FActive:Boolean;
FSkinDir:String;
FSkinFile:String;
FSkinFile2:String;
FIsLoaded:Boolean;
FStoredSkin:TSXStoredSkin;
FStoredSkin2:TSXStoredSkin;
SkinComponents:TList;
Strings:TStringList;
BasedOnList:TStringList;
function GetCanBeUsed:Boolean;
function CanSetActive:Boolean;
procedure SetActive(Value:Boolean);
procedure SetSkinDir(const Value:String);
procedure SetSkinFile(const Value:String);
procedure SetSkinFile2(const Value:String);
procedure SetStoredSkin(const Value:TSXStoredSkin);
procedure SetStoredSkin2(const Value:TSXStoredSkin);
function VarValue(const Value:String):String;
function GetFullSkinFile:String;
function GetFullSkinFile2:String;
procedure LoadFromINIFile(const FilePath:String);
procedure LoadFromZIPFile(const FilePath:String);
procedure LoadFromSXSFile(const FilePath:String);
procedure LoadFromZIPStream(Stream:TStream;const FilePath:String);
procedure LoadFromSXSStream(Stream:TStream;const FilePath,ZipFilePath:String);
procedure ReloadSkinStyles(IfNotActive:Boolean=False);
protected
procedure Notification(AComponent:TComponent;Operation:TOperation); override;
procedure Loaded; override;
//procedure PaletteCreated; override;
public
Styles:TSXSkinStyleList;
procedure AddSkinComponent(Component:TComponent);
procedure RemoveSkinComponent(Component:TComponent);
procedure RemoveSkinComponentData(Component:TComponent);
procedure InvalidateSkinComponents;
procedure RuntimeCreatedSetLoaded;
function GetStringsValue(const Name:String):String;
procedure LoadFromFile(const FilePath:String);
procedure SaveToSXSFile(const FilePath:String);
constructor Create(AOwner:TComponent); override;
destructor Destroy; override;
property Active:Boolean read FActive write SetActive;
property IsLoaded:Boolean read FIsLoaded;
property CanBeUsed:Boolean read GetCanBeUsed;
property SkinDir:String read FSkinDir write SetSkinDir;
property SkinFile:String read FSkinFile write SetSkinFile;
property SkinFile2:String read FSkinFile2 write SetSkinFile2;
property StoredSkin:TSXStoredSkin read FStoredSkin write SetStoredSkin;
property StoredSkin2:TSXStoredSkin read FStoredSkin2 write SetStoredSkin2;
end;
TSXSkinLibrary=class(TSXSkinCustomLibrary)
published
property Active stored False;
property SkinDir;
property SkinFile;
property SkinFile2;
property StoredSkin;
property StoredSkin2;
end;
function VersionSupported(Version:Integer):Boolean;
procedure ClearFontData(var FD:TSXFontData);
procedure AddFontData(var FD:TSXFontData;FDToAdd:TSXFontData);
function SameFontData(const FD1,FD2:TSXFontData):Boolean;
procedure SetDefaultFontData(var FD:TSXFontData;Font:TFont);
function SameFilterData(const Filter1,Filter2:TSXFilterData):Boolean;
function CreateSkinStyleElementByType(const TypeName:String):TSXSkinStyleElement;
function GetFilterTypeByName(const Name:String):TSXImageFilterType;
function HasTransformEffect(const Effect:TSXTransformEffectData):Boolean;
function SameTransformEffectData(const Effect1,Effect2:TSXTransformEffectData):Boolean;
procedure ApplyFilterToBitmap(var Bitmap:TBitmap32;const Filter:TSXFilterData);
function GetTransformEffectTypeByName(const Name:String):TSXTransformEffectType;
function GetTransformEffectDirectionByName(const Name:String):TSXTransformEffectDirection;
procedure GetTransformEffectByName(const Name:String;var Effect:TSXTransformEffectData);
procedure ApplyTransformEffectToBitmaps(B1,B2:TBitmap32;const Effect:TSXTransformEffectData;
CurrentStep:Integer;var B:TBitmap32);
function GetImageResizeModeByName(const Name:String):TSXImageResizeMode;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -