⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sxskinlibrary.pas

📁 skin components for design of your applicastions
💻 PAS
📖 第 1 页 / 共 5 页
字号:
  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 + -