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

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

?? lbbuttons.pas.~1~

?? 一個delphi的第三方控件 XP按鈕一個delphi的第三方控件 XP按鈕一個delphi的第三方控件 XP按鈕
?? ~1~
字號:
unit LbButtons;

interface

uses Windows, Graphics, Classes;

type
  TLbColorStyle = (lcsCustom, lcsGold, lcsChrome, lcsBlue, lcsRed, lcsUltraFlat1, lcsUltraFlat2, lcsAqua);
  TLbButtonKind = (bkCustom, bkOK, bkCancel, bkHelp, bkYes, bkNo, bkClose, bkAbort, bkRetry, bkIgnore, bkAll);
  TLbButtonLayout = (blGlyphLeft, blGlyphRight, blGlyphTop, blGlyphBottom);
  TLbButtonStyle = (bsNormal, bsEncarta, bsModern);

//##############################################################################

procedure GetPreDefinedColors(ColorStyle: TLbColorStyle; var Color, LightColor, ShadowColor, ColorWhenDown, HotTrackColor: TColor; var Flat, Modern: boolean);
procedure LbPaintButton(Canvas: TCanvas; Width, Height, NumGlyphs: integer; Glyph: TBitmap; Down, CursorOnButton, Transparent, Enabled, Flat, PopupArrow: boolean; Style: TLbButtonStyle; Color, ColorWhenDown, HotTrackColor, LightColor, ShadowColor: TColor; Font: TFont; Layout: TLbButtonLayout; Caption: string; Alignment: TAlignment);

//##############################################################################

implementation

{$R LBBUTTONS.RES}

//##############################################################################

procedure GetPreDefinedColors(ColorStyle: TLbColorStyle; var Color, LightColor, ShadowColor, ColorWhenDown, HotTrackColor: TColor; var Flat, Modern: boolean);
begin
   case ColorStyle of
      lcsGold:       begin Color := $0000C0C0;  LightColor := clYellow;    ShadowColor := clOlive;    ColorWhenDown := clNone;     HotTrackColor := $0000DFDF;  Flat := False; Modern := true; end;
      lcsChrome:     begin Color := clSilver;   LightColor := clWhite;     ShadowColor := clGray;     ColorWhenDown := clNone;     HotTrackColor := clNone;     Flat := False; Modern := true; end;
      lcsBlue:       begin Color := $00FF8000;  LightColor := clAqua;      ShadowColor := clBlue;     ColorWhenDown := clNone;     HotTrackColor := clNone;     Flat := False; Modern := true; end;
      lcsRed:        begin Color := clRed;      LightColor := $00C0C0FF;   ShadowColor := $000000C0;  ColorWhenDown := clNone;     HotTrackColor := clNone;     Flat := False; Modern := true; end;
      lcsAqua:       begin Color := $00ECCE94;  LightColor := $00FCE6D4;   ShadowColor := clBlack;    ColorWhenDown := clNone;     HotTrackColor := clNone;     Flat := False; Modern := true; end;
      lcsUltraFlat1: begin Color := clBtnFace;  LightColor := $00B59284;   ShadowColor := $00B59284;  ColorWhenDown := $00B59284;  HotTrackColor := $00DED3D6;  Flat := True;  Modern := false; end;
      lcsUltraFlat2: begin Color := clBtnFace;  LightColor := clBlack;     ShadowColor := clBlack;    ColorWhenDown := $0024DABC;  HotTrackColor := $008CF6E4;  Flat := True;  Modern := false; end;
   end;
end;

//##############################################################################

procedure LbPaintButton(Canvas: TCanvas; Width, Height, NumGlyphs: integer; Glyph: TBitmap; Down, CursorOnButton, Transparent, Enabled, Flat, PopupArrow: boolean; Style: TLbButtonStyle; Color, ColorWhenDown, HotTrackColor, LightColor, ShadowColor: TColor; Font: TFont; Layout: TLbButtonLayout; Caption: string; Alignment: TAlignment);
var
   iCaptionHeight, iCaptionWidth, iGlyphHeight, iGlyphWidth: integer;
   iGlyphIndex: integer;
   iOffset: integer;
   sDrawCaption: string;
   clBackColor: TColor;
   iCapX, iCapY, iGlX, iGlY: integer;
   wR, wG, wB: word;
   aRect: TRect;
   FArrowGlyph: TPicture;

   procedure DrawColorFade(StartColor, StopColor: TColor; iLeft, iTop, iRight, iBottom: integer);
   var
      iCounter, iBuffer, iFillStep: integer;
      bR1, bG1, bB1, bR2, bG2, bB2: byte;
      aColor1, aColor2: LongInt;
      dCurrentR, dCurrentG, dCurrentB, dRStep, dGStep, dBStep: double;
      aOldStyle: TPenStyle;
      iHeight, iDrawBottom: integer;

   begin
      iHeight := (iBottom - iTop);
      aOldStyle := Canvas.Pen.Style; Canvas.Pen.Style := psClear;
      aColor1 := ColorToRGB(StartColor); bR1 := GetRValue(aColor1); bG1 := GetGValue(aColor1); bB1 := GetBValue(aColor1);
      aColor2 := ColorToRGB(StopColor);  bR2 := GetRValue(aColor2); bG2 := GetGValue(aColor2); bB2 := GetBValue(aColor2);
      dCurrentR := bR1; dCurrentG := bG1; dCurrentB := bB1;
      dRStep := (bR2-bR1) / 31; dGStep := (bG2-bG1) / 31; dBStep := (bB2-bB1) / 31;

      iFillStep := (iHeight div 31) + 1;
      for iCounter := 0 to 31 do
      begin
         iBuffer := iCounter * iHeight div 31;
         Canvas.Brush.Color := rgb(trunc(dCurrentR), trunc(dCurrentG), trunc(dCurrentB));
         dCurrentR := dCurrentR + dRStep; dCurrentG := dCurrentG + dGStep; dCurrentB := dCurrentB + dBStep;
         iDrawBottom := iTop + iBuffer + iFillStep; if iDrawBottom > iBottom then iDrawBottom := iBottom;
         Canvas.FillRect(Rect(iLeft, iTop + iBuffer, iRight, iDrawBottom));
      end;
      Canvas.Pen.Style := aOldStyle;
   end;

   procedure DrawGlyph(iDestLeft, iDestTop, iSrcLeft, iSrcTop, iWidth, iHeight: integer);  // transparent draw
   var
      aPicture: TPicture;

   begin
      aPicture := TPicture.Create;
      try aPicture.Bitmap.Assign(Glyph); except end;
      aPicture.Bitmap.Width := iWidth;
      aPicture.Bitmap.Height := iHeight;
      aPicture.Bitmap.Canvas.Draw(-iSrcLeft, -iSrcTop, Glyph);
      aPicture.Graphic.Transparent := true;
      Canvas.Draw(iDestLeft, iDestTop, aPicture.Graphic);
      aPicture.Free;
   end;

begin
   if not Enabled then Down := false;
   iOffset := 0; if Down then if Style in [bsNormal, bsModern] then iOffset := 1;

   // Background
   clBackColor := colortorgb(Color);
   if CursorOnButton then if HotTrackColor <> clNone then clBackColor := HotTrackColor;
   if Down then if ColorWhenDown <> clNone then clBackColor := ColorWhenDown;

   if not Transparent then
   begin
      Canvas.Brush.Color := clBackColor;
      if Style <> bsModern then Canvas.Rectangle(-1, -1, Width+1, Height+1)
      else
      begin
         DrawColorFade(LightColor, clBackColor, 2, 2, Width - 2, Height div 4 + iOffset);
         DrawColorFade(clBackColor, LightColor, 2, Height div 4 + iOffset, Width - 2, Height - 1);
      end;
   end;

   Canvas.Brush.Style := bsclear;

   // Border
   if Style <> bsModern then
   begin
      if {Enabled and} (not Flat or CursorOnButton or Down) then
      begin                   
         with Canvas do
         begin
            if Down then Pen.Color := ShadowColor else Pen.Color := LightColor;
            MoveTo(0, Height-1);
            LineTo(0, 0);
            LineTo(Width-1, 0);
            if Down then Pen.Color := LightColor else Pen.Color := ShadowColor;
            LineTo(Width-1, Height-1);
            LineTo(0, Height-1);
         end;
      end;
   end
   else
   begin
      with Canvas do
      begin
         Pen.Color := clBackColor; if Down then Pen.Color := ShadowColor;
         Rectangle(1, 1, Width-1, Height-1);
         Pen.Color := ShadowColor;
         RoundRect(0, 0, Width, Height, 6, 6);
      end;
   end;

   // Prepare layout
   Canvas.Font := Font;
   if Down then if Style = bsEncarta then Canvas.Font.Style := Canvas.Font.Style + [fsBold];

   if not Glyph.Empty then
   begin
      if Layout = blGlyphLeft then sDrawCaption := ' ' + Caption else sDrawCaption := Caption + ' ';
      if sDrawCaption = ' ' then sDrawCaption := '';
   end
   else sDrawCaption := Caption;

   iCaptionHeight := Canvas.TextHeight(sDrawCaption);
   iCaptionWidth := Canvas.TextWidth(sDrawCaption);
   iGlyphHeight := Glyph.Height;
   if NumGlyphs <> 0 then iGlyphWidth := Glyph.Width div NumGlyphs else iGlyphWidth := 0;
   iGlyphIndex := 0;
   if not Enabled then iGlyphIndex := iGlyphWidth
   else
   begin
      if CursorOnButton and (NumGlyphs > 3) then iGlyphIndex := 3 * iGlyphWidth;
      if Down and (NumGlyphs > 2) then iGlyphIndex := 2 * iGlyphWidth;
   end;

   // Text + Glyph
   iCapX := 0; iCapY := 0; iGlX := 0; iGlY := 0; // Just to get rid of these warnings...

   if Layout = blGlyphLeft then
   begin
      iCapY := (Height - iCaptionHeight) div 2 + iOffset; iGlY := (Height - iGlyphHeight) div 2 + iOffset;
      case Alignment of
         taLeftJustify:    begin iCapX := 4 + iGlyphWidth + iOffset; iGlX := 4 + iOffset; end;
         taRightJustify:   begin iCapX := Width - 4 - iCaptionWidth + iOffset; iGlX := Width - 4 - iCaptionWidth - iGlyphWidth + iOffset; end;
         taCenter:         begin iCapX := (Width - iCaptionWidth - iGlyphWidth) div 2 + iGlyphWidth + iOffset; iGlX := (Width - iCaptionWidth - iGlyphWidth) div 2 + iOffset; end;
      end;
   end
   else
   if Layout = blGlyphRight then
   begin
      iCapY := (Height - iCaptionHeight) div 2 + iOffset; iGlY := (Height - iGlyphHeight) div 2 + iOffset;
      case Alignment of
         taLeftJustify:    begin iCapX := 4 + iOffset; iGlX := 4 + iCaptionWidth + iOffset; end;
         taRightJustify:   begin iCapX := Width - 4 - iCaptionWidth - iGlyphWidth + iOffset; iGlX := Width - 4 - iGlyphWidth + iOffset; end;
         taCenter:         begin iCapX := (Width - iCaptionWidth - iGlyphWidth) div 2 + iOffset; iGlX := (Width - iCaptionWidth - iGlyphWidth) div 2 + iCaptionWidth + iOffset; end;
      end;
   end
   else
   if Layout = blGlyphTop then
   begin
      iCapY := (Height - iCaptionHeight - iGlyphHeight) div 2 + iGlyphHeight + iOffset; iGlY := (Height - iCaptionHeight - iGlyphHeight) div 2 + iOffset;
      case Alignment of
         taLeftJustify:    begin iCapX := 4 + iOffset; iGlX := 4 + iOffset; end;
         taRightJustify:   begin iCapX := Width - 4 - iCaptionWidth + iOffset; iGlX := Width - 4 - iGlyphWidth + iOffset; end;
         taCenter:         begin iCapX := (Width - iCaptionWidth) div 2 + iOffset; iGlX := (Width - iGlyphWidth) div 2 + iOffset; end;
      end;
   end
   else
   if Layout = blGlyphBottom then
   begin
      iCapY := (Height - iCaptionHeight - iGlyphHeight) div 2 + iOffset; iGlY := (Height - iCaptionHeight - iGlyphHeight) div 2 + iCaptionHeight + iOffset;
      case Alignment of
         taLeftJustify:    begin iCapX := 4 + iOffset; iGlX := 4 + iOffset; end;
         taRightJustify:   begin iCapX := Width - 4 - iCaptionWidth + iOffset; iGlX := Width - 4 - iGlyphWidth + iOffset; end;
         taCenter:         begin iCapX := (Width - iCaptionWidth) div 2 + iOffset; iGlX := (Width - iGlyphWidth) div 2 + iOffset; end;
      end;
   end;

   if not Enabled then Canvas.Font.Color := clGray;
   aRect := Rect(iCapX, iCapY, iCapX + iCaptionWidth, iCapY + iCaptionHeight);
   DrawText(Canvas.Handle, pChar(sDrawCaption), Length(sDrawCaption), aRect, DT_CENTER or DT_VCENTER);
   DrawGlyph(iGlX, iGlY, iGlyphIndex, 0, iGlyphWidth, iGlyphHeight);

   if PopupArrow then
   begin
      FArrowGlyph := TPicture.Create;
      FArrowGlyph.Bitmap.LoadFromResourceName(hInstance, 'LBARROW');
      FArrowGlyph.Graphic.Transparent := true;
      Canvas.Draw(Width - 11, Height div 2 - 1, FArrowGlyph.Graphic);
      FArrowGlyph.Free;
   end;
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美不卡一区二区三区| 中文字幕一区二区三区在线不卡 | 欧美大片免费久久精品三p| 日韩欧美一二区| 国产精品久久久久久久浪潮网站 | 日本不卡的三区四区五区| 国产成都精品91一区二区三| 欧美高清视频www夜色资源网| 久久久久久久综合狠狠综合| 亚洲一二三四区| 91精品国模一区二区三区| 91成人免费在线| 中文字幕av一区二区三区免费看| 午夜影视日本亚洲欧洲精品| 成人免费va视频| 久久婷婷国产综合精品青草| 亚洲图片欧美综合| 国产精品视频在线看| 欧美伊人久久大香线蕉综合69| 免费在线一区观看| 最新热久久免费视频| 欧美一级xxx| 欧美美女一区二区在线观看| 国产网站一区二区| 欧美自拍偷拍一区| 国产成人精品www牛牛影视| 不卡的电视剧免费网站有什么| 偷拍日韩校园综合在线| 中文字幕一区三区| 国产色综合久久| 精品国产不卡一区二区三区| 日韩一区二区三| 亚洲18色成人| 中文在线资源观看网站视频免费不卡| 成人欧美一区二区三区在线播放| 中文字幕av一区二区三区高 | 高清不卡在线观看av| 成人福利视频在线看| 91免费视频大全| 亚洲大片免费看| 欧美大片拔萝卜| 欧美哺乳videos| 亚洲黄色小视频| 欧美性高清videossexo| 国产午夜精品福利| 极品尤物av久久免费看| 久久久久久日产精品| 丁香一区二区三区| 亚洲视频一区在线| 国产传媒久久文化传媒| 蜜桃精品视频在线| 国产日韩欧美精品电影三级在线| 成人的网站免费观看| 激情五月婷婷综合| 国产乱国产乱300精品| 成人黄色片在线观看| 在线观看日韩精品| 精品国产一区二区国模嫣然| 国产日韩欧美麻豆| 亚洲一区二区三区影院| 国产成人精品一区二| 精品粉嫩aⅴ一区二区三区四区| 成人三级在线视频| 色综合视频在线观看| 69精品人人人人| 国产精品伊人色| 一区二区三区中文字幕电影| 欧美一区二区三区四区久久| 国产福利一区二区三区视频在线| 一区二区三区四区五区视频在线观看 | 成人欧美一区二区三区黑人麻豆 | 91麻豆福利精品推荐| 视频一区二区欧美| 中文字幕中文字幕在线一区 | 中文一区二区在线观看| 在线观看区一区二| 国产一区二区美女诱惑| 亚洲成人久久影院| 国产精品久久午夜| 日韩亚洲电影在线| 色8久久人人97超碰香蕉987| 国产综合色精品一区二区三区| 欧美日韩一区二区三区在线看| 国产精品久久影院| 精品久久久久久无| 欧美精品丝袜中出| 99精品欧美一区| 国产在线播放一区三区四| 亚洲一区二区欧美| 国产精品人成在线观看免费| 国产精品一区二区免费不卡| 午夜精品久久久久久久久久| 亚洲欧洲韩国日本视频 | 国产精品一级黄| 亚洲三级免费电影| 香蕉av福利精品导航| 欧美tickle裸体挠脚心vk| 国产成人免费视频网站高清观看视频| 日韩欧美中文字幕精品| 韩国中文字幕2020精品| 亚洲国产精品成人综合色在线婷婷| 婷婷久久综合九色综合伊人色| 欧美日韩在线一区二区| 国产成人在线看| 欧美一区永久视频免费观看| 蜜臀av性久久久久蜜臀aⅴ四虎 | 亚洲国产中文字幕| 国产精品国产自产拍高清av| 欧美精品一区二区三区四区 | ww久久中文字幕| jlzzjlzz亚洲女人18| 日韩精品亚洲专区| 亚洲国产cao| 日韩免费高清av| 91麻豆精品国产自产在线 | 久久精品99国产精品| 亚洲成av人在线观看| 亚洲国产你懂的| 日日摸夜夜添夜夜添国产精品| 无吗不卡中文字幕| 亚洲超碰97人人做人人爱| 午夜电影一区二区| 免费看日韩精品| 精品一区二区三区不卡| 国产剧情一区在线| 波多野结衣中文字幕一区二区三区 | 99久久综合99久久综合网站| 国产福利一区在线| 94-欧美-setu| 在线视频中文字幕一区二区| 欧美久久一二三四区| 欧美刺激脚交jootjob| 欧美韩国日本不卡| 一区二区三区在线视频播放| 日本在线播放一区二区三区| 久久不见久久见免费视频1| 国产一区二区在线电影| 不卡视频免费播放| 欧美三电影在线| 波多野结衣精品在线| 波多野洁衣一区| 日韩一区二区三区av| 国产一区二区福利| 欧美无砖专区一中文字| 日韩视频在线永久播放| 国产欧美日韩不卡免费| 国产精品国产三级国产普通话99 | 91豆麻精品91久久久久久| 精品日韩av一区二区| 久久久精品天堂| 一个色在线综合| 成人精品在线视频观看| 亚洲午夜视频在线| 久久精品免费观看| 99在线热播精品免费| 欧美一区二区精品| 国产精品污www在线观看| 亚洲成a人在线观看| 国产成人在线视频播放| 欧美亚洲日本国产| 久久婷婷成人综合色| 久久久久久黄色| 毛片一区二区三区| 国产拍欧美日韩视频二区| 亚洲乱码国产乱码精品精98午夜| 蜜桃av噜噜一区| 色综合视频一区二区三区高清| 538prom精品视频线放| 综合色天天鬼久久鬼色| 蜜臀91精品一区二区三区| 5566中文字幕一区二区电影| 色悠久久久久综合欧美99| 欧美日韩一级片在线观看| 国产精品麻豆网站| 国产成人免费在线观看| 久久久久久日产精品| 国产毛片精品视频| 91精品国产黑色紧身裤美女| 五月综合激情日本mⅴ| 免费人成网站在线观看欧美高清| 91久久人澡人人添人人爽欧美| 亚洲影院免费观看| 日本一区二区高清| 久久你懂得1024| 国产无遮挡一区二区三区毛片日本| 4438x亚洲最大成人网| kk眼镜猥琐国模调教系列一区二区| 国产精品美女久久久久久| 欧美在线观看一二区| 亚洲精品成人天堂一二三| 欧美日韩另类一区| 六月丁香综合在线视频| 日本91福利区| 99视频精品在线| 欧美一级欧美一级在线播放| 久久精品噜噜噜成人88aⅴ| 欧美日韩国产小视频在线观看| 亚洲综合在线视频| 日本久久电影网| 一区二区不卡在线播放 |