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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? xpbuttonclass.pas

?? XP_Buttons for delphi7 絕對(duì)精典的按鈕控件
?? PAS
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
//==============================================================================
//  XPButtonClass.pas
//  Author : SteedSky
//  Modify Data : 2003.08.20
//  E-Mail : SteedSky@163.net
//==============================================================================
unit XPButtonClass;

interface

uses Windows, Graphics, Classes, Controls, Messages;

const
  //Buttons States
  XP_SELETED = 0 ;
  XP_FOCUSED = 1 ;
  XP_DEFAULT = 2 ;
  XP_CLICKED = 3 ;

{$IFNDEF DFS_COMPILER_4_UP}
const
  MSH_MOUSEWHEEL = 'MSWHEEL_ROLLMSG';
  WM_MOUSEWHEEL    = $020A;
  WHEEL_DELTA      = 120;
  WHEEL_PAGESCROLL = MAXDWORD;

  SM_MOUSEWHEELPRESENT    = 75;
  SPI_GETWHEELSCROLLLINES = 104;
  SPI_SETWHEELSCROLLLINES = 105;

type
  TWMMouseWheel = record
    Msg: Cardinal;
    Keys: Word;
    Delta: Word;
    case Integer of
      0: (
        XPos: Smallint;
        YPos: Smallint);
      1: (
        Pos: TSmallPoint;
        Result: Longint);
  end;
{$ENDIF}

type
  TXPStyleColor = record //XPButton Style Colors
    BorderColor,
    RectPointColor,
    RectTColor,
    RectBColor,
    STBorderColor1,
    STBorderColor2,
    SBBorderColor1,
    SBBorderColor2,
    FTBorderColor1,
    FTBorderColor2,
    FBBorderColor1,
    FBBorderColor2,
    DTBorderColor1,
    DTBorderColor2,
    DBBorderColor1,
    DBBorderColor2,
    DBBorderColor3  : TColor ;
  end;

type
  TButtonKind = (bkCustom, bkOK, bkCancel, bkHelp, bkYes, bkNo, bkClose, bkAbort, bkRetry, bkIgnore, bkAll,
                   bkOpen, bkNew, bkCopy, bkCut, bkEdit, bkDelete, bkPaste, bkFind, bkUndo, bkRedo, bkSave,
                   bkCheck, bkPrinter, bkExit, bkHelps, bkAbout, bkCalculate, bkSearch, bkInformation,
                   bkPassWord, bkStart, bkPrevious, bkNext, bkEnd, bkQuestion, bkSaveto, bkChart, bkDesign,
                   bkPreview, bkRefresh, bkPropertiy);
  TButtonStyle = (bsStandard, bsGradient, bsXPBlue, bsXPArgent, bsXPGreen);
  TButtonLayout = (blGlyphLeft, blGlyphRight, blGlyphTop, blGlyphBottom);
  TButtonState = (bsUp, bsDisabled, bsDown);
  TGradientType = (gtLeftRight, gtTopBottom);
  TScrollType = (up, down);
  TColorCalcType = (lighten, darken);
  TArrowPos = (NE, NW, SE, SW);
  TNumGlyphs = 1..4;
  TAdvColors = 0..100;
  TTransparentMode = (tmAlways, tmNotFocused, tmNone);

//Function
function GetGradColor(const ARect: TRect; const StartColor, EndColor: TColor; const Counter: Integer): TColor;
function CreateDisabledBitmap (FOriginal: TBitmap; OutlineColor, BackColor, HighlightColor, ShadowColor: TColor; DrawHighlight: Boolean): TBitmap;
function GetFontMetrics (Font: TFont): TTextMetric;
function GetFontHeight (Font: TFont): Integer;
function RectInRect (R1, R2: TRect): Boolean;


//Procedure
procedure DrawGradientColor(ACanvas: TCanvas; ARect: TRect; const StartColor, EndColor: TColor);
procedure DrawXPStyleBorder(Canvas: TCanvas; ARect:TRect; const TBColor1, TBColor2, BBColor1, BBColor2, BBColor3: TColor);
procedure DrawXpStyle(Canvas: TCanvas; ARect:TRect; FState: TButtonState);
procedure SetXPStyleColors(ButtonStyle: TButtonStyle);

procedure CalcButtonLayout (Canvas: TCanvas; const Client: TRect; const Offset: TPoint; Layout: TButtonLayout; Spacing, Margin: Integer; FGlyph: TBitmap; FNumGlyphs: Integer; const Caption: string; var TextBounds: TRect; var GlyphPos: TPoint);
procedure DrawTransparentBmp (Cnv: TCanvas; x, y: Integer; Bmp: TBitmap; clTransparent: TColor);
procedure DrawParentImage (Control: TControl; Dest: TCanvas);
procedure Frame3DBorder (Canvas: TCanvas; Rect: TRect; TopColor, BottomColor: TColor; Width: Integer);

var
  XPButtonColor : TXPStyleColor ;

implementation

{$R XpButtons.RES}

//==============================================================================
//Procedure
//==============================================================================
procedure DrawGradientColor(ACanvas: TCanvas; ARect: TRect; const StartColor, EndColor: TColor);
var
  I : Integer;
  FRect : TRect ;
begin
  Inc(ARect.Left,1);
  Inc(ARect.Top,1);
  Dec(ARect.Right,1);
  Dec(ARect.Bottom,1);
  FRect := ARect ;
  for I := 1  to ARect.Bottom - ARect.Top do begin
      ACanvas.Brush.Color := GetGradColor(ARect, StartColor, EndColor, I);
      ACanvas.FillRect(FRect);

      FRect.Top := FRect.Top + 1;
      FRect.Bottom := FRect.Top + 1;
 end;
end;

procedure Frame3DBorder (Canvas: TCanvas; Rect: TRect; TopColor, BottomColor: TColor; Width: Integer);

  procedure DoRect;
  var
    TopRight, BottomLeft: TPoint;
  begin
    with Canvas, Rect do
    begin
      TopRight.X := Right;
      TopRight.Y := Top;
      BottomLeft.X := Left;
      BottomLeft.Y := Bottom;
      Pen.Color := TopColor;
      PolyLine([BottomLeft, TopLeft, TopRight]);
      Pen.Color := BottomColor;
      Dec(BottomLeft.X);
      PolyLine([TopRight, BottomRight, BottomLeft]);
    end;
  end;
begin
  Canvas.Pen.Width := 1;
  Dec(Rect.Bottom); Dec(Rect.Right);
  while Width > 0 do
  begin
    Dec(Width);
    DoRect;
    InflateRect(Rect, -1, -1);
  end;
  Inc(Rect.Bottom); Inc(Rect.Right);
end;

procedure DrawTransparentBmp (Cnv: TCanvas; x, y: Integer; Bmp: TBitmap; clTransparent: TColor);
var
  bmpXOR, bmpAND, bmpINVAND, bmpTarget: TBitmap;
  oldcol: Longint;
begin
  bmpAND := TBitmap.Create;
  bmpINVAND := TBitmap.Create;
  bmpXOR := TBitmap.Create;
  bmpTarget := TBitmap.Create;
  try
    bmpAND.Width := Bmp.Width;
    bmpAND.Height := Bmp.Height;
    bmpAND.Monochrome := True;
    oldcol := SetBkColor(Bmp.Canvas.Handle, ColorToRGB(clTransparent));
    BitBlt(bmpAND.Canvas.Handle, 0, 0, Bmp.Width ,Bmp.Height, Bmp.Canvas.Handle, 0, 0, SRCCOPY);
    SetBkColor(Bmp.Canvas.Handle, oldcol);

    bmpINVAND.Width := Bmp.Width;
    bmpINVAND.Height := Bmp.Height;
    bmpINVAND.Monochrome := True;
    BitBlt(bmpINVAND.Canvas.Handle, 0, 0,Bmp.Width,Bmp.Height, bmpAND.Canvas.Handle, 0, 0, NOTSRCCOPY);

    bmpXOR.Width := Bmp.Width;
    bmpXOR.Height := Bmp.Height;
    BitBlt(bmpXOR.Canvas.Handle, 0, 0,Bmp.Width,Bmp.Height, Bmp.Canvas.Handle, 0, 0, SRCCOPY);
    BitBlt(bmpXOR.Canvas.Handle, 0, 0,Bmp.Width,Bmp.Height, bmpINVAND.Canvas.Handle, 0, 0, SRCAND);

    bmpTarget.Width := Bmp.Width;
    bmpTarget.Height := Bmp.Height;
    BitBlt(bmpTarget.Canvas.Handle, 0, 0,Bmp.Width,Bmp.Height, Cnv.Handle, x, y, SRCCOPY);
    BitBlt(bmpTarget.Canvas.Handle, 0, 0,Bmp.Width,Bmp.Height, bmpAND.Canvas.Handle, 0, 0, SRCAND);
    BitBlt(bmpTarget.Canvas.Handle, 0, 0,Bmp.Width,Bmp.Height, bmpXOR.Canvas.Handle, 0, 0, SRCINVERT);

    BitBlt(Cnv.Handle, x, y, Bmp.Width, Bmp.Height, bmpTarget.Canvas.Handle, 0, 0, SRCCOPY);
  finally
    bmpXOR.Free;
    bmpAND.Free;
    bmpINVAND.Free;
    bmpTarget.Free;
  end;
end;

procedure DrawParentImage(Control: TControl; Dest: TCanvas);
var
  SaveIndex: Integer;
  DC: HDC;
  Position: TPoint;
begin
  with Control do
  begin
    if Parent = nil then
      Exit;
    DC := Dest.Handle;
    SaveIndex := SaveDC(DC);
    {$IFDEF DFS_COMPILER_2}
    GetViewportOrgEx(DC, @Position);
    {$ELSE}
    GetViewportOrgEx(DC, Position);
    {$ENDIF}
    SetViewportOrgEx(DC, Position.X - Left, Position.Y - Top, nil);
    IntersectClipRect(DC, 0, 0, Parent.ClientWidth, Parent.ClientHeight);
    Parent.Perform(WM_ERASEBKGND, DC, 0);
    Parent.Perform(WM_PAINT, DC, 0);
    RestoreDC(DC, SaveIndex);
  end;
end;

procedure CalcButtonLayout (Canvas: TCanvas; const Client: TRect; const Offset: TPoint; Layout: TButtonLayout;
  Spacing, Margin: Integer; FGlyph: TBitmap; FNumGlyphs: Integer;
  const Caption: string; var TextBounds: TRect; var GlyphPos: TPoint);
var
  TextPos: TPoint;
  ClientSize, GlyphSize, TextSize: TPoint;
  TotalSize: TPoint;
begin
  // calculate the item sizes
  ClientSize := Point(Client.Right - Client.Left, Client.Bottom - Client.Top);

  if FGlyph <> nil then
    GlyphSize := Point(FGlyph.Width div FNumGlyphs, FGlyph.Height)
  else
    GlyphSize := Point(0, 0);

  if Length(Caption) > 0 then
    begin
      TextBounds := Rect(0, 0, Client.Right - Client.Left, 0);
      DrawText(Canvas.Handle, PChar(Caption), Length(Caption), TextBounds, DT_CALCRECT or DT_SINGLELINE);
      TextSize := Point(TextBounds.Right - TextBounds.Left, TextBounds.Bottom - TextBounds.Top);
    end
  else
    begin
      TextBounds := Rect(0, 0, 0, 0);
      TextSize := Point(0, 0);
    end;

  // If the layout has the glyph on the right or the left, then both the
  // text and the glyph are centered vertically.  If the glyph is on the top
  // or the bottom, then both the text and the glyph are centered horizontally.
  if Layout in [blGlyphLeft, blGlyphRight] then
  begin
    GlyphPos.Y := (ClientSize.Y - GlyphSize.Y + 1) div 2;
    TextPos.Y := (ClientSize.Y - TextSize.Y + 1) div 2;
  end
  else
  begin
    GlyphPos.X := (ClientSize.X - GlyphSize.X + 1) div 2;
    TextPos.X := (ClientSize.X - TextSize.X + 1) div 2;
  end;

  // if there is no text or no bitmap, then Spacing is irrelevant
  if (TextSize.X = 0) or (GlyphSize.X = 0) then
    Spacing := 0;

  // adjust Margin and Spacing
  if Margin = -1 then
  begin
    if Spacing = -1 then
    begin
      TotalSize := Point(GlyphSize.X + TextSize.X, GlyphSize.Y + TextSize.Y);
      if Layout in [blGlyphLeft, blGlyphRight] then
        Margin := (ClientSize.X - TotalSize.X) div 3
      else
        Margin := (ClientSize.Y - TotalSize.Y) div 3;
      Spacing := Margin;
    end
    else
    begin
      TotalSize := Point(GlyphSize.X + Spacing + TextSize.X, GlyphSize.Y + Spacing + TextSize.Y);
      if Layout in [blGlyphLeft, blGlyphRight] then
        Margin := (ClientSize.X - TotalSize.X + 1) div 2
      else
        Margin := (ClientSize.Y - TotalSize.Y + 1) div 2;
    end;
  end
  else
  begin

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品天美传媒沈樵| 亚洲欧美日韩中文播放 | 一区二区三区中文字幕| 欧美日韩成人综合在线一区二区| 久久超碰97中文字幕| 亚洲精品国产第一综合99久久| 日韩欧美黄色影院| 一本到不卡免费一区二区| 美国十次综合导航| 亚洲尤物视频在线| 国产精品久久久久久久久免费丝袜 | 亚洲免费观看高清在线观看| 亚洲精品在线观看网站| 国产农村妇女精品| 欧美亚洲自拍偷拍| 成人精品一区二区三区四区| 日本成人在线视频网站| 一区二区三区四区亚洲| 国产精品嫩草影院com| 亚洲精品一区二区精华| 欧美一区在线视频| 欧美色综合天天久久综合精品| 成人黄色电影在线| 国产精品一区二区免费不卡 | 91精品在线观看入口| 91老师国产黑色丝袜在线| 国产精品综合网| 裸体健美xxxx欧美裸体表演| 亚洲成人手机在线| 一区二区三区在线观看视频| √…a在线天堂一区| 国产精品麻豆网站| 欧美激情中文字幕| 亚洲国产精品国自产拍av| 久久精品亚洲精品国产欧美kt∨| 日韩欧美电影一二三| 欧美久久久一区| 欧美日韩高清一区二区三区| 欧美视频完全免费看| 91成人免费网站| 色女孩综合影院| 欧美中文字幕久久| 欧美艳星brazzers| 欧美日韩中文字幕一区| 在线观看亚洲精品| 欧美日韩和欧美的一区二区| 91国模大尺度私拍在线视频| 色哟哟国产精品| 欧美亚洲综合久久| 欧美精品在线一区二区| 欧美电影在哪看比较好| 日韩区在线观看| 久久久综合视频| 国产精品人成在线观看免费 | 精品制服美女久久| 国产精品一区二区三区乱码| 高清成人免费视频| 91麻豆精品在线观看| 色哟哟一区二区三区| 欧美日韩中文字幕一区二区| 欧美日本国产视频| 日韩女优制服丝袜电影| 久久综合久久久久88| 国产精品免费视频一区| 亚洲免费在线观看视频| 婷婷国产在线综合| 九九精品一区二区| 不卡区在线中文字幕| 色88888久久久久久影院野外| 欧美私人免费视频| 国产精品福利一区| 午夜婷婷国产麻豆精品| 久久精品国产**网站演员| 国产91露脸合集magnet | 成人av影院在线| 91国产丝袜在线播放| 日韩网站在线看片你懂的| 久久久国际精品| 亚洲男人的天堂在线观看| 天天操天天色综合| 国产高清在线观看免费不卡| 一道本成人在线| 日韩视频免费直播| 18欧美乱大交hd1984| 强制捆绑调教一区二区| 99精品视频在线观看免费| 欧美日韩精品一区二区天天拍小说| 日韩欧美国产高清| 一区二区三区四区精品在线视频| 婷婷六月综合网| 99精品国产99久久久久久白柏| 9191国产精品| 国产精品第13页| 六月丁香婷婷久久| av日韩在线网站| 欧美va亚洲va| 亚洲国产精品一区二区www在线| 韩国欧美一区二区| 欧美日韩成人在线| 中文字幕不卡在线| 青青草一区二区三区| 色婷婷激情久久| 中文乱码免费一区二区| 乱一区二区av| 欧美军同video69gay| 亚洲天堂免费在线观看视频| 麻豆精品国产传媒mv男同| 在线免费亚洲电影| 国产精品乱人伦一区二区| 老司机午夜精品| 911精品国产一区二区在线| 中文字幕亚洲欧美在线不卡| 久久99这里只有精品| 欧美日韩第一区日日骚| 亚洲男女一区二区三区| 大尺度一区二区| 久久久不卡网国产精品二区| 日韩精品乱码av一区二区| 色一情一伦一子一伦一区| 国产精品欧美极品| 国产精品1区2区3区在线观看| 日韩一二三四区| 日韩影视精彩在线| 欧美精品777| 亚洲成av人片在线| 欧美色欧美亚洲另类二区| 国产精品成人网| av日韩在线网站| 中文字幕欧美国产| 国产成人综合亚洲91猫咪| xfplay精品久久| 美女视频免费一区| 日韩免费观看2025年上映的电影 | 丁香婷婷综合色啪| 2023国产一二三区日本精品2022| 免费观看成人av| 日韩精品一区二区三区四区 | 欧美人体做爰大胆视频| 亚洲一二三四区| 欧美体内she精高潮| 亚洲午夜国产一区99re久久| 色婷婷久久久亚洲一区二区三区 | 亚洲午夜一区二区| 欧美日韩精品二区第二页| 午夜久久久影院| 337p亚洲精品色噜噜狠狠| 无吗不卡中文字幕| 欧美一区二区三区小说| 五月天激情小说综合| 91精品国产综合久久婷婷香蕉 | 精品中文字幕一区二区| 久久视频一区二区| 成人黄色免费短视频| 亚洲婷婷国产精品电影人久久| 91蜜桃视频在线| 亚洲国产一区二区a毛片| 7777精品伊人久久久大香线蕉| 日本欧美加勒比视频| 日韩欧美区一区二| 国产成人午夜视频| 亚洲黄色尤物视频| 在线成人av网站| 韩日精品视频一区| 亚洲天堂av一区| 欧美日本乱大交xxxxx| 久草热8精品视频在线观看| 国产精品无遮挡| 欧美伊人久久久久久午夜久久久久| 亚洲国产视频一区| 久久一夜天堂av一区二区三区 | 欧美亚洲国产一卡| 久久超碰97人人做人人爱| 国产亚洲精品aa| 91精品1区2区| 国内精品伊人久久久久av一坑 | 欧美国产日本韩| 欧美性三三影院| 国产乱码一区二区三区| 亚洲三级免费观看| 日韩视频在线一区二区| 不卡高清视频专区| 日本美女视频一区二区| 国产欧美一区二区精品性色 | 在线播放国产精品二区一二区四区 | 91片黄在线观看| 日韩精品高清不卡| 国产精品欧美一区二区三区| 欧美亚洲综合色| 国产精品996| 亚洲综合丝袜美腿| 欧美激情综合五月色丁香小说| 欧美区一区二区三区| 豆国产96在线|亚洲| 三级影片在线观看欧美日韩一区二区| 国产午夜一区二区三区| 欧美日韩视频在线第一区| 大桥未久av一区二区三区中文| 日韩中文字幕区一区有砖一区| 1024成人网色www| 久久久亚洲精品石原莉奈|