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

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

?? tntbuttons.pas

?? TNT Components Source
?? PAS
?? 第 1 頁 / 共 3 頁
字號:
      Tnt_DrawTextW(DC, PWideChar(Caption), Length(Caption), TextBounds, DT_WORDBREAK
                                                                      or DT_CALCRECT or BiDiFlags)
    else
    {$ENDIF}
      Tnt_DrawTextW(DC, PWideChar(Caption), Length(Caption), TextBounds, DT_CALCRECT or BiDiFlags);

    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
    if Spacing = -1 then
    begin
      TotalSize := Point(ClientSize.X - (Margin + GlyphSize.X), ClientSize.Y - (Margin + GlyphSize.Y));
      if Layout in [blGlyphLeft, blGlyphRight] then
        Spacing := (TotalSize.X - TextSize.X) div 2
      else
        Spacing := (TotalSize.Y - TextSize.Y) div 2;
    end;
  end;

  case Layout of
    blGlyphLeft:
      begin
        GlyphPos.X := Margin;
        TextPos.X := GlyphPos.X + GlyphSize.X + Spacing;
      end;
    blGlyphRight:
      begin
        GlyphPos.X := ClientSize.X - Margin - GlyphSize.X;
        TextPos.X := GlyphPos.X - Spacing - TextSize.X;
      end;
    blGlyphTop:
      begin
        GlyphPos.Y := Margin;
        TextPos.Y := GlyphPos.Y + GlyphSize.Y + Spacing;
      end;
    blGlyphBottom:
      begin
        GlyphPos.Y := ClientSize.Y - Margin - GlyphSize.Y;
        TextPos.Y := GlyphPos.Y - Spacing - TextSize.Y;
      end;
  end;

  // Fixup the Result variables.
  with GlyphPos do
  begin
    Inc(X, Client.Left + Offset.X);
    Inc(Y, Client.Top + Offset.Y);
  end;

  {$IFDEF THEME_7_UP}
  { Themed text is not shifted, but gets a different color. }
  if ThemeServices.ThemesEnabled then
    OffsetRect(TextBounds, TextPos.X + Client.Left, TextPos.Y + Client.Top)
  else
  {$ENDIF}
    OffsetRect(TextBounds, TextPos.X + Client.Left + Offset.X, TextPos.Y + Client.Top + Offset.Y);
end;

function TButtonGlyph_Draw(Control: TControl; Canvas: TCanvas; const Client: TRect;
  const Offset: TPoint; const Caption: WideString; Layout: TButtonLayout; Margin: Integer;
    Spacing: Integer; State: TButtonState; Transparent: Boolean;
      BiDiFlags: Longint {$IFDEF COMPILER_7_UP}; WordWrap: Boolean {$ENDIF}): TRect;
var
  GlyphPos: TPoint;
begin
  TButtonGlyph_CalcButtonLayout(Control, Canvas.Handle, Client, Offset, Caption, Layout, Margin,
    Spacing, GlyphPos, Result, BiDiFlags {$IFDEF COMPILER_7_UP}, WordWrap {$ENDIF});
  TButtonGlyph_DrawButtonGlyph(Control, Canvas, GlyphPos, State, Transparent);
  TButtonGlyph_DrawButtonText(Canvas, Caption, Result, State,
    BiDiFlags {$IFDEF COMPILER_7_UP}, WordWrap {$ENDIF});
end;

{ TTntSpeedButton }

procedure TTntSpeedButton.DefineProperties(Filer: TFiler);
begin
  inherited;
  TntPersistent_AfterInherited_DefineProperties(Filer, Self);
end;

function TTntSpeedButton.IsCaptionStored: Boolean;
begin
  Result := TntControl_IsCaptionStored(Self)
end;

function TTntSpeedButton.GetCaption: TWideCaption;
begin
  Result := TntControl_GetText(Self);
end;

procedure TTntSpeedButton.SetCaption(const Value: TWideCaption);
begin
  TntControl_SetText(Self, Value);
end;

function TTntSpeedButton.IsHintStored: Boolean;
begin
  Result := TntControl_IsHintStored(Self)
end;

function TTntSpeedButton.GetHint: WideString;
begin
  Result := TntControl_GetHint(Self)
end;

procedure TTntSpeedButton.SetHint(const Value: WideString);
begin
  TntControl_SetHint(Self, Value);
end;

procedure TTntSpeedButton.CMHintShow(var Message: TMessage);
begin
  ProcessCMHintShowMsg(Message);
  inherited;
end;

procedure TTntSpeedButton.CMDialogChar(var Message: TCMDialogChar);
begin
  with Message do
    if IsWideCharAccel(CharCode, Caption) and Enabled and Visible and
      (Parent <> nil) and Parent.Showing then
    begin
      Click;
      Result := 1;
    end else
      inherited;
end;

function TTntSpeedButton.GetButtonGlyph: Pointer;
begin
  Result := THackSpeedButton(Self).FGlyph;
end;

procedure TTntSpeedButton.UpdateInternalGlyphList;
begin
  FPaintInherited := True;
  try
    Repaint;
  finally
    FPaintInherited := False;
  end;
  Invalidate;
  raise EAbortPaint.Create('');
end;

procedure TTntSpeedButton.Paint;
begin
  if FPaintInherited then
    inherited
  else
    PaintButton;
end;

procedure TTntSpeedButton.PaintButton;
const
  DownStyles: array[Boolean] of Integer = (BDR_RAISEDINNER, BDR_SUNKENOUTER);
  FillStyles: array[Boolean] of Integer = (BF_MIDDLE, 0);
var
  PaintRect: TRect;
  DrawFlags: Integer;
  Offset: TPoint;
  {$IFDEF THEME_7_UP}
  Button: TThemedButton;
  ToolButton: TThemedToolBar;
  Details: TThemedElementDetails;
  {$ENDIF}
begin
  try
    if not Enabled then
    begin
      FState := bsDisabled;
      THackSpeedButton(Self).FDragging := False;
    end
    else if FState = bsDisabled then
      if Down and (GroupIndex <> 0) then
        FState := bsExclusive
      else
        FState := bsUp;
    Canvas.Font := Self.Font;

    {$IFDEF THEME_7_UP}
    if ThemeServices.ThemesEnabled then
    begin
      {$IFDEF COMPILER_7_UP}
      PerformEraseBackground(Self, Canvas.Handle);
      {$ENDIF}
      SelectObject(Canvas.Handle, Canvas.Font.Handle); { For some reason, PerformEraseBackground sometimes messes the font up. }

      if not Enabled then
        Button := tbPushButtonDisabled
      else
        if FState in [bsDown, bsExclusive] then
          Button := tbPushButtonPressed
        else
          if MouseInControl then
            Button := tbPushButtonHot
          else
            Button := tbPushButtonNormal;

      ToolButton := ttbToolbarDontCare;
      if Flat then
      begin
        case Button of
          tbPushButtonDisabled:
            Toolbutton := ttbButtonDisabled;
          tbPushButtonPressed:
            Toolbutton := ttbButtonPressed;
          tbPushButtonHot:
            Toolbutton := ttbButtonHot;
          tbPushButtonNormal:
            Toolbutton := ttbButtonNormal;
        end;
      end;

      PaintRect := ClientRect;
      if ToolButton = ttbToolbarDontCare then
      begin
        Details := ThemeServices.GetElementDetails(Button);
        ThemeServices.DrawElement(Canvas.Handle, Details, PaintRect);
        PaintRect := ThemeServices.ContentRect(Canvas.Handle, Details, PaintRect);
      end
      else
      begin
        Details := ThemeServices.GetElementDetails(ToolButton);
        ThemeServices.DrawElement(Canvas.Handle, Details, PaintRect);
        PaintRect := ThemeServices.ContentRect(Canvas.Handle, Details, PaintRect);
      end;

      if Button = tbPushButtonPressed then
      begin
        // A pressed speed button has a white text. This applies however only to flat buttons.
        if ToolButton <> ttbToolbarDontCare then
          Canvas.Font.Color := clHighlightText;
        Offset := Point(1, 0);
      end
      else
        Offset := Point(0, 0);
      TButtonGlyph_Draw(Self, Canvas, PaintRect, Offset, Caption, Layout, Margin, Spacing, FState,
        Transparent, DrawTextBiDiModeFlags(0) {$IFDEF COMPILER_7_UP}, False {$ENDIF});
    end
    else
    {$ENDIF}
    begin
      PaintRect := Rect(0, 0, Width, Height);
      if not Flat then
      begin
        DrawFlags := DFCS_BUTTONPUSH or DFCS_ADJUSTRECT;
        if FState in [bsDown, bsExclusive] then
          DrawFlags := DrawFlags or DFCS_PUSHED;
        DrawFrameControl(Canvas.Handle, PaintRect, DFC_BUTTON, DrawFlags);
      end
      else
      begin
        if (FState in [bsDown, bsExclusive]) or
          (MouseInControl and (FState <> bsDisabled)) or
          (csDesigning in ComponentState) then
          DrawEdge(Canvas.Handle, PaintRect, DownStyles[FState in [bsDown, bsExclusive]],
            FillStyles[Transparent] or BF_RECT)
        else if not Transparent then
        begin
          Canvas.Brush.Color := Color;
          Canvas.FillRect(PaintRect);
        end;
        InflateRect(PaintRect, -1, -1);
      end;
      if FState in [bsDown, bsExclusive] then
      begin
        if (FState = bsExclusive) and (not Flat or not MouseInControl) then
        begin
          Canvas.Brush.Bitmap := AllocPatternBitmap(clBtnFace, clBtnHighlight);
          Canvas.FillRect(PaintRect);
        end;
        Offset.X := 1;
        Offset.Y := 1;
      end
      else
      begin
        Offset.X := 0;
        Offset.Y := 0;
      end;
      TButtonGlyph_Draw(Self, Canvas, PaintRect, Offset, Caption,
        Layout, Margin, Spacing, FState, Transparent,
          DrawTextBiDiModeFlags(0) {$IFDEF COMPILER_7_UP}, False {$ENDIF});

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产传媒日韩欧美成人| 国产午夜精品一区二区三区嫩草 | 欧美成人乱码一区二区三区| 亚洲欧美一区二区久久| 国产福利一区二区三区视频| 欧美精品v日韩精品v韩国精品v| 国产精品情趣视频| 国产在线国偷精品产拍免费yy| 欧美日韩高清不卡| 一区二区三区在线免费视频| 国产精品亚洲成人| 欧美成人a∨高清免费观看| 亚洲一区二区在线免费看| 成人黄色国产精品网站大全在线免费观看 | 亚洲成人在线网站| 色偷偷久久人人79超碰人人澡| 欧美激情艳妇裸体舞| 精品一区二区三区免费播放 | 国产999精品久久久久久 | 色综合中文字幕国产| 精品理论电影在线观看| 日韩va欧美va亚洲va久久| 欧美亚洲禁片免费| 亚洲精品免费在线播放| 成人黄色777网| 国产日韩精品一区二区浪潮av | 日韩av一级片| 4438x亚洲最大成人网| 亚洲综合自拍偷拍| 日本久久一区二区| 国产精品久久777777| 成人一级视频在线观看| 国产蜜臀97一区二区三区| 国产精品一区在线观看你懂的| 欧美精品一区二区在线播放| 麻豆传媒一区二区三区| 日韩欧美激情在线| 麻豆国产精品官网| 欧美精品一区二区三区蜜桃视频| 日本三级亚洲精品| 日韩女优毛片在线| 久久99精品久久久久久动态图| 日韩一区二区在线观看| 麻豆一区二区三| 日韩精品最新网址| 国产在线一区二区综合免费视频| 精品国产区一区| 国产精品亚洲第一区在线暖暖韩国 | 国产69精品一区二区亚洲孕妇| 久久久99免费| 国产 欧美在线| 亚洲欧洲成人自拍| 欧美中文字幕一区| 亚洲成av人**亚洲成av**| 777色狠狠一区二区三区| 日本欧美一区二区在线观看| 精品久久久久一区| 国产成人自拍高清视频在线免费播放| 国产欧美中文在线| 色综合婷婷久久| 亚洲高清不卡在线观看| 日韩一区二区电影| 国产一区二区三区不卡在线观看| 国产亚洲精久久久久久| av在线综合网| 亚洲成国产人片在线观看| 3751色影院一区二区三区| 激情综合色综合久久| 亚洲国产精品二十页| 日本高清不卡视频| 日本成人在线电影网| 久久嫩草精品久久久久| youjizz久久| 亚洲成人激情av| 久久综合久久综合久久| av一区二区三区| 亚洲www啪成人一区二区麻豆| 精品久久国产97色综合| 成人动漫一区二区| 亚洲成人先锋电影| 久久久亚洲精品一区二区三区| 不卡免费追剧大全电视剧网站| 亚洲自拍偷拍图区| 久久综合久久综合九色| 91丨porny丨首页| 日本怡春院一区二区| 国产女同性恋一区二区| 91久久精品一区二区| 麻豆精品在线看| 国产精品福利一区| 欧美一区二区视频在线观看| 成人午夜在线视频| 日本最新不卡在线| 国产精品夫妻自拍| 日韩精品在线网站| 97精品国产露脸对白| 另类小说一区二区三区| 亚洲欧美日韩在线| 欧美成人性福生活免费看| 色综合天天综合网国产成人综合天| 日韩—二三区免费观看av| 中文字幕精品一区二区精品绿巨人 | 国产中文一区二区三区| 一区二区三区精品视频在线| wwwwxxxxx欧美| 欧美日韩一本到| 国产91精品久久久久久久网曝门| 丝袜美腿高跟呻吟高潮一区| 中文字幕一区在线观看| 欧美大肚乱孕交hd孕妇| 色久综合一二码| 国产精品一级片在线观看| 日韩国产精品久久| 成人免费在线播放视频| 精品国产一二三区| 欧美色欧美亚洲另类二区| 成人综合婷婷国产精品久久 | 狠狠v欧美v日韩v亚洲ⅴ| 亚洲成人免费视| 亚洲天堂成人在线观看| 久久毛片高清国产| 91精品视频网| 欧美日韩一区在线观看| 99国产一区二区三精品乱码| 国产激情一区二区三区| 免费高清在线一区| 亚洲国产aⅴ天堂久久| 亚洲婷婷国产精品电影人久久| 久久久久久久综合| 欧美一区二区三区的| 欧美又粗又大又爽| 91女厕偷拍女厕偷拍高清| 国产精品123| 狠狠久久亚洲欧美| 久久精品国产秦先生| 香蕉加勒比综合久久| 一区二区在线观看视频在线观看| 国产精品理论片在线观看| www欧美成人18+| 久久综合色一综合色88| 欧美成人官网二区| 欧美一级高清大全免费观看| 欧美人狂配大交3d怪物一区| 91黄色免费观看| 91免费在线看| 北条麻妃国产九九精品视频| 丁香亚洲综合激情啪啪综合| 国产一区二区三区久久悠悠色av| 九九在线精品视频| 久久99久久精品| 国内精品视频一区二区三区八戒| 奇米色777欧美一区二区| 日韩精品电影在线观看| 婷婷综合另类小说色区| 午夜a成v人精品| 日韩成人精品在线| 蜜臀av一区二区在线免费观看| 日本va欧美va精品| 蜜桃视频免费观看一区| 毛片av一区二区| 极品美女销魂一区二区三区| 韩国中文字幕2020精品| 国产乱妇无码大片在线观看| 国产成人小视频| 成人小视频在线观看| 99精品欧美一区二区蜜桃免费| 99精品1区2区| 欧美性大战xxxxx久久久| 欧美视频在线观看一区二区| 欧美午夜影院一区| 在线电影一区二区三区| 日韩一级二级三级精品视频| 精品日韩在线一区| 欧美国产一区视频在线观看| 亚洲视频免费看| 午夜日韩在线电影| 久久精品国产久精国产| 国产99久久精品| 91麻豆高清视频| 欧美日韩另类一区| 欧美一级二级在线观看| 国产日韩欧美一区二区三区综合| 国产精品色在线| 亚洲激情av在线| 日本成人在线不卡视频| 国产寡妇亲子伦一区二区| 91丨porny丨国产| 777a∨成人精品桃花网| 久久精品一区四区| 亚洲精品欧美在线| 蜜桃视频免费观看一区| 成人性色生活片| 欧美三级中文字幕在线观看| 精品国产91九色蝌蚪| 国产精品免费人成网站| 五月天网站亚洲| 国产一区91精品张津瑜| 91色婷婷久久久久合中文| 欧美一区二区精美| 亚洲欧洲精品一区二区三区不卡|