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

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

?? suicolorbox.pas

?? 一套還不錯的DELPHI皮膚控件!
?? PAS
字號:
////////////////////////////////////////////////////////////////////////////////
//
//
//  FileName    :   SUIColorBox.pas
//  Creator     :   Shen Min
//  Date        :   2002-11-14 V1-V3
//                  2003-06-24 V4
//  Comment     :
//
//  Copyright (c) 2002-2003 Sunisoft
//  http://www.sunisoft.com
//  Email: support@sunisoft.com
//
////////////////////////////////////////////////////////////////////////////////

unit SUIColorBox;

interface

{$I SUIPack.inc}

uses Windows, Messages, SysUtils, Classes, Controls, StdCtrls, Graphics,
     Consts, Dialogs,
     SUIComboBox;

const
{$IFDEF SUIPACK_D5}
    ExtendedColorsCount = 4;
    StandardColorsCount = 16;
    SColorBoxCustomCaption = 'Custom...';
{$ENDIF}
    NoColorSelected = TColor($FF000000);

type
    TColorBoxStyles = (
        cbStandardColors, // first sixteen RGBI colors
        cbExtendedColors, // four additional reserved colors
        cbSystemColors,   // system managed/defined colors
        cbIncludeNone,    // include clNone color, must be used with cbSystemColors
        cbIncludeDefault, // include clDefault color, must be used with cbSystemColors
        cbCustomColor,    // first color is customizable
        cbPrettyNames     // instead of 'clColorNames' you get 'Color Names'
    );
    TColorBoxStyle = set of TColorBoxStyles;

    TsuiCustomColorBox = class(TsuiCustomComboBox)
        private
        FStyle: TColorBoxStyle;
        FNeedToPopulate: Boolean;
        FListSelected: Boolean;
        FDefaultColorColor: TColor;
        FNoneColorColor: TColor;
        FSelectedColor: TColor;
        function GetColor(Index: Integer): TColor;
        function GetColorName(Index: Integer): string;
        function GetSelected: TColor;
        procedure SetSelected(const AColor: TColor);
        procedure ColorCallBack(const AName: string);
        procedure SetDefaultColorColor(const Value: TColor);
        procedure SetNoneColorColor(const Value: TColor);
    protected
        procedure CloseUp; override;
        procedure CreateWnd; override;
        procedure DrawItem(Index: Integer; Rect: TRect; State: TOwnerDrawState); override;
        procedure KeyDown(var Key: Word; Shift: TShiftState); override;
        procedure KeyPress(var Key: Char); override;
        function PickCustomColor: Boolean; virtual;
        procedure PopulateList;
{$IFDEF SUIPACK_D6UP}
        procedure Select; override;
{$ENDIF}
{$IFDEF SUIPACK_D5}
        procedure Change; override;
{$ENDIF}
        procedure SetStyle(AStyle: TColorBoxStyle); reintroduce;
    public
        constructor Create(AOwner: TComponent); override;
        property Style: TColorBoxStyle read FStyle write SetStyle
          default [cbStandardColors, cbExtendedColors, cbSystemColors];
        property Colors[Index: Integer]: TColor read GetColor;
        property ColorNames[Index: Integer]: string read GetColorName;
        property Selected: TColor read GetSelected write SetSelected default clBlack;
        property DefaultColorColor: TColor read FDefaultColorColor write SetDefaultColorColor default clBlack;
        property NoneColorColor: TColor read FNoneColorColor write SetNoneColorColor default clBlack;
    end;

    TsuiColorBox = class(TsuiCustomColorBox)
    published
{$IFDEF SUIPACK_D6UP}
        property AutoComplete;
        property AutoDropDown;
{$ENDIF}
        property DefaultColorColor;
        property NoneColorColor;
        property Selected;
        property Style;
        property Anchors;
        property BevelEdges;
        property BevelInner;
        property BevelKind;
        property BevelOuter;
        property BiDiMode;
        property Color;
        property Constraints;
        property DropDownCount;
        property Enabled;
        property Font;
        property ItemHeight;
        property ParentBiDiMode;
        property ParentColor;
        property ParentFont;
        property ParentShowHint;
        property PopupMenu;
        property ShowHint;
        property TabOrder;
        property TabStop;
        property Visible;
        property OnChange;
{$IFDEF SUIPACK_D6UP}
        property OnCloseUp;
{$ENDIF}
        property OnClick;
        property OnContextPopup;
        property OnDblClick;
        property OnDragDrop;
        property OnDragOver;
        property OnDropDown;
        property OnEndDock;
        property OnEndDrag;
        property OnEnter;
        property OnExit;
        property OnKeyDown;
        property OnKeyPress;
        property OnKeyUp;
{$IFDEF SUIPACK_D6UP}
        property OnSelect;
{$ENDIF}
        property OnStartDock;
        property OnStartDrag;
    end;

implementation

uses SUIPublic;

{ TsuiCustomColorBox }

{$IFDEF SUIPACK_D5}
procedure TsuiCustomColorBox.Change;
begin
  if FListSelected then
  begin
    FListSelected := False;
    if (cbCustomColor in Style) and
       (ItemIndex = 0) and
       not PickCustomColor then
      Exit;
  end;
  inherited;
end;
{$ENDIF}

procedure TsuiCustomColorBox.CloseUp;
begin
  inherited CloseUp;
  FListSelected := True;
end;

procedure TsuiCustomColorBox.ColorCallBack(const AName: String);
var
  I, LStart: Integer;
  LColor: TColor;
  LName: string;
begin
  LColor := StringToColor(AName);
  if cbPrettyNames in Style then
  begin
    if Copy(AName, 1, 2) = 'cl' then
      LStart := 3
    else
      LStart := 1;
    LName := '';
    for I := LStart to Length(AName) do
    begin
      case AName[I] of
        'A'..'Z':
          if LName <> '' then
            LName := LName + ' ';
      end;
      LName := LName + AName[I];
    end;
  end
  else
    LName := AName;
  Items.AddObject(LName, TObject(LColor));
end;

constructor TsuiCustomColorBox.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  inherited Style := csOwnerDrawFixed;
  inherited ItemHeight := 15;
  FStyle := [cbStandardColors, cbExtendedColors, cbSystemColors];
  FSelectedColor := clBlack;
  FDefaultColorColor := clBlack;
  FNoneColorColor := clBlack;
  PopulateList;
end;

procedure TsuiCustomColorBox.CreateWnd;
begin
  inherited CreateWnd;
  if FNeedToPopulate then
    PopulateList;
end;

procedure TsuiCustomColorBox.DrawItem(Index: Integer; Rect: TRect;
  State: TOwnerDrawState);

  function ColorToBorderColor(AColor: TColor): TColor;
  type
    TColorQuad = record
      Red,
      Green,
      Blue,
      Alpha: Byte;
    end;
  begin
    if (TColorQuad(AColor).Red > 192) or
       (TColorQuad(AColor).Green > 192) or
       (TColorQuad(AColor).Blue > 192) then
      Result := clBlack
    else if odSelected in State then
      Result := clWhite
    else
      Result := AColor;
  end;

var
  LRect: TRect;
  LBackground: TColor;
begin
  with Canvas do
  begin
    FillRect(Rect);
    LBackground := Brush.Color;

    LRect := Rect;
    LRect.Right := LRect.Bottom - LRect.Top + LRect.Left;
    InflateRect(LRect, -1, -1);
    Brush.Color := Colors[Index];
    if Brush.Color = clDefault then
      Brush.Color := DefaultColorColor
    else if Brush.Color = clNone then
      Brush.Color := NoneColorColor;
    FillRect(LRect);
    Brush.Color := ColorToBorderColor(ColorToRGB(Brush.Color));
    FrameRect(LRect);

    Brush.Color := LBackground;
    Rect.Left := LRect.Right + 5;

    TextRect(Rect, Rect.Left,
      Rect.Top + (Rect.Bottom - Rect.Top - TextHeight(Items[Index])) div 2,
      Items[Index]);
  end;
end;

function TsuiCustomColorBox.GetColor(Index: Integer): TColor;
begin
  Result := TColor(Items.Objects[Index]);
end;

function TsuiCustomColorBox.GetColorName(Index: Integer): string;
begin
  Result := Items[Index];
end;

function TsuiCustomColorBox.GetSelected: TColor;
begin
  if HandleAllocated then
    if ItemIndex <> -1 then
      Result := Colors[ItemIndex]
    else
      Result := NoColorSelected
  else
    Result := FSelectedColor;
end;

procedure TsuiCustomColorBox.KeyDown(var Key: Word; Shift: TShiftState);
begin
  FListSelected := False;
  inherited KeyDown(Key, Shift);
end;

procedure TsuiCustomColorBox.KeyPress(var Key: Char);
begin
  inherited KeyPress(Key);
  if (cbCustomColor in Style) and (Key = #13) and (ItemIndex = 0) then
  begin
    PickCustomColor;
    Key := #0;
  end;
end;

function TsuiCustomColorBox.PickCustomColor: Boolean;
var
  LColor: TColor;
begin
  with TColorDialog.Create(nil) do
    try
      LColor := ColorToRGB(TColor(Items.Objects[0]));
      Color := LColor;
      CustomColors.Text := Format('ColorA=%.8x', [LColor]);
      Result := Execute;
      if Result then
      begin
        Items.Objects[0] := TObject(Color);
        Self.Invalidate;
      end;
    finally
      Free;
    end;
end;

procedure TsuiCustomColorBox.PopulateList;
  procedure DeleteRange(const AMin, AMax: Integer);
  var
    I: Integer;
  begin
    for I := AMax downto AMin do
      Items.Delete(I);
  end;
  procedure DeleteColor(const AColor: TColor);
  var
    I: Integer;
  begin
    I := Items.IndexOfObject(TObject(AColor));
    if I <> -1 then
      Items.Delete(I);
  end;
var
  LSelectedColor, LCustomColor: TColor;
begin
  if HandleAllocated then
  begin
    Items.BeginUpdate;
    try
      LCustomColor := clBlack;
      if (cbCustomColor in Style) and (Items.Count > 0) then
        LCustomColor := TColor(Items.Objects[0]);
      LSelectedColor := FSelectedColor;
      Items.Clear;
      GetColorValues(ColorCallBack);
      if not (cbIncludeNone in Style) then
        DeleteColor(clNone);
      if not (cbIncludeDefault in Style) then
        DeleteColor(clDefault);
      if not (cbSystemColors in Style) then
        DeleteRange(StandardColorsCount + ExtendedColorsCount, Items.Count - 1);
      if not (cbExtendedColors in Style) then
        DeleteRange(StandardColorsCount, StandardColorsCount + ExtendedColorsCount - 1);
      if not (cbStandardColors in Style) then
        DeleteRange(0, StandardColorsCount - 1);
      if cbCustomColor in Style then
        Items.InsertObject(0, SColorBoxCustomCaption, TObject(LCustomColor));
      Selected := LSelectedColor;
    finally
      Items.EndUpdate;
      FNeedToPopulate := False;
    end;
  end
  else
    FNeedToPopulate := True;
end;

{$IFDEF SUIPACK_D6UP}
procedure TsuiCustomColorBox.Select;
begin
  if FListSelected then
  begin
    FListSelected := False;
    if (cbCustomColor in Style) and
       (ItemIndex = 0) and
       not PickCustomColor then
      Exit;
  end;
  inherited Select;
end;
{$ENDIF}

procedure TsuiCustomColorBox.SetDefaultColorColor(const Value: TColor);
begin
  if Value <> FDefaultColorColor then
  begin
    FDefaultColorColor := Value;
    Invalidate;
  end;
end;

procedure TsuiCustomColorBox.SetNoneColorColor(const Value: TColor);
begin
  if Value <> FNoneColorColor then
  begin
    FNoneColorColor := Value;
    Invalidate;
  end;
end;

procedure TsuiCustomColorBox.SetSelected(const AColor: TColor);
var
  I: Integer;
begin
  if HandleAllocated then
  begin
    I := Items.IndexOfObject(TObject(AColor));
    if (I = -1) and (cbCustomColor in Style) and (AColor <> NoColorSelected) then
    begin
      Items.Objects[0] := TObject(AColor);
      I := 0;
    end;
    ItemIndex := I;
  end;
  FSelectedColor := AColor;
end;

procedure TsuiCustomColorBox.SetStyle(AStyle: TColorBoxStyle);
begin
  if AStyle <> Style then
  begin
    FStyle := AStyle;
    Enabled := ([cbStandardColors, cbExtendedColors, cbSystemColors, cbCustomColor] * FStyle) <> [];
    PopulateList;
    if (Items.Count > 0) and (ItemIndex = -1) then
      ItemIndex := 0;
  end;
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美经典一区二区三区| 亚洲国产日产av| 日韩一区二区麻豆国产| 欧美精品色一区二区三区| 91久久一区二区| 99综合电影在线视频| 99视频精品免费视频| 99久久久久免费精品国产 | 国产成人鲁色资源国产91色综| 久久精品国产色蜜蜜麻豆| 久久精品国产亚洲aⅴ | 欧美美女直播网站| 538prom精品视频线放| 欧美一区二区日韩| 精品国产乱码久久久久久夜甘婷婷 | 亚洲成av人片在线| 日韩二区三区在线观看| 美国毛片一区二区三区| 另类小说综合欧美亚洲| 国产精品一二三四区| www.成人在线| 在线一区二区三区四区五区| 欧美亚洲一区二区在线观看| 欧美日韩一区二区三区四区| 欧美一区二区三区四区久久 | 日本不卡视频在线| 精品一区在线看| 成人免费精品视频| 欧美亚洲国产一区在线观看网站| 欧美精品久久一区| 久久精品亚洲麻豆av一区二区| 国产欧美1区2区3区| 亚洲色图清纯唯美| 天堂蜜桃91精品| 丰满少妇在线播放bd日韩电影| 色国产精品一区在线观看| 欧美美女一区二区在线观看| 精品对白一区国产伦| 欧美国产一区二区| 午夜久久久久久久久久一区二区| 激情五月婷婷综合网| 99在线热播精品免费| 在线播放国产精品二区一二区四区| 精品久久久久久久久久久院品网| 国产日韩欧美一区二区三区乱码| 一区二区三区精密机械公司| 久久er99热精品一区二区| 成人免费福利片| 91精品综合久久久久久| 亚洲国产精品精华液ab| 亚洲6080在线| 成人午夜精品一区二区三区| 欧美日韩中字一区| 国产偷国产偷精品高清尤物| 色婷婷国产精品久久包臀| 欧美一二三四区在线| 国产精品久久久久久福利一牛影视 | 久久午夜电影网| 亚洲综合在线第一页| 国产福利一区二区| 91精品欧美综合在线观看最新| 亚洲欧美在线观看| 免费视频一区二区| 欧亚洲嫩模精品一区三区| 国产欧美1区2区3区| 老司机午夜精品99久久| 91久久人澡人人添人人爽欧美 | 精品一二三四区| 欧美色偷偷大香| 国产精品久99| 久久99精品久久久久| 精品视频一区三区九区| 中文字幕一区二区三区av| 奇米四色…亚洲| 欧美在线观看视频一区二区| 亚洲国产精品t66y| 黄色日韩三级电影| 欧美日韩高清一区| 亚洲黄一区二区三区| 成人黄页毛片网站| 久久久久久久综合日本| 美洲天堂一区二卡三卡四卡视频| 欧美性一区二区| 亚洲美女视频一区| gogogo免费视频观看亚洲一| 久久亚洲精精品中文字幕早川悠里| 日韩综合在线视频| 欧美网站一区二区| 在线观看精品一区| 99re视频精品| 国产欧美一二三区| 国产一区二区三区香蕉| 欧美一级日韩不卡播放免费| 五月婷婷综合网| 欧美老肥妇做.爰bbww| 一区二区三区不卡视频| 色综合激情五月| 亚洲免费色视频| 91首页免费视频| 亚洲美女视频在线| 在线看国产日韩| 亚洲超丰满肉感bbw| 欧美日韩日日摸| 天堂一区二区在线| 欧美一区二区视频在线观看2020| 天天色天天爱天天射综合| 7777精品伊人久久久大香线蕉| 亚洲成av人片在线观看| 在线不卡的av| 久久99精品久久久久| 久久久久久免费网| 成人毛片视频在线观看| 中文字幕中文字幕一区| 色综合天天综合色综合av| 亚洲欧美日韩国产综合在线| 在线视频观看一区| 婷婷久久综合九色综合绿巨人| 欧美群妇大交群中文字幕| 免费成人在线视频观看| 精品国产一区a| 成人永久免费视频| 一区二区三区影院| 在线不卡a资源高清| 国产真实乱子伦精品视频| 国产欧美日韩激情| 一本久久精品一区二区| 亚洲123区在线观看| 日韩精品一区二区三区在线播放| 国产精品一区二区在线播放| 国产精品日日摸夜夜摸av| 色婷婷亚洲综合| 麻豆91免费观看| 欧美激情在线一区二区| 一本色道**综合亚洲精品蜜桃冫| 午夜不卡av免费| 国产欧美日韩在线视频| 91黄色激情网站| 免费成人你懂的| 国产精品区一区二区三区| 欧美性色黄大片手机版| 另类小说欧美激情| 综合久久久久久| 欧美精品在线观看播放| 国产成人99久久亚洲综合精品| 亚洲乱码中文字幕综合| 91精品国产综合久久蜜臀| 国产盗摄一区二区| 亚洲高清一区二区三区| 久久综合视频网| 在线观看www91| 国产aⅴ综合色| 午夜一区二区三区在线观看| 久久精品亚洲精品国产欧美| 欧美亚洲动漫另类| 懂色av一区二区夜夜嗨| 亚洲五码中文字幕| 中文字幕av资源一区| 555夜色666亚洲国产免| 91亚洲精华国产精华精华液| 美女在线一区二区| 亚洲人精品午夜| 国产亚洲女人久久久久毛片| 欧美另类久久久品| 91天堂素人约啪| 韩国中文字幕2020精品| 亚洲国产日日夜夜| 国产精品国产三级国产普通话三级 | 中文字幕精品在线不卡| 91精品国产综合久久久久久久久久| 成人午夜碰碰视频| 久久99精品网久久| 视频一区欧美精品| 亚洲免费高清视频在线| 国产日韩综合av| 日韩视频在线永久播放| 欧美最猛性xxxxx直播| 不卡在线观看av| 国产69精品久久久久毛片| 美女在线一区二区| 五月天激情综合| 亚洲主播在线播放| 亚洲四区在线观看| 国产精品人妖ts系列视频| 久久这里只有精品视频网| 91精品婷婷国产综合久久| 欧美三级韩国三级日本一级| 91香蕉国产在线观看软件| 国产a级毛片一区| 国产成人在线电影| 精品一区二区三区不卡| 日本午夜精品视频在线观看| 亚洲国产成人av好男人在线观看| 亚洲三级在线观看| 国产精品久久久久久户外露出 | 26uuu欧美| 精品国产亚洲在线| 亚洲精品一区在线观看| 欧美成人一区二区三区片免费| 欧美一级爆毛片| 日韩欧美在线观看一区二区三区|