📄 sskinmanager.pas
字号:
unit sSkinManager;
{$I sDefs.inc}
{.$DEFINE LOGGED}
{.$DEFINE USEDUMP}
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
sConst, IniFiles, sMaskData, sSkinMenus, jpeg, sStyleSimply, acSkinPack, menus
{$IFDEF LOGGED}, sDebugMsgs{$ENDIF};
{$IFNDEF NOTFORHELP}
const
CurrentVersion = '5.40' {$IFDEF RUNIDEONLY} + ' trial'{$ENDIF};
var
NonAutoUpdate : boolean = False;
{$ENDIF} // NOTFORHELP
type
TacSkinTypes = (stUnpacked, stPacked, stAllSkins);
TacGetExtraLineData = procedure
(FirstItem: TMenuItem; var SkinSection : string; var Caption : string; var Glyph : TBitmap; var LineVisible : boolean) of object;
TacManagerWorkMode = (stFullAuto, stManual);
{$IFNDEF NOTFORHELP}
TsSkinManager = class;
TsStoredSkin = class;
TacSkinInfo = type string;
TacBtnEffects = class(TPersistent)
private
FEvents: TacBtnEvents;
procedure SetEvents(const Value: TacBtnEvents);
function GetEvents: TacBtnEvents;
public
Manager : TsSkinManager;
constructor Create;
published
property Events : TacBtnEvents read GetEvents write SetEvents default [beMouseEnter, beMouseLeave, beMouseDown, beMouseUp];
// property Time : word read FTime write FTime default 50;
end;
TacFormAnimation = class(TPersistent)
private
FTime: word;
FActive: boolean;
public
constructor Create; virtual;
published
property Active : boolean read FActive write FActive default True;
property Time : word read FTime write FTime default 0;
end;
TacFormShow = class(TacFormAnimation);
TacPageChange = class(TacFormAnimation);
TacDialogShow = class(TacFormAnimation)
public
constructor Create; override;
published
property Time default 100;
end;
TacSkinChanging = class(TacFormAnimation)
public
constructor Create; override;
published
property Time default 100;
end;
TacAnimEffects = class(TPersistent)
private
FButtons: TacBtnEffects;
FDialogShow: TacDialogShow;
FFormShow: TacFormShow;
FSkinChanging: TacSkinChanging;
FPageChange: TacPageChange;
public
Manager : TsSkinManager;
constructor Create;
destructor Destroy; override;
published
property Buttons : TacBtnEffects read FButtons write FButtons;
property DialogShow : TacDialogShow read FDialogShow write FDialogShow;
property FormShow : TacFormShow read FFormShow write FFormShow;
property PageChange : TacPageChange read FPageChange write FPageChange;
property SkinChanging : TacSkinChanging read FSkinChanging write FSkinChanging;
end;
TsSkinGeneral = class(TCollectionItem)
private
FName: string;
FShowFocus: boolean;
FFadingEnabled: boolean;
FShadowEnabled: boolean;
FShadowDontUse: boolean;
FShadowTransparency: integer;
FShadowOffset: integer;
FFadingIntervalIn: integer;
FHotImagePercent: integer;
FTransparency: integer;
FShadowBlur: integer;
FFadingIntervalOut: integer;
FHotTransparency: integer;
FFadingIterations: integer;
FHotFontColor: string;
FHotGradientPercent: integer;
FGradientPercent: integer;
FImagePercent: integer;
FHotGradientData: string;
FGradientData: string;
FParentClass: string;
FBorderColor2: TColor;
FHotColor: TColor;
FShadowColor: TColor;
FColor: TColor;
FBorderColor1: TColor;
FBevel: TsControlBevel;
FHotBevel: TsControlBevel;
FSectionName: string;
FFontColor: string;
FReservedBoolean: boolean;
procedure SetName(const Value: string);
procedure SetFadingEnabled(const Value: boolean);
procedure SetFadingIntervalIn(const Value: integer);
procedure SetFadingIntervalOut(const Value: integer);
procedure SetFadingIterations(const Value: integer);
procedure SetGradientData(const Value: string);
procedure SetGradientPercent(const Value: integer);
procedure SetHotGradientData(const Value: string);
procedure SetHotGradientPercent(const Value: integer);
procedure SetHotImagePercent(const Value: integer);
procedure SetHotBevel(const Value: TsControlBevel);
procedure SetHotColor(const Value: TColor);
procedure SetHotTransparency(const Value: integer);
procedure SetImagePercent(const Value: integer);
procedure SetBevel(const Value: TsControlBevel);
procedure SetColor(const Value: TColor);
procedure SetBorderColor2(const Value: TColor);
procedure SetBorderColor1(const Value: TColor);
procedure SetTransparency(const Value: integer);
procedure SetParentClass(const Value: string);
procedure SetShadowBlur(const Value: integer);
procedure SetShadowColor(const Value: TColor);
procedure SetShadowDontUse(const Value: boolean);
procedure SetShadowEnabled(const Value: boolean);
procedure SetShadowOffset(const Value: integer);
procedure SetShadowTransparency(const Value: integer);
procedure SetShowFocus(const Value: boolean);
procedure SetSectionName(const Value: string);
procedure SetHotFontColor(const Value: string);
procedure SetFontColor(const Value: string);
procedure SetReservedBoolean(const Value: boolean);
public
constructor Create(Collection: TCollection); override;
destructor Destroy; override;
procedure Assign(Source: TPersistent); override;
published
property SectionName : string read FSectionName write SetSectionName;
property ParentClass : string read FParentClass write SetParentClass;
property Color : TColor read FColor write SetColor;
property Bevel : TsControlBevel read FBevel write SetBevel;
property ShadowBlur : integer read FShadowBlur write SetShadowBlur;
property ShadowColor : TColor read FShadowColor write SetShadowColor;
property ShadowDontUse : boolean read FShadowDontUse write SetShadowDontUse;
property ShadowEnabled : boolean read FShadowEnabled write SetShadowEnabled;
property ReservedBoolean : boolean read FReservedBoolean write SetReservedBoolean;
property ShadowOffset : integer read FShadowOffset write SetShadowOffset;
property ShadowTransparency : integer read FShadowTransparency write SetShadowTransparency;
property FontColor : string read FFontColor write SetFontColor;
property HotFontColor : string read FHotFontColor write SetHotFontColor;
property Transparency : integer read FTransparency write SetTransparency;
property GradientPercent : integer read FGradientPercent write SetGradientPercent;
property GradientData : string read FGradientData write SetGradientData;
property ImagePercent : integer read FImagePercent write SetImagePercent;
property ShowFocus : boolean read FShowFocus write SetShowFocus;
property FadingEnabled : boolean read FFadingEnabled write SetFadingEnabled;
property FadingIntervalIn : integer read FFadingIntervalIn write SetFadingIntervalIn;
property FadingIntervalOut : integer read FFadingIntervalOut write SetFadingIntervalOut;
property FadingIterations : integer read FFadingIterations write SetFadingIterations;
property HotColor : TColor read FHotColor write SetHotColor;
property HotTransparency : integer read FHotTransparency write SetHotTransparency;
property HotBevel : TsControlBevel read FHotBevel write SetHotBevel;
property HotGradientPercent : integer read FHotGradientPercent write SetHotGradientPercent;
property HotGradientData : string read FHotGradientData write SetHotGradientData;
property HotImagePercent : integer read FHotImagePercent write SetHotImagePercent;
property BorderColor1 : TColor read FBorderColor1 write SetBorderColor1;
property BorderColor2 : TColor read FBorderColor2 write SetBorderColor2;
property Name : string read FName write SetName;
end;
TsSkinGenerals = class(TCollection)
private
FOwner: TsStoredSkin;
function GetItem(Index: Integer): TsSkinGeneral;
procedure SetItem(Index: Integer; Value: TsSkinGeneral);
protected
function GetOwner: TPersistent; override;
procedure Update(Item: TCollectionItem); override;
public
constructor Create(AOwner: TsStoredSkin);
destructor Destroy; override;
property Items[Index: Integer]: TsSkinGeneral read GetItem write SetItem; default;
end;
TsSkinImage = class(TCollectionItem)
private
FName: string;
FImage: TBitmap;
FClassName: string;
FPropertyName: string;
FMaskType: integer;
FImageCount: integer;
FTop: integer;
FLeft: integer;
FRight: integer;
FBottom: integer;
FBorderWidth: integer;
FStretchMode: integer;
FImgType: TacImgType;
FWR: integer;
FWT: integer;
FWL: integer;
FWB: integer;
procedure SetName(const Value: string);
procedure SetImage(const Value: TBitmap);
procedure SetClassName(const Value: string);
procedure SetPropertyName(const Value: string);
public
constructor Create(Collection: TCollection); override;
destructor Destroy; override;
published
property SectionName : string read FClassName write SetClassName;
property Image : TBitmap read FImage write SetImage;
property Name : string read FName write SetName;
property PropertyName : string read FPropertyName write SetPropertyName;
property Left : integer read FLeft write FLeft;
property Top : integer read FTop write FTop;
property Right : integer read FRight write FRight;
property Bottom : integer read FBottom write FBottom;
property ImageCount : integer read FImageCount write FImageCount;
property MaskType : integer read FMaskType write FMaskType;
property BorderWidth : integer read FBorderWidth write FBorderWidth;
property StretchMode : integer read FStretchMode write FStretchMode;
property ImgType : TacImgType read FImgType write FImgType;
property WL : integer read FWL write FWL;
property WR : integer read FWR write FWR;
property WT : integer read FWT write FWT;
property WB : integer read FWB write FWB;
end;
TsSkinPattern = class(TCollectionItem)
private
FName: string;
FImage: TJpegImage;
FClassName: string;
FPropertyName: string;
procedure SetName(const Value: string);
procedure SetImage(const Value: TJpegImage);
procedure SetClassName(const Value: string);
procedure SetPropertyName(const Value: string);
public
constructor Create(Collection: TCollection); override;
destructor Destroy; override;
published
property SectionName : string read FClassName write SetClassName;
property Image : TJpegImage read FImage write SetImage;
property Name : string read FName write SetName;
property PropertyName : string read FPropertyName write SetPropertyName;
end;
TsSkinImages = class(TCollection)
private
FOwner: TsStoredSkin;
function GetItem(Index: Integer): TsSkinImage;
procedure SetItem(Index: Integer; Value: TsSkinImage);
protected
function GetOwner: TPersistent; override;
procedure Update(Item: TCollectionItem); override;
public
constructor Create(AOwner: TsStoredSkin);
destructor Destroy; override;
property Items[Index: Integer]: TsSkinImage read GetItem write SetItem; default;
end;
TsSkinPatterns = class(TCollection)
private
FOwner: TsStoredSkin;
function GetItem(Index: Integer): TsSkinPattern;
procedure SetItem(Index: Integer; Value: TsSkinPattern);
protected
function GetOwner: TPersistent; override;
procedure Update(Item: TCollectionItem); override;
public
constructor Create(AOwner: TsStoredSkin);
destructor Destroy; override;
property Items[Index: Integer]: TsSkinPattern read GetItem write SetItem; default;
end;
TsStoredSkin = class(TCollectionItem)
private
FImages: TsSkinImages;
FName: string;
FGeneralData: TsSkinGenerals;
FPatterns: TsSkinPatterns;
FMasterBitmap: TBitmap;
FVersion: real;
FDescription: string;
FAuthor: string;
FShadow1Offset: integer;
FShadow1Color: TColor;
FShadow1Blur: integer;
FShadow1Transparency: integer;
FBorderColor: TColor;
procedure SetImages(const Value: TsSkinImages);
procedure SetName(const Value: string);
procedure SetGeneralData(const Value: TsSkinGenerals);
procedure SetPatterns(const Value: TsSkinPatterns);
protected
procedure DefineProperties(Filer: TFiler); override;
procedure ReadData(Reader: TStream);
procedure WriteData(Writer: TStream);
public
PackedData: TMemoryStream;
constructor Create(Collection: TCollection); override;
destructor Destroy; override;
procedure LoadSkin(sf : TMemIniFile);
procedure LoadFromIni(gd : TsSkinGenerals; sf: TMemIniFile);
published
property Name : string read FName write SetName;
property GeneralData : TsSkinGenerals read FGeneralData write SetGeneralData;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -