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

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

?? vrbuttons.pas

?? 作工控的好控件
?? PAS
?? 第 1 頁 / 共 3 頁
字號:
        BorderHighlight, BorderShadow, 1)
    else
      DrawFrame3D(BitmapCanvas, PaintRect,
        BorderShadow, BorderHighlight, 1)
  end else InflateRect(PaintRect, -1, -1);

  if FPressed then
  begin
    OffsetRect(FImageRect, 1, 1);
    OffsetRect(FTextBounds, 1, 1);
  end;

  if not FGlyph.Empty then
  begin
    BitmapCanvas.Brush.Style := bsClear;
    BitmapCanvas.BrushCopy(FImageRect, FGlyph, BitmapRect(FGlyph),
      FGlyph.TransparentColor);
  end;

  if not Enabled then
    BitmapCanvas.Font.Color := DisabledText;
  BitmapCanvas.Brush.Style := bsClear;
  DrawText(BitmapCanvas.Handle, PChar(Caption), -1, FTextBounds,
    DT_SINGLELINE + DT_VCENTER + DT_CENTER);

  inherited Paint;
end;

procedure TVrHyperButton.CalcPaintParams;
var
  Rect: TRect;
  ImagePos: TPoint;
begin
  Rect := ClientRect;
  InflateRect(Rect, -1, -1); //fix borderwidth
  FSize.X := FGlyph.Width;
  FSize.Y := FGlyph.Height;
  BitmapCanvas.Font.Assign(Self.Font);
  CalcImageTextLayout(BitmapCanvas, Rect, Point(1, 1), Caption, FLayout,
    FMargin, FSpacing, Point(FSize.X, FSize.Y), ImagePos, FTextBounds);
  if FGlyph.Empty then OffsetRect(FTextBounds, 0, -1);
  FImageRect := Bounds(ImagePos.X, ImagePos.Y, FSize.X, FSize.Y);
end;

procedure TVrHyperButton.CMFontChanged(var Message: TMessage);
begin
  inherited;
  BitmapCanvas.Font.Assign(Self.Font);
  UpdateControlCanvas;
end;

procedure TVrHyperButton.CMEnabledChanged(var Message: TMessage);
begin
  UpdateControlCanvas;
end;

procedure TVrHyperButton.GlyphChanged(Sender: TObject);
begin
  UpdateControlCanvas;
end;

procedure TVrHyperButton.SetLayout(Value: TVrImageTextLayout);
begin
  if FLayout <> Value then
  begin
    FLayout := Value;
    UpdateControlCanvas;
  end;
end;

procedure TVrHyperButton.SetMargin(Value: Integer);
begin
  if FMargin <> Value then
  begin
    FMargin := Value;
    UpdateControlCanvas;
  end;
end;

procedure TVrHyperButton.SetSpacing(Value: Integer);
begin
  if FSpacing <> Value then
  begin
    FSpacing := Value;
    UpdateControlCanvas;
  end;
end;

procedure TVrHyperButton.SetBorderColor(Value: TColor);
begin
  if FBorderColor <> Value then
  begin
    FBorderColor := Value;
    UpdateControlCanvas;
  end;
end;

procedure TVrHyperButton.SetBorderHighlight(Value: TColor);
begin
  if FBorderHighlight <> Value then
  begin
    FBorderHighlight := Value;
    UpdateControlCanvas;
  end;
end;

procedure TVrHyperButton.SetBorderShadow(Value: TColor);
begin
  if FBorderShadow <> Value then
  begin
    FBorderShadow := Value;
    UpdateControlCanvas;
  end;
end;

procedure TVrHyperButton.SetColorEnter(Value: TColor);
begin
  if FColorEnter <> Value then
  begin
    FColorEnter := Value;
    UpdateControlCanvas;
  end;
end;

procedure TVrHyperButton.SetColorLeave(Value: TColor);
begin
  if FColorLeave <> Value then
  begin
    FColorLeave := Value;
    UpdateControlCanvas;
  end;
end;

procedure TVrHyperButton.SetGlyph(Value: TBitmap);
begin
  FGlyph.Assign(Value);
end;

procedure TVrHyperButton.Click;
begin
end;

procedure TVrHyperButton.MouseDown(Button: TMouseButton; Shift: TShiftState;
  X, Y: Integer);
begin
  if (Button = mbLeft) then
  begin
    FDown := True;
    FPressed := True;
    UpdateControlCanvas;
  end;
  inherited MouseDown(Button, Shift, X, Y);
end;

procedure TVrHyperButton.MouseUp(Button: TMouseButton; Shift: TShiftState;
  X, Y: Integer);
var
  DoClick: Boolean;
begin
  FDown := false;
  DoClick := false;
  if FPressed then
  begin
    FPressed := false;
    UpdateControlCanvas;
    DoClick := True;
  end;
  inherited MouseUp(Button, Shift, X, Y);
  if DoClick then
    inherited Click;
end;

procedure TVrHyperButton.MouseEnter;
begin
  FHasMouse := True;
  if FDown then FPressed := True;
  UpdateControlCanvas;
  inherited;
end;

procedure TVrHyperButton.MouseLeave;
begin
  FHasMouse := false;
  if FDown then FPressed := false;
  UpdateControlCanvas;
  inherited;
end;

{ TVrShadowBrush }
constructor TVrShadowBrush.Create;
begin
  inherited Create;
  Color := clBlack;
end;

{ TVrShadowPen }
constructor TVrShadowPen.Create;
begin
  inherited Create;
  Color := clLime;
end;

{TVrShadowButton}

constructor TVrShadowButton.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  ControlStyle := ControlStyle + [csOpaque] - [csDoubleClicks];
  Width := 110;
  Height := 30;
  Font.Color := clWhite;
  ParentColor := true;
  ParentFont := false;
  FDepth := 4;
  FShadowColor := clBtnShadow;
  FShadowOutline := clBtnShadow;
  FBrush := TVrShadowBrush.Create;
  FBrush.OnChange := StyleChanged;
  FPen := TVrShadowPen.Create;
  FPen.OnChange := StyleChanged;
  FStyle := ssRoundRect;
  FDirection := sdBottomRight;
  FTextAlign := vtaCenter;
end;

destructor TVrShadowButton.Destroy;
begin
  FBrush.Free;
  FPen.Free;
  inherited Destroy;
end;

procedure TVrshadowButton.Click;
begin
end;

procedure TVrShadowButton.SetBrush(Value: TVrShadowBrush);
begin
  FBrush.Assign(Value);
end;

procedure TVrShadowButton.SetPen(Value: TVrShadowPen);
begin
  FPen.Assign(Value);
end;

procedure TVrShadowButton.SetDepth(Value: Integer);
begin
  if (FDepth <> Value) and (Value > 2) then
  begin
    FDepth := Value;
    UpdateControlCanvas;
  end;
end;

procedure TVrShadowButton.SetShadowColor(Value: TColor);
begin
  if FShadowColor <> Value then
  begin
    FShadowColor := Value;
    UpdateControlCanvas;
  end;
end;

procedure TVrShadowButton.SetShadowOutline(Value: TColor);
begin
  if FShadowOutline <> Value then
  begin
    FShadowOutline := Value;
    UpdateControlCanvas;
  end;
end;

procedure TVrShadowButton.SetStyle(Value: TVrShadowButtonStyle);
begin
  if FStyle <> Value then
  begin
    FStyle := Value;
    UpdateControlCanvas;
  end;
end;

procedure TVrShadowButton.SetDirection(Value: TVrShadowDirection);
begin
  if FDirection <> Value then
  begin
    FDirection := Value;
    UpdateControlCanvas;
  end;
end;

procedure TVrShadowButton.SetTextAlign(Value: TVrTextAlignment);
begin
  if FTextAlign <> Value then
  begin
    FTextAlign := Value;
    UpdateControlCanvas;
  end;
end;

procedure TVrShadowButton.StyleChanged(Sender: TObject);
begin
  UpdateControlCanvas;
end;

procedure TVrShadowButton.AdjustBtnRect(var Rect: TRect; Offset: Integer);
begin
  case FDirection of
    sdBottomRight: OffsetRect(Rect, Offset, Offset);
    sdBottomLeft: OffsetRect(Rect, -Offset, Offset);
    sdTopLeft: OffsetRect(Rect, -Offset, -Offset);
    sdTopRight: OffsetRect(Rect, Offset, -Offset);
  end;
end;

procedure TVrShadowButton.DrawButton;
const
  ShapeStyles: array[TVrShadowButtonStyle] of TVrShapeType =
    (stRectangle, stRoundRect);
var
  ImageRect, ShadowRect: TRect;
begin
  ImageRect := ClientRect;

  with BitmapImage do
  begin
    InflateRect(ImageRect, -FPen.Width, -FPen.Width);

    case FDirection of
      sdBottomRight:
        begin
          Dec(ImageRect.Right, FDepth);
          Dec(ImageRect.Bottom, FDepth);
        end;
      sdBottomLeft:
        begin
          Inc(ImageRect.Left, FDepth);
          Dec(ImageRect.Bottom, FDepth);
        end;
      sdTopLeft:
        begin
          Inc(ImageRect.Top, FDepth);
          Inc(ImageRect.Left, FDepth);
        end;
      sdTopRight:
        begin
          Inc(ImageRect.Top, FDepth);
          Dec(ImageRect.Right, FDepth);
        end;
    end;

    with Canvas do
    begin
      Pen.Width := 1;
      Pen.Color := FShadowOutline;
      Pen.Mode := pmCopy;
      Pen.Style := psSolid;
      Brush.Style := bsSolid;
      Brush.Color := FShadowColor;
    end;

    ShadowRect := ImageRect;
    AdjustBtnRect(ShadowRect, FDepth);
    if Down then
      AdjustBtnRect(ShadowRect, -1);

    DrawShape(Canvas, ShapeStyles[FStyle], ShadowRect.Left, ShadowRect.Top,
        ShadowRect.Right - ShadowRect.Left, ShadowRect.Bottom - ShadowRect.Top);

    if Down then AdjustBtnRect(ImageRect, 2);

    Canvas.Brush.Assign(FBrush);
    Canvas.Pen.Assign(FPen);
    Canvas.Font.Assign(Self.Font);
    if not Enabled then Canvas.Font.Color := clInActiveCaption;

    DrawShape(Canvas, ShapeStyles[FStyle], ImageRect.Left, ImageRect.Top,
      ImageRect.Right - ImageRect.Left, ImageRect.Bottom - ImageRect.Top);

    InflateRect(ImageRect, -Pen.Width, -Pen.Width);
    Canvas.Brush.Style := bsClear;
    DrawText(Canvas.Handle, PChar(Caption), -1, ImageRect,
      DT_SINGLELINE + VrTextAlign[TextAlign]);

    CurrentRect := ImageRect;
  end;
end;

procedure TVrShadowButton.Paint;
begin
  ClearBitmapCanvas;
  DrawButton;
  inherited Paint;
end;

procedure TVrShadowButton.CMTextChanged(var Message: TMessage);
begin
  inherited;
  UpdateControlCanvas;
end;

procedure TVrShadowButton.CMFontChanged(var Message: TMessage);
begin
  inherited;
  BitmapCanvas.Font.Assign(Self.Font);
  UpdateControlCanvas;
end;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区二区三区不卡国产欧美| 欧美一级二级三级蜜桃| 99精品一区二区三区| 亚洲伦理在线精品| 久久久久久久综合日本| 日韩午夜三级在线| 欧美精品在欧美一区二区少妇 | 国产精品美日韩| 精品久久久久久久久久久久包黑料 | 偷窥少妇高潮呻吟av久久免费| 国产精品欧美极品| 国产午夜精品一区二区三区嫩草 | 国产亲近乱来精品视频| 精品国精品自拍自在线| 欧美一区二区三区色| 欧美体内she精高潮| 日本道精品一区二区三区| 成人免费毛片app| 国产成人免费视频网站 | 久久久久久一二三区| 精品国产凹凸成av人网站| 亚洲国产精品av| 久久伊人蜜桃av一区二区| 精品噜噜噜噜久久久久久久久试看| 欧美电影在哪看比较好| 日韩午夜av电影| 国产色91在线| 久久久久久久av麻豆果冻| 中文字幕精品—区二区四季| 国产精品国产三级国产a | 91蝌蚪porny九色| 在线免费观看一区| 91精品国产麻豆| 久久久综合网站| 亚洲一区在线电影| 国产一区二区视频在线| av亚洲精华国产精华精| 在线观看国产一区二区| 欧美sm极限捆绑bd| 亚洲三级免费电影| 老汉av免费一区二区三区| 不卡一区在线观看| 日韩视频一区二区| 亚洲欧洲日韩一区二区三区| 天天色 色综合| 99re热这里只有精品视频| 6080午夜不卡| 亚洲三级理论片| 国产成a人亚洲精| 欧美一区二区三区四区高清| 亚洲手机成人高清视频| 国产曰批免费观看久久久| 在线看国产一区二区| 亚洲国产精品高清| 欧美aa在线视频| 欧美体内she精视频| 日韩理论片一区二区| 国产91丝袜在线观看| 亚洲天堂免费在线观看视频| 免费在线观看成人| 欧美性猛交xxxx黑人交| 国产精品毛片大码女人| 日本美女视频一区二区| 欧美精品自拍偷拍动漫精品| 亚洲婷婷在线视频| 一本色道久久综合精品竹菊| 中文字幕不卡在线播放| 国产伦精品一区二区三区在线观看| 欧美一级精品在线| 精彩视频一区二区三区| 日韩久久精品一区| 精品影院一区二区久久久| 精品国产乱码久久久久久免费| 伦理电影国产精品| 精品久久久久香蕉网| 国产麻豆精品在线| 国产日韩欧美高清| 成人aa视频在线观看| 亚洲欧美日韩中文播放| 欧美日韩一二三| 极品尤物av久久免费看| 中文字幕第一区二区| 91婷婷韩国欧美一区二区| 亚洲午夜私人影院| 精品人在线二区三区| 国产xxx精品视频大全| 亚洲三级免费电影| 欧美成va人片在线观看| 国产九九视频一区二区三区| 欧美激情一区不卡| 欧美日韩精品一区二区| 国产精品1区2区3区在线观看| 日韩高清中文字幕一区| 精品国产乱码久久久久久老虎| 成人黄色在线视频| 裸体在线国模精品偷拍| 国产精品白丝在线| 91精品国产91久久综合桃花| 国内成+人亚洲+欧美+综合在线| 亚洲人123区| 久久久久久99久久久精品网站| 91国产免费观看| eeuss鲁片一区二区三区| 亚洲成人精品一区| 亚洲精品视频在线看| 久久精品欧美一区二区三区不卡| 欧美日韩在线电影| 99亚偷拍自图区亚洲| 国内精品伊人久久久久av影院| 一区二区三区四区av| 亚洲三级小视频| 国产精品久久久久久久久搜平片| 精品久久久久香蕉网| 日韩一级完整毛片| 欧美美女bb生活片| 欧美日本一区二区三区四区| 色综合天天综合色综合av| 成av人片一区二区| 91污在线观看| 色婷婷精品久久二区二区蜜臀av| 国产成人午夜精品5599| 日本视频一区二区| 久久99热这里只有精品| 韩国精品一区二区| 国产精品77777| 成人黄色片在线观看| 成人免费毛片aaaaa**| 国产经典欧美精品| 99国产精品国产精品毛片| 日本韩国欧美在线| 欧美日韩aaaaaa| 中文字幕亚洲不卡| 亚洲狠狠丁香婷婷综合久久久| 亚洲图片自拍偷拍| 美腿丝袜亚洲色图| 国产乱妇无码大片在线观看| 国产.欧美.日韩| 欧美日韩免费观看一区二区三区| 在线观看日韩精品| 日韩欧美黄色影院| 国产精品午夜电影| 午夜精品一区二区三区免费视频 | 日韩电影免费在线看| 国产乱妇无码大片在线观看| 久久草av在线| 97久久超碰国产精品电影| 97精品久久久久中文字幕| 9i在线看片成人免费| 在线观看网站黄不卡| 欧美精品久久久久久久久老牛影院| 日韩精品一区二区三区视频在线观看 | 欧美成人a在线| 亚洲视频一区二区在线观看| 欧美aaa在线| 91官网在线观看| 国产精品国产精品国产专区不蜜| 婷婷开心激情综合| 91免费在线看| 日本一区二区三区在线不卡| 日日摸夜夜添夜夜添精品视频| 成人av在线播放网站| 精品99一区二区三区| 日韩电影在线观看网站| 91麻豆精品在线观看| 国产人成一区二区三区影院| 五月天一区二区| 欧美亚洲国产一区二区三区va| 日本一区二区成人| 精品一区二区三区免费毛片爱| 99免费精品在线| 中文字幕第一区综合| 精品在线免费视频| 欧美va天堂va视频va在线| 亚洲成国产人片在线观看| 一本大道av一区二区在线播放| 国产精品久久久久久妇女6080 | 久久精品国产99久久6| 欧美日韩欧美一区二区| 亚洲综合在线免费观看| 91福利视频网站| 婷婷成人激情在线网| 欧美一区二区高清| 国产精品一区免费在线观看| 精品国产乱码久久久久久影片| 九九九精品视频| 久久综合久久99| 一本色道亚洲精品aⅴ| 一区二区三区精品在线观看| 欧美另类久久久品| 国内成+人亚洲+欧美+综合在线| 久久久久久久久伊人| 成人视屏免费看| 天堂影院一区二区| 久久综合色之久久综合| 国产91精品入口| 亚洲国产成人高清精品| 欧美zozozo| 欧美性生活大片视频| 国产黄色91视频| 日本中文字幕一区|