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

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

?? lbbuttons.pas

?? LBBottun for delphi7 按鈕控件
?? PAS
字號:
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一区二区三区免费野_久草精品视频
亚洲综合成人在线视频| 成人免费黄色大片| 韩国女主播一区| 91啪亚洲精品| 欧美精品一区二区三区在线播放 | 欧美一区二区三区喷汁尤物| 国产精品无码永久免费888| 亚洲福利视频一区二区| 波多野结衣视频一区| 精品成a人在线观看| 日韩激情一二三区| 91成人在线免费观看| 中文乱码免费一区二区| 成人国产电影网| 精品福利一二区| 日本女人一区二区三区| 色综合久久精品| 国产精品传媒入口麻豆| 国产精品资源在线| 精品免费99久久| 日本vs亚洲vs韩国一区三区二区| 欧美日精品一区视频| 亚洲欧美日韩国产一区二区三区| 国产成人一级电影| 久久久久久黄色| 国产精品综合在线视频| 欧美变态tickle挠乳网站| 日本在线播放一区二区三区| 欧美老女人第四色| 日韩二区三区四区| 亚洲精品大片www| 成人福利视频网站| 成人免费小视频| 91精品福利视频| 亚洲一区成人在线| 欧美人与禽zozo性伦| 婷婷中文字幕一区三区| 欧美久久一二区| 日韩不卡免费视频| 日韩欧美中文一区| 国产毛片精品视频| 国产精品麻豆一区二区| 91蝌蚪porny九色| 亚洲成人自拍偷拍| 日韩视频在线你懂得| 韩国女主播成人在线| 国产日韩欧美不卡在线| 色综合亚洲欧洲| 亚洲一区二区三区四区在线观看 | 久久国产精品色| 精品日韩av一区二区| 国产一区中文字幕| 欧美激情一区二区三区全黄| 成人av一区二区三区| 亚洲精品视频在线| 欧美精品黑人性xxxx| 久久国产尿小便嘘嘘| 国产精品家庭影院| 欧美日韩一区二区三区在线| 日本伊人色综合网| 欧美国产日韩a欧美在线观看| 99精品桃花视频在线观看| 亚洲已满18点击进入久久| 精品国产91久久久久久久妲己| 成人黄色一级视频| 亚洲午夜精品在线| 国产亲近乱来精品视频| 欧洲另类一二三四区| 激情五月婷婷综合网| 亚洲色图一区二区| 精品免费国产二区三区 | 成人午夜激情片| 亚洲国产日韩在线一区模特| 久久久久久久久伊人| 欧美在线高清视频| 国产精品一线二线三线精华| 一区二区三区欧美| 中文字幕精品三区| 欧美一区二区网站| 日本精品裸体写真集在线观看 | 欧美草草影院在线视频| 91丨porny丨国产入口| 久久99精品久久久久| 一区二区三区四区激情| 国产亚洲欧洲997久久综合 | 91一区在线观看| 99久久久无码国产精品| 国产精品一卡二卡| 日韩精品一二区| 亚洲精品日韩一| 国产精品你懂的在线欣赏| 精品国产乱码久久久久久图片| 欧美日韩在线播| 色先锋aa成人| eeuss影院一区二区三区| 国产一区二区三区在线观看精品| 日韩精品午夜视频| 丝袜亚洲精品中文字幕一区| 亚洲综合久久久久| 亚洲日本成人在线观看| 国产精品久久99| 国产欧美综合在线| 久久精品欧美一区二区三区不卡| 欧美精品一区二区在线播放| 日韩美一区二区三区| 正在播放亚洲一区| 欧美一区二区黄色| 欧美一区二区三区免费视频| 欧美人xxxx| 欧美日韩国产精选| 欧美色综合天天久久综合精品| 色综合激情五月| 91福利资源站| 欧美乱熟臀69xxxxxx| 欧美日韩国产高清一区二区 | 9久草视频在线视频精品| 丰满白嫩尤物一区二区| 大尺度一区二区| 99国产一区二区三精品乱码| 成人av资源下载| 91小宝寻花一区二区三区| 91黄色激情网站| 欧美日韩aaa| 欧美大胆一级视频| 久久精品男人天堂av| 国产精品毛片大码女人| 亚洲精品中文在线观看| 视频一区二区三区在线| 日本不卡中文字幕| 国产精品亚洲午夜一区二区三区 | 亚洲婷婷国产精品电影人久久| 中文字幕日韩av资源站| 亚洲精选免费视频| 日韩激情一二三区| 国产一区在线不卡| 99re这里都是精品| 欧美久久久久久久久| 精品国产91九色蝌蚪| 国产精品久久看| 亚洲地区一二三色| 国产乱码精品一区二区三| 欧美一级片在线观看| 国产婷婷一区二区| 亚洲综合一二区| 麻豆成人免费电影| 99精品欧美一区二区三区小说| 91久久精品日日躁夜夜躁欧美| 欧美精品九九99久久| 国产亚洲欧洲一区高清在线观看| 亚洲乱码中文字幕综合| 蜜臂av日日欢夜夜爽一区| 成人av小说网| 精品少妇一区二区三区免费观看 | 国产网站一区二区| 亚洲制服丝袜av| 国产高清在线精品| 欧美日韩国产片| 欧美激情一区二区三区蜜桃视频 | 日本欧美大码aⅴ在线播放| 国产999精品久久久久久| 欧美性猛片aaaaaaa做受| 中文字幕欧美三区| 久久成人久久鬼色| 在线视频国产一区| 国产精品国产自产拍在线| 成人午夜视频在线观看| 日韩一区二区在线观看| 亚洲精品久久7777| 成人美女在线视频| 制服丝袜亚洲播放| 一区二区三区在线影院| 东方aⅴ免费观看久久av| 日韩欧美在线影院| 午夜精品久久久久久久久| 91色综合久久久久婷婷| 国产亚洲欧美日韩在线一区| 日韩av一区二区在线影视| 在线中文字幕一区| 国产精品传媒视频| 国产宾馆实践打屁股91| 久久综合五月天婷婷伊人| 日韩福利视频导航| 宅男噜噜噜66一区二区66| 亚洲电影你懂得| 日本高清不卡视频| 国产精品黄色在线观看| av影院午夜一区| 国产精品电影院| 91在线一区二区三区| 国产精品三级视频| 成人一级片在线观看| 国产亚洲一区二区三区在线观看| 日韩电影免费一区| 欧美精品日韩精品| 日产国产高清一区二区三区| 在线成人午夜影院| 日本vs亚洲vs韩国一区三区二区| 欧美福利电影网| 爽好多水快深点欧美视频| 欧美一级免费观看|