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

📄 sskinmanager.pas

📁 Alpha Controls 5.40,delphi上的alpha开发源码控件包。没有密码。5.40版的最新版。
💻 PAS
📖 第 1 页 / 共 5 页
字号:
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 + -