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

📄 flatskins.pas

📁 comerose_flatstyle_v4.42.9.0_d7.rar
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit FlatSkins;

interface

{$I FlatStyle.inc}

uses Classes, Messages, Graphics, Controls, FlatUtils, Forms;

Type
  { TFlatSkin }
  TFlatSkin = class(TGraphicsObject)
  private
    FBarStartColor: TColor;
    FBarStopColor: TColor;
    FBackStartColor: TColor;
    FBackStopColor: TColor;
    FItemStartColor: TColor;
    FItemStopColor: TColor;
    FBarOrien: TStyleOrien;
    FBackdropOrien: TStyleOrien;
    FItemOrien: TStyleOrien;
    FNotify: IChangeNotifier;
    FItemRectColor: TColor;
    FBorderColor: TColor;
    FItemSelectColor: TColor;
    FBarColor: TColor;
    FTransparent: TTransparentMode;
    FBarArrowColor: TColor;
    FItemFrameColor: TColor;
    FBackdropColor: TColor;
    FTitleColor: TColor;
    FTitleStartColor: TColor;
    FTitleStopColor: TColor;
    FTitleOrien: TStyleOrien;
    FTitleAlignment: TAlignmentText;
    FBarTopBitmap: TBitmap;
    FBarDownBitmap: TBitmap;
    FBackBitmap: TBitmap;
    FTitleBitmap: TBitmap;
    FBarUseBitmap: boolean;
    FBackUseBitmap: boolean;
    FTitleUseBitmap: boolean;
    FItemLineHas: boolean;
    FItemLineColor: TColor;
    FUserFace: TStyleFace;
    FBarsHeight: integer;
    FItemHeight: integer;
    FTitleHeight: integer;
    FTitlePosition: TTitlePosition;
    FTitleHas: boolean;
    FScrollBars: Boolean;
    FTitleFont: TFont;
    FParentFont: boolean;
    FParent: TControl;
    FBackFocusColor: TColor;
    procedure SetColors(const Index: Integer; const Value: TColor);
    procedure SetOriens(const Index: Integer; const Value: TStyleOrien);
    procedure SetTransparent(const Value: TTransparentMode);
    procedure SetTitleAlignment(const Value: TAlignmentText);
    procedure SetBitmaps(const Index: Integer; const Value: TBitmap);
    procedure SetUseBitmap(const Index: Integer; const Value: boolean);
    procedure SetUserFace(const Value: TStyleFace);
    procedure SetHeights(Index, Value: integer);
    procedure SetTitlePosition(const Value: TTitlePosition);
    procedure SetTitleHas(const Value: boolean);
    procedure SetScrollBars(const Value: Boolean);
    procedure SetTitleFont(const Value: TFont);
    procedure FontChanged(Sender: TObject);
    procedure SetParentFont(const Value: boolean);
    function GetParent: TControl;
  protected
    property StyleNotify: IChangeNotifier read FNotify write FNotify;
  public
    procedure Changed; override;
    procedure Assign(Source: TPersistent); override;
    constructor Create;
    destructor Destroy;override;
    property Parent: TControl read GetParent write FParent;
  published
    property BarStopColor: TColor index 0 read FBarStopColor write SetColors default DefaultColorStop;
    property BarStartColor: TColor index 1 read FBarStartColor write SetColors default DefaultColorStart;
    property BackStopColor: TColor index 2 read FBackStopColor write SetColors default DefaultColorStop;
    property BackStartColor: TColor index 3 read FBackStartColor write SetColors default DefaultColorStart;
    property ItemStopColor: TColor index 4 read FItemStopColor write SetColors default DefaultItemColorStop;
    property ItemStartColor: TColor index 5 read FItemStartColor write SetColors default DefaultItemColorStart;
    property ItemSelectColor: TColor index 7 read FItemSelectColor write SetColors default $009CDEF7;
    property BorderColor: TColor index 8 read FBorderColor write SetColors default DefaultBorderColor;
    property BarColor: TColor index 9 read FBarColor write SetColors default DefaultBarColor;
    property BarArrowColor: TColor index 10 read FBarArrowColor write SetColors default clBlack;
    property ItemFrameColor: TColor index 11 read FItemFrameColor write SetColors default DefaultBorderColor;
    property BackdropColor: TColor index 12 read FBackdropColor write SetColors default DefaultBackdropColor;
    property TitleStartColor: TColor index 13 read FTitleStartColor write SetColors default DefaultColorStart;
    property TitleStopColor: TColor index 14 read FTitleStopColor write SetColors default DefaultColorStop;
    property TitleColor: TColor index 15 read FTitleColor write SetColors default defaultTitleColor;
    property ItemLineColor: TColor index 16 read FItemLineColor write SetColors default DefaultItemLineColor;
    property BackFocusColor: TColor index 17 read FBackFocusColor write SetColors default DefaultFlatColor;

    property BarOrien: TStyleOrien index 0 read FBarOrien write SetOriens default DefaultStyleVertical;
    property BackdropOrien:TStyleOrien index 1 read FBackdropOrien write SetOriens default DefaultStyleHorizontal;
    property ItemOrien: TStyleOrien index 2 read FItemOrien write SetOriens default DefaultStyleVertical;
    property TitleOrien: TStyleOrien index 3 read FTitleOrien write SetOriens default bsVertical;

    property BarTopBitmap: TBitmap index 0 read FBarTopBitmap write SetBitmaps;
    property BarDownBitmap: TBitmap index 1 read FBarDownBitmap write SetBitmaps;
    property BackBitmap: TBitmap index 2 read FBackBitmap write SetBitmaps;
    property TitleBitmap: TBitmap index 3 read FTitleBitmap write SetBitmaps;

    property BarUseBitmap: boolean index 0 read FBarUseBitmap write SetUseBitmap default false;
    property BackUseBitmap: boolean index 1 read FBackUseBitmap write SetUseBitmap default false;
    property TitleUseBitmap: boolean index 2 read FTitleUseBitmap write SetUseBitmap default false;
    property ItemLineHas: boolean index 3 read FItemLineHas write SetUseBitmap default false;

    property TitleAlignment: TAlignmentText read FTitleAlignment write SetTitleAlignment default stCenter;
    property Transparent: TTransparentMode read FTransparent write SetTransparent default tmNone;
    property UserFace: TStyleFace read FUserFace write SetUserFace default DefaultStyleFace;
    property TitlePosition: TTitlePosition read FTitlePosition write SetTitlePosition default tsTop; 

    property BarsHeight: integer index 0 read FBarsHeight write SetHeights default DefaultBarsHeight;
    property ItemHeight: integer index 1 read FItemHeight write SetHeights default DefaultItemHeight;
    property TitleHeight: integer index 2 read FTitleHeight write SetHeights default DefaultTitleHeight;
    property TitleHas: boolean read FTitleHas write SetTitleHas default true;
    property ScrollBars: Boolean read FScrollBars write SetScrollBars default True;
    property TitleFont: TFont read FTitleFont write SetTitleFont;
    property ParentFont: boolean read FParentFont write SetParentFont default true;
  end;

  { TListStyle }
  TListStyle = class(TFlatSkin)
  private
    FItemAlignment: TAlignmentText;
    procedure SetItemAlignment(const Value: TAlignmentText);
  public
    procedure Assign(Source: TPersistent); override;
    constructor Create;
  published
    property ItemAlignment: TAlignmentText read FItemAlignment write SetItemAlignment default stLeft;
  end;

  { TCheckStyle }
  TCheckStyle = class(TFlatSkin)
  private
    FSelectPosition: TCheckPosition;
    FSelectColor: TColor;
    FSelectBackdropColor: TColor;
    FSelectBorderColor: TColor;
    FSelectSize: Integer;
    FSelectStartColor: TColor;
    FSelectStopColor: TColor;
    FSelectOrien: TStyleOrien;
    FSelectCheckColor: TColor;
    procedure SetColors(const Index: Integer; const Value: TColor);
    procedure SetSelectPosition(const Value: TCheckPosition);
    procedure SetSelectSize(Value: Integer);
    procedure SetSelectOrien(const Value: TStyleOrien);
  public
    procedure Assign(Source: TPersistent); override;
    constructor Create;
  published
    property SelectPosition: TCheckPosition read FSelectPosition write SetSelectPosition default bpLeft;
    property SelectColor: TColor index 0 read FSelectColor write SetColors default clPurple;
    property SelectBackdropColor: TColor index 1 read FSelectBackdropColor write SetColors default DefaultCheckBackColor;
    property SelectBorderColor: TColor index 2 read FSelectBorderColor write SetColors default DefaultCheckBorderColor;
    property SelectStartColor: TColor index 3 read FSelectStartColor write SetColors default DefaultSelectStartColor;
    property SelectStopColor: TColor index 4 read FSelectStopColor write SetColors  default DefaultSelectStopColor;
    property SelectCheckColor: TColor index 5 read FSelectCheckColor  write SetColors default DefaultFlatColor;
    property SelectOrien: TStyleOrien read FSelectOrien write SetSelectOrien default bsVertical;
    property SelectSize: Integer read FSelectSize write SetSelectSize default 12;
  end;

implementation

{ TFlatSkin }

procedure TFlatSkin.Assign(Source: TPersistent);
begin
  if Source is TFlatSkin then
  begin
     FBarTopBitmap    := TFlatSkin(Source).BarTopBitmap;
     FBarDownBitmap   := TFlatSkin(Source).BarDownBitmap;
     FBackBitmap      := TFlatSkin(Source).BackBitmap;
     FTitleBitmap     := TFlatSkin(Source).TitleBitmap;
     FTitleFont       := TFlatSkin(Source).TitleFont;
     
     fBarStopColor    := TFlatSkin(Source).BarStopColor;
     fBarStartColor   := TFlatSkin(Source).BarStartColor;
     fBarOrien        := TFlatSkin(Source).BarOrien;
     fBarColor        := TFlatSkin(Source).BarColor;
     FBarArrowColor   := TFlatSkin(Source).BarArrowColor;

     fBackStopColor   := TFlatSkin(Source).BackStopColor;
     fBackStartColor  := TFlatSkin(Source).BackStartColor;
     fBackdropOrien   := TFlatSkin(Source).BackdropOrien;
     FBackdropColor   := TFlatSkin(Source).BackdropColor;
     FBackFocusColor  := TFlatSkin(Source).BackFocusColor;

     FItemStopColor   := TFlatSkin(Source).ItemStopColor;
     fItemStartColor  := TFlatSkin(Source).ItemStartColor;
     fItemOrien       := TFlatSkin(Source).ItemOrien;
     FItemSelectColor := TFlatSkin(Source).ItemSelectColor;
     FItemFrameColor  := TFlatSkin(Source).ItemFrameColor;
     FItemLineColor   := TFlatSkin(Source).ItemLineColor;
     FItemLineHas     := TFlatSkin(Source).ItemLineHas;

     FTitleOrien      := TFlatSkin(Source).TitleOrien;
     FTitleStartColor := TFlatSkin(Source).TitleStartColor;
     FTitleStopColor  := TFlatSkin(Source).TitleStopColor;
     FTitleColor      := TFlatSkin(Source).TitleColor;
     FTitleAlignment  := TFlatSkin(Source).TitleAlignment;

     FBarUseBitmap    := TFlatSkin(Source).BarUseBitmap;
     FBackUseBitmap   := TFlatSkin(Source).BackUseBitmap;
     FTitleUseBitmap  := TFlatSkin(Source).TitleUseBitmap;

     FTransparent     := TFlatSkin(Source).Transparent;
     FUserFace        := TFlatSkin(Source).UserFace;
     FBarsHeight      := TFlatSkin(Source).BarsHeight;
     FItemHeight      := TFlatSkin(Source).ItemHeight;
     FTitleHeight     := TFlatSkin(Source).TitleHeight;
     FTitlePosition   := TFlatSkin(Source).TitlePosition;
     FTitleHas        := TFlatSkin(Source).TitleHas;
     FScrollBars      := TFlatSkin(Source).ScrollBars;
     FParentFont      := TFlatSkin(Source).ParentFont;
     Changed;
     Exit;
  end;
  inherited Assign(Source);
end;

procedure TFlatSkin.Changed;
begin
  inherited Changed;
  if FNotify <> nil then FNotify.Changed;
end;

procedure TFlatSkin.FontChanged(Sender: TObject);
begin
  Changed;
end;

constructor TFlatSkin.Create;
begin
  inherited Create;
  FBarTopBitmap       := TBitmap.Create;
  FBarDownBitmap      := TBitmap.Create;
  FBackBitmap         := TBitmap.Create;
  FTitleBitmap        := TBitmap.Create;
  FTitleFont          := TFont.Create;
  FTitleFont.OnChange := FontChanged;
  FBarStopColor    := DefaultColorStop;
  FBarStartColor   := DefaultColorStart;
  FBarColor        := DefaultBarColor;
  FBarArrowColor   := clBlack;
  FBarOrien        := DefaultStyleVertical;

  FBackStopColor   := DefaultColorStop;
  FBackStartColor  := DefaultColorStart;
  FBackdropOrien   := DefaultStyleHorizontal;
  FBackdropColor   := DefaultBackdropColor;
  FBackFocusColor  := DefaultFlatColor;
  
  FItemStopColor   := DefaultItemColorStop;
  FItemStartColor  := DefaultItemColorStart;
  FItemRectColor   := DefaultItemRectColor;
  FItemSelectColor := $009CDEF7;
  FItemOrien       := DefaultStyleVertical;
  FItemFrameColor  := DefaultBorderColor;
  FItemLineColor   := DefaultItemLineColor;
  FItemLineHas     := False;

  FTitleOrien      := bsVertical;
  FTitleStartColor := DefaultColorStart;
  FTitleStopColor  := DefaultColorStop;
  FTitleColor      := defaultTitleColor;
  FTitleAlignment  := stCenter;
  FTitlePosition   := tsTop;

  FBorderColor     := DefaultBorderColor;

  FBarUseBitmap    := false;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -