亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? sskinmanager.pas

?? AlphaControls是一個Delphi標準控件的集合
?? PAS
?? 第 1 頁 / 共 4 頁
字號:
unit sSkinManager;
{$I sDefs.inc}

{$IFDEF DELPHI6UP}
{$WARN UNIT_PLATFORM OFF}
{$ENDIF}

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  sConst, IniFiles, sMaskData, sGradient, sSkinMenus, jpeg;

type

  TsSkinManager = class;
  TsStoredSkin = class;

  TsSkinGeneral = class(TCollectionItem)
  private
    FName: string;
    FShowFocus: boolean;
    FFadingEnabled: boolean;
    FShadowEnabled: boolean;
    FShadowDontUse: boolean;
    FShadowTransparency: integer;

    FPaintingBevelWidth: integer;
    FShadowOffset: integer;
    FFadingIntervalIn: integer;
    FHotImagePercent: integer;
    FSelectionBorderWidth: integer;
    FPaintingTransparency: integer;
    FHotPaintingBevelWidth: integer;
    FShadowBlur: integer;
    FFadingIntervalOut: integer;
    FHotPaintingTransparency: integer;
    FFadingIterations: integer;
    FHotFontColor: string;
    FHotGradientPercent: integer;
    FGradientPercent: integer;
    FImagePercent: integer;
    FHotGradientData: string;
    FGradientData: string;
    FParentClassName: string;
    FPaintingColorBorderBottom: TColor;
    FHotPaintingColor: TColor;
    FSelectionColor: TColor;
    FShadowColor: TColor;
    FPaintingColor: TColor;
    FPaintingColorBorderTop: TColor;
    FPaintingBevel: TsControlBevel;
    FHotPaintingBevel: TsControlBevel;
    FSelectionBorderBevel: TsEditorBevel;
    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 SetHotPaintingBevel(const Value: TsControlBevel);
    procedure SetHotPaintingBevelWidth(const Value: integer);
    procedure SetHotPaintingColor(const Value: TColor);
    procedure SetHotPaintingTransparency(const Value: integer);
    procedure SetImagePercent(const Value: integer);
    procedure SetPaintingBevel(const Value: TsControlBevel);
    procedure SetPaintingBevelWidth(const Value: integer);
    procedure SetPaintingColor(const Value: TColor);
    procedure SetPaintingColorBorderBottom(const Value: TColor);
    procedure SetPaintingColorBorderTop(const Value: TColor);
    procedure SetPaintingTransparency(const Value: integer);
    procedure SetParentClassName(const Value: string);
    procedure SetSelectionBorderBevel(const Value: TsEditorBevel);
    procedure SetSelectionBorderWidth(const Value: integer);
    procedure SetSelectionColor(const Value: TColor);
    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 ParentClassName : string read FParentClassName write SetParentClassName;
    property PaintingColor : TColor read FPaintingColor write SetPaintingColor;
    property PaintingBevel : TsControlBevel read FPaintingBevel write SetPaintingBevel;
    property PaintingBevelWidth : integer read FPaintingBevelWidth write SetPaintingBevelWidth;
    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 PaintingTransparency : integer read FPaintingTransparency write SetPaintingTransparency;
    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 HotPaintingColor : TColor read FHotPaintingColor write SetHotPaintingColor;
    property HotPaintingTransparency : integer read FHotPaintingTransparency write SetHotPaintingTransparency;
    property HotPaintingBevel : TsControlBevel read FHotPaintingBevel write SetHotPaintingBevel;
    property HotPaintingBevelWidth : integer read FHotPaintingBevelWidth write SetHotPaintingBevelWidth;
    property HotGradientPercent : integer read FHotGradientPercent write SetHotGradientPercent;
    property HotGradientData : string read FHotGradientData write SetHotGradientData;
    property HotImagePercent : integer read FHotImagePercent write SetHotImagePercent;
    property PaintingColorBorderTop : TColor read FPaintingColorBorderTop write SetPaintingColorBorderTop;
    property PaintingColorBorderBottom : TColor read FPaintingColorBorderBottom write SetPaintingColorBorderBottom;
    property SelectionBorderBevel : TsEditorBevel read FSelectionBorderBevel write SetSelectionBorderBevel;
    property SelectionBorderWidth : integer read FSelectionBorderWidth write SetSelectionBorderWidth;
    property SelectionColor : TColor read FSelectionColor write SetSelectionColor;
    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;
    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;
    procedure Assign(Source: TPersistent); 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;
  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;
    procedure Assign(Source: TPersistent); 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;
    procedure SetImages(const Value: TsSkinImages);
    procedure SetName(const Value: string);
    procedure SetGeneralData(const Value: TsSkinGenerals);
    procedure SetPatterns(const Value: TsSkinPatterns);
  protected
  public
    procedure Assign(Source: TPersistent); override;
    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;
    property Images : TsSkinImages read FImages write SetImages;
    property Patterns : TsSkinPatterns read FPatterns write SetPatterns;
  end;

  TsStoredSkins = class(TCollection)
  private
    FOwner: TsSkinManager;
    function GetItem(Index: Integer): TsStoredSkin;
    procedure SetItem(Index: Integer; Value: TsStoredSkin);
  protected
    function GetOwner: TPersistent; override;
    procedure Update(Item: TCollectionItem); override;
  public
    constructor Create(AOwner: TsSkinManager);
    destructor Destroy; override;
    property Items[Index: Integer]: TsStoredSkin read GetItem write SetItem; default;
  end;

  TsSkinManager = class(TComponent)
  private
    FGroupIndex: integer;
    FSkinName: TsSkinName;
    FSkinDirectory: TsDirectory;
    FActive: boolean;
    FBuiltInSkins: TsStoredSkins;
    FSkinableMenus: TsSkinableMenus;
    FOnAfterChange: TNotifyEvent;
    FOnBeforeChange: TNotifyEvent;
    procedure SetSkinName(const Value: TsSkinName);
    procedure SetSkinDirectory(const Value: string);
    procedure SetActive(const Value: boolean);
    procedure SetBuiltInSkins(const Value: TsStoredSkins);
  protected
    procedure SendNewSkin;
    procedure SendRemoveSkin;
  public
    ParentForm : TCustomForm;
    function ChangeImageInSkin(SkinSection, PropName, FileName : string) : boolean;
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
    procedure AfterConstruction; override;
    procedure Loaded; override;
    function GetFullskinDirectory : string;
    function GetSkinNames(sl: TStrings) : string;
    function GetExternalSkinNames(sl: TStrings) : string;
    procedure GetSkinSections(sl: TStrings);
    procedure ExtractInternalSkin(NameOfSkin, DestDir : string);
    procedure  ExtractByIndex(Index : integer; DestDir : string);
    procedure SaveToIni(Index : integer; sf : TMemIniFile);

    procedure Notification(AComponent: TComponent; Operation: TOperation); override;
    procedure UpdateSkin;
    procedure UpdateSkinSection(SectionName : string);
    property GroupIndex : integer read FGroupIndex write FGroupIndex;
    property SkinableMenus : TsSkinableMenus read FSkinableMenus write FSkinableMenus;
  published
    property Active : boolean read FActive write SetActive default True;
    property InternalSkins : TsStoredSkins read FBuiltInSkins write SetBuiltInSkins;
    property SkinDirectory : TsDirectory read FSkinDirectory write SetSkinDirectory;
    property SkinName : TsSkinName read FSkinName write SetSkinName;
    property OnAfterChange : TNotifyEvent read FOnAfterChange write FOnAfterChange;
    property OnBeforeChange : TNotifyEvent read FOnBeforeChange write FOnBeforeChange;
  end;

implementation

uses sMessages, sStyleSimply, sUtils,
  sStoreUtils,
  sVclUtils, sDefaults, menus, sSkinProps, FileCtrl;

{ TsSkinManager }

procedure TsSkinManager.AfterConstruction;
begin
  inherited;
  ParentForm := GetOwnerForm(Self);
end;

function TsSkinManager.ChangeImageInSkin(SkinSection, PropName, FileName: string): boolean;
var
  i, l, j : integer;
  s : string;
begin
  Result := False;
  if not sSkinData.Active then Exit;
  if (SkinSection = '') or (PropName='') or not FileExists(FileName) then Exit;

  s := UpperCase(PropName);
  if (s = PatternFile) or ( s = HotPatternFile) then begin
    if pos('.BMP', UpperCase(FileName)) > 0 then begin
      l := Length(ma);
      if l > 0 then begin
        for i := 0 to l - 1 do begin
          if (UpperCase(ma[i].PropertyName) = s) and
               (UpperCase(ma[i].ClassName) = UpperCase(skinSection))  then begin
            ma[i].Bmp.LoadFromFile(FileName);
            Result := True;
            Break;
          end;
        end;
      end;

      if not Result then begin
        l := Length(ma) + 1;
        SetLength(ma, l);
        ma[l - 1].PropertyName := '';
        ma[l - 1].ClassName := '';
        try
          ma[l - 1].Bmp := TBitmap.Create;
          ma[l - 1].Bmp.LoadFromFile(FileName);
        finally
          ma[l - 1].PropertyName := s;
          ma[l - 1].ClassName := UpperCase(skinSection);
        end;
        if ma[l - 1].Bmp.Width < 1 then begin
          FreeAndNil(ma[l - 1].Bmp);
          SetLength(ma, l - 1);
        end;

        l := Length(pa);
        if l > 0 then begin
          for i := 0 to l - 1 do begin
            if (UpperCase(pa[i].PropertyName) = s) and
                 (UpperCase(pa[i].ClassName) = UpperCase(skinSection))  then begin
              FreeAndNil(pa[i].Img);
              for  j := i to l - 2 do begin
                pa[j].ClassName := pa[j + 1].ClassName;
                pa[j].PropertyName := pa[j + 1].PropertyName;
                pa[j].Img := pa[j + 1].Img;
              end;
              SetLength(pa, l - 1);
              Break;
            end;
          end;
        end;
        Result := True;
      end;
    end
    else begin
      l := Length(pa);
      if l > 0 then begin
        for i := 0 to l - 1 do begin
          if (UpperCase(pa[i].PropertyName) = s) and
               (UpperCase(pa[i].ClassName) = UpperCase(skinSection))  then begin
            pa[i].Img.LoadFromFile(FileName);
            Result := True;
            Break;
          end;
        end;
      end;
      if not Result then begin
        l := Length(pa) + 1;
        SetLength(pa, l);
        pa[l - 1].PropertyName := '';
        pa[l - 1].ClassName := '';
        try
          pa[l - 1].Img := TJpegImage.Create;
          pa[l - 1].Img.LoadFromFile(FileName);
        finally
          pa[l - 1].PropertyName := s;
          pa[l - 1].ClassName := UpperCase(SkinSection);
        end;
        if pa[l - 1].Img.Width < 1 then begin
          FreeAndNil(pa[l - 1].Img);
          SetLength(pa, l - 1);
        end;
        l := Length(ma);
        if l > 0 then begin
          for i := 0 to l - 1 do begin
            if (UpperCase(ma[i].PropertyName) = s) and
                 (UpperCase(ma[i].ClassName) = UpperCase(skinSection))  then begin

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲码国产岛国毛片在线| 久久午夜色播影院免费高清| 国产美女精品人人做人人爽| 五月天激情综合网| 亚洲va韩国va欧美va精品| 亚洲电影中文字幕在线观看| 伊人婷婷欧美激情| 亚洲伊人色欲综合网| 亚洲另类色综合网站| 尤物在线观看一区| 亚洲精品成人精品456| 亚洲一区二区影院| 丝袜美腿亚洲色图| 激情五月激情综合网| 丰满放荡岳乱妇91ww| 99re热视频精品| 日本高清免费不卡视频| 欧美日韩一区二区三区在线看 | 久久99久久99精品免视看婷婷| 水野朝阳av一区二区三区| 日本麻豆一区二区三区视频| 国产专区欧美精品| 国产91富婆露脸刺激对白| 91蜜桃婷婷狠狠久久综合9色| 色88888久久久久久影院野外| 欧美日韩免费一区二区三区视频| 91精品国产日韩91久久久久久| 精品国产乱码久久久久久图片| 国产片一区二区三区| 亚洲免费在线视频一区 二区| 一区二区三区日韩在线观看| 蜜桃精品视频在线| 成人看片黄a免费看在线| 在线这里只有精品| 日韩精品影音先锋| 中文字幕在线不卡一区二区三区| 午夜电影网亚洲视频| 激情丁香综合五月| 欧美在线不卡视频| xnxx国产精品| 视频一区二区三区中文字幕| 国产精品自拍三区| 欧美日韩高清一区二区| 国产午夜精品在线观看| 性感美女久久精品| 国产成人免费xxxxxxxx| 欧美精品日韩一区| 国产精品天天看| 男女激情视频一区| 91在线免费看| 国产女人18毛片水真多成人如厕 | 亚洲激情av在线| 精品一区二区三区免费| 欧美日韩一区二区欧美激情| 国产欧美一区二区三区在线老狼| 日韩中文字幕91| 91色在线porny| 国产欧美一区二区三区网站| 另类综合日韩欧美亚洲| 在线播放中文字幕一区| 亚洲女与黑人做爰| 波多野洁衣一区| 精品对白一区国产伦| 蜜臀久久99精品久久久画质超高清 | 欧美aaaaaa午夜精品| 在线日韩一区二区| 亚洲视频小说图片| 成人毛片老司机大片| 国产无一区二区| 国产尤物一区二区| 欧美videos中文字幕| 首页国产丝袜综合| 欧美三级中文字| 亚洲丰满少妇videoshd| 91国偷自产一区二区开放时间 | 一区二区三区在线观看欧美| 福利电影一区二区三区| 国产日韩精品一区二区三区| 国产一区在线视频| 久久久久久免费| 国产成人在线观看| 国产欧美日本一区二区三区| 国产99久久久久久免费看农村| 久久亚洲综合av| 国产91综合网| 国产精品视频一二三区| 91在线观看下载| 夜夜操天天操亚洲| 在线观看91av| 久久99最新地址| 国产精品青草综合久久久久99| 97精品久久久久中文字幕| 亚洲精品国产精品乱码不99| 欧美日韩国产中文| 久久国产成人午夜av影院| 国产人伦精品一区二区| 99久久婷婷国产综合精品| 亚洲最色的网站| 欧美精品第1页| 国产精品1024| 亚洲欧美一区二区三区极速播放| 色综合中文综合网| 欧美一卡二卡在线观看| 国产成人综合视频| 亚洲激情校园春色| 欧美成人精品1314www| 成人一区二区三区在线观看| 一区二区三区成人| 久久先锋影音av| 欧洲av在线精品| 国产精品亚洲人在线观看| 亚洲一区二区三区在线看| 日韩精品专区在线影院观看| 99久久伊人精品| 日产国产高清一区二区三区| 国产三级精品在线| 欧美日韩国产一区| 丁香六月久久综合狠狠色| 亚洲.国产.中文慕字在线| 国产欧美日韩不卡免费| 欧美一区二区三区日韩视频| 99麻豆久久久国产精品免费| 裸体健美xxxx欧美裸体表演| 中文字幕亚洲一区二区av在线| 欧美一区二区三区四区久久| 91丨九色丨尤物| 国产在线国偷精品免费看| 亚洲综合无码一区二区| 国产精品午夜久久| 欧美xxxx老人做受| 欧美日韩中文精品| 成人免费的视频| 韩国精品主播一区二区在线观看 | 欧美色倩网站大全免费| 国产一区二区三区美女| 亚洲成av人片观看| 国产精品超碰97尤物18| 久久亚洲综合色一区二区三区| 欧美日韩在线不卡| 色噜噜狠狠色综合中国| 成人免费视频国产在线观看| 国产一区二三区| 日韩精品成人一区二区在线| 夜夜精品浪潮av一区二区三区| 国产女人水真多18毛片18精品视频| 91精品一区二区三区久久久久久| 欧美在线|欧美| 91国产免费看| 91黄色免费看| 色综合久久综合网97色综合| 成人免费视频国产在线观看| 国产福利91精品一区| 国产精品123| 国产99一区视频免费| 国产成人aaa| 国产99久久久久| aaa亚洲精品| 色综合亚洲欧洲| 91论坛在线播放| 日本黄色一区二区| 欧美天堂一区二区三区| 欧美视频一区二区在线观看| 欧美性大战xxxxx久久久| 欧美视频一区二区三区四区 | 久久久久9999亚洲精品| 久久精品人人做| 国产精品视频麻豆| 自拍偷拍国产精品| 一级日本不卡的影视| 午夜精品福利久久久| 美女精品一区二区| 国产成人综合在线观看| 91麻豆精品一区二区三区| 在线观看视频一区二区欧美日韩| 欧美日韩日日摸| 日韩欧美一区在线| 国产视频在线观看一区二区三区| 欧美国产日本视频| 一区二区久久久久| 久久se精品一区精品二区| 国产高清精品网站| 色妹子一区二区| 欧美一级xxx| 亚洲色图丝袜美腿| 蜜臀久久久99精品久久久久久| 成人网页在线观看| 欧美人伦禁忌dvd放荡欲情| 欧美一区日韩一区| 国产精品拍天天在线| 日韩中文字幕1| 97se亚洲国产综合自在线| 3d成人动漫网站| 国产日产亚洲精品系列| 午夜一区二区三区在线观看| 国产乱码精品1区2区3区| 色综合久久久久综合99| 欧美精品一区二区三区高清aⅴ | 欧美一区二区三区视频在线观看| 久久久精品欧美丰满| 五月激情综合色|