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

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

?? toolctrlseh.pas

?? EHlib CN For Delphi2009
?? PAS
?? 第 1 頁 / 共 5 頁
字號:

function KillMouseUp(Control: TControl): Boolean; overload;
function KillMouseUp(Control: TControl; Area: TRect): Boolean; overload;

implementation

uses DBConsts, Math,
  {$IFDEF EH_LIB_6} VDBConsts, Types, {$ENDIF}
  {$IFDEF EH_LIB_7} Themes, UxTheme, {$ENDIF}
  MultiMon;

type
  TWinControlCracker = class(TWinControl) end;
  TControlCracker = class(TControl) end;

{$IFNDEF EH_LIB_5}

function Supports(const Instance: IUnknown; const IID: TGUID; out Intf): Boolean; overload;
begin
  Result := (Instance <> nil) and (Instance.QueryInterface(IID, Intf) = 0);
end;

function Supports(const Instance: TObject; const IID: TGUID; out Intf): Boolean; overload;
var
  LUnknown: IUnknown;
begin
  Result := (Instance <> nil) and
    ((Instance.GetInterface(IUnknown, LUnknown) and Supports(LUnknown, IID, Intf)) or
    Instance.GetInterface(IID, Intf));
end;

{$ENDIF}

function IsDoubleClickMessage(OldPos, NewPos: TPoint; Interval: Longint): Boolean;
begin
  Result := (Interval <= Longint(GetDoubleClickTime)) and
            (Abs(OldPos.X - NewPos.X) <= GetSystemMetrics(SM_CXDOUBLECLK)) and
            (Abs(OldPos.Y - NewPos.Y) <= GetSystemMetrics(SM_CYDOUBLECLK));
end;

procedure GetCheckSize;
begin
  with TBitmap.Create do
    try
      Handle := LoadBitmapEh(0, OBM_CHECKBOXES);
      DefaultCheckBoxWidth := Width div 4;
      DefaultCheckBoxHeight := Height div 3;
    finally
      Free;
    end;
end;

function AdjustCheckBoxRect(ClientRect: TRect;  Alignment: TAlignment; Layout: TTextLayout): TRect;
var
  CheckWidth, CheckHeight: Integer;
begin
  if (ClientRect.Right - ClientRect.Left) > DefaultCheckBoxWidth
    then CheckWidth := DefaultCheckBoxWidth
    else CheckWidth := ClientRect.Right - ClientRect.Left;

  if (ClientRect.Bottom - ClientRect.Top) > DefaultCheckBoxHeight
    then CheckHeight := DefaultCheckBoxHeight
    else CheckHeight := ClientRect.Bottom - ClientRect.Top;


  Result := ClientRect;

  if (ClientRect.Right - ClientRect.Left) > DefaultCheckBoxWidth then
    case Alignment of
      taRightJustify: Result.Left := Result.Right - CheckWidth;
      taCenter: Result.Left := Result.Left + (ClientRect.Right - ClientRect.Left) shr 1 - CheckWidth shr 1;
    end;
  Result.Right := Result.Left + CheckWidth;

  if (ClientRect.Bottom - ClientRect.Top) > DefaultCheckBoxHeight then
    case Layout of
      tlBottom: Result.Top := Result.Bottom - CheckWidth;
      tlCenter: Result.Top := Result.Top + (ClientRect.Bottom - ClientRect.Top) shr 1 - CheckHeight shr 1;
    end;
  Result.Bottom := Result.Top + CheckHeight;
end;

procedure DrawCheck(DC: HDC; R: TRect; AState: TCheckBoxState; AEnabled, AFlat, ADown, AActive: Boolean);
var
  DrawState, oldRgn: Integer;
  DrawRect: TRect;
//  OldBrushColor: TColor;
//  OldBrushStyle: TBrushStyle;
//  OldPenColor: TColor;
  Rgn, SaveRgn: HRgn;
{$IFDEF EH_LIB_7}
  ElementDetails: TThemedElementDetails;
{$ENDIF}
//  Brush,SaveBrush: HBRUSH;
begin
  SaveRgn := 0;
  oldRgn := 0;
  DrawRect := R;
  with DrawRect do
    if (Right - Left) > (Bottom - Top) then
    begin
      Left := Left + ((Right - Left) - (Bottom - Top)) div 2;
      Right := Left + (Bottom - Top);
    end else if (Right - Left) < (Bottom - Top) then
    begin
      Top := Top + ((Bottom - Top) - (Right - Left)) div 2;
      Bottom := Top + (Right - Left);
    end;
  case AState of
    cbChecked:
      DrawState := DFCS_BUTTONCHECK or DFCS_CHECKED;
    cbUnchecked:
      DrawState := DFCS_BUTTONCHECK;
  else // cbGrayed
    DrawState := DFCS_BUTTON3STATE or DFCS_CHECKED;
  end;
  if not AEnabled then
    DrawState := DrawState or DFCS_INACTIVE;
  if ADown then
    DrawState := DrawState or DFCS_PUSHED;
//  with Canvas do
//  begin
  if AFlat then
  begin
      { Remember current clipping region }
    SaveRgn := CreateRectRgn(0, 0, 0, 0);
    oldRgn := GetClipRgn(DC, SaveRgn);
      { Clip 3d-style checkbox to prevent flicker }
    with DrawRect do
      Rgn := CreateRectRgn(Left + 1, Top + 1, Right - 1, Bottom - 1);
    SelectClipRgn(DC, Rgn);
    DeleteObject(Rgn);
  end;
  if AFlat then InflateRect(DrawRect, 1, 1);

{$IFDEF EH_LIB_7}
  if ThemeServices.ThemesEnabled then
  begin
    case AState of
      cbChecked:
        if AEnabled then
          ElementDetails := ThemeServices.GetElementDetails(tbCheckBoxCheckedNormal)
        else
          ElementDetails := ThemeServices.GetElementDetails(tbCheckBoxCheckedDisabled);
      cbUnchecked:
        if AEnabled then
          ElementDetails := ThemeServices.GetElementDetails(tbCheckBoxUncheckedNormal)
        else
          ElementDetails := ThemeServices.GetElementDetails(tbCheckBoxUncheckedDisabled)
      else // cbGrayed
        if AEnabled then
          ElementDetails := ThemeServices.GetElementDetails(tbCheckBoxMixedNormal)
        else
          ElementDetails := ThemeServices.GetElementDetails(tbCheckBoxMixedDisabled);
    end;
    ThemeServices.DrawElement(DC, ElementDetails, R);
  end
  else
{$ENDIF}
    DrawFrameControl(DC, DrawRect, DFC_BUTTON, DrawState);

  if AFlat then
  begin
      //SelectClipRgn(Handle, SaveRgn);
    if oldRgn = 0 then
      SelectClipRgn(DC, 0)
    else
      SelectClipRgn(DC, SaveRgn);
    DeleteObject(SaveRgn);
      { Draw flat rectangle in-place of clipped 3d checkbox above }
    InflateRect(DrawRect, -1, -1);
    if AActive
      then FrameRect(DC, DrawRect, GetSysColorBrush(COLOR_BTNFACE))
      else FrameRect(DC, DrawRect, GetSysColorBrush(COLOR_BTNSHADOW));

    { Caller drow in flat mode
    InflateRect(DrawRect, 1, 1);
    if AActive
      then DrawEdge(DC, DrawRect, BDR_SUNKENOUTER, BF_RECT)
      else FrameRect(DC, DrawRect, GetCurrentObject(DC, OBJ_BRUSH));}
  end;
//  end;
end;

const
  DownFlags: array[Boolean] of Integer = (0, DFCS_PUSHED {? or DFCS_FLAT});
  FlatFlags: array[Boolean] of Integer = (0, DFCS_FLAT);
  EnabledFlags: array[Boolean] of Integer = (DFCS_INACTIVE, 0);
  IsDownFlags: array[Boolean] of Integer = (DFCS_SCROLLUP, DFCS_SCROLLDOWN);
  PressedFlags: array[Boolean] of Integer = (EDGE_RAISED, EDGE_SUNKEN);

procedure DrawEllipsisButton(DC: HDC; ARect: TRect; Enabled, Active, Flat, Pressed: Boolean);
var
  InterP, PWid, W, H: Integer;
  ElRect: TRect;
  Brush, SaveBrush: HBRUSH;
{$IFDEF EH_LIB_7}
  Button: TThemedButton;
  ToolButton: TThemedToolBar;
  Details: TThemedElementDetails;
{$ENDIF}
begin
  ElRect := ARect;

{$IFDEF EH_LIB_7}
  if ThemeServices.ThemesEnabled then
  begin
    if not Enabled then
      Button := tbPushButtonDisabled
    else
      if Pressed then
        Button := tbPushButtonPressed
      else
        if Active
          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;

    if ToolButton = ttbToolbarDontCare then
    begin
      Details := ThemeServices.GetElementDetails(Button);
      ThemeServices.DrawElement(DC, Details, ARect);

//      ARect := ThemeServices.ContentRect(DC, Details, ARect);
      InflateRect(ElRect, -2, -2);
    end else
    begin
      Details := ThemeServices.GetElementDetails(ToolButton);
      ThemeServices.DrawElement(DC, Details, ARect);
      InflateRect(ElRect, -1, -1)
//      ARect := ThemeServices.ContentRect(DC, Details, ARect);
    end;
  end else
{$ENDIF}
  begin
    Brush := GetSysColorBrush(COLOR_BTNFACE);
    if Flat then
    begin
      Windows.FillRect(DC, ElRect, Brush);
      InflateRect(ElRect, -1, -1)
    end else
    begin
      DrawEdge(DC, ElRect, PressedFlags[Pressed], BF_RECT or BF_MIDDLE);
      InflateRect(ElRect, -2, -2);
      //Windows.FillRect(DC, ElRect, Brush);
    end;
  end;

  InterP := 2;
  PWid := 2;
  W := ElRect.Right - ElRect.Left; //+ Ord(not Active and Flat);
  if W < 12 then InterP := 1;
  if W < 8 then PWid := 1;
  W := ElRect.Left + W div 2 - PWid div 2 + Ord(Pressed); //- Ord(not Active and Flat);
  H := ElRect.Top + (ElRect.Bottom - ElRect.Top) div 2 - PWid div 2 + Ord(Pressed);

  if not Enabled then
  begin
    Inc(W); Inc(H);
    Brush := GetSysColorBrush(COLOR_BTNHILIGHT);
    SaveBrush := SelectObject(DC, Brush);
    PatBlt(DC, W, H, PWid, PWid, PATCOPY);
    PatBlt(DC, W - InterP - PWid, H, PWid, PWid, PATCOPY);
    PatBlt(DC, W + InterP + PWid, H, PWid, PWid, PATCOPY);
    Dec(W); Dec(H);
    SelectObject(DC, SaveBrush);
    Brush := GetSysColorBrush(COLOR_BTNSHADOW);
  end else
    Brush := GetSysColorBrush(COLOR_BTNTEXT);

  SaveBrush := SelectObject(DC, Brush);
  PatBlt(DC, W, H, PWid, PWid, PATCOPY);
  PatBlt(DC, W - InterP - PWid, H, PWid, PWid, PATCOPY);
  PatBlt(DC, W + InterP + PWid, H, PWid, PWid, PATCOPY);
  SelectObject(DC, SaveBrush);
end;

procedure DrawPlusMinusButton(DC: HDC; ARect: TRect; Enabled, Active, Flat, Pressed, Plus: Boolean);
var PWid, PHet, W, H, PlusInd, MinWH: Integer;
  ElRect: TRect;
  Brush, SaveBrush: HBRUSH;
{$IFDEF EH_LIB_7}
  Button: TThemedButton;
  ToolButton: TThemedToolBar;
  Details: TThemedElementDetails;
{$ENDIF}
begin
  ElRect := ARect;

{$IFDEF EH_LIB_7}
  if ThemeServices.ThemesEnabled then
  begin
    if not Enabled then
      Button := tbPushButtonDisabled
    else
      if Pressed then
        Button := tbPushButtonPressed
      else
        if Active
          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;

    if ToolButton = ttbToolbarDontCare then
    begin
      Details := ThemeServices.GetElementDetails(Button);
      ThemeServices.DrawElement(DC, Details, ARect);
//      ARect := ThemeServices.ContentRect(DC, Details, ARect);
      InflateRect(ElRect, -2, -2);
    end else
    begin
      Details := ThemeServices.GetElementDetails(ToolButton);
      ThemeServices.DrawElement(DC, Details, ARect);
      InflateRect(ElRect, -1, -1)
//      ARect := ThemeServices.ContentRect(DC, Details, ARect);
    end;
  end else
{$ENDIF}
  begin
    Brush := GetSysColorBrush(COLOR_BTNFACE);
    if Flat then
    begin
      Windows.FillRect(DC, ElRect, Brush);
      InflateRect(ElRect, -1, -1)
    end else
    begin
      DrawEdge(DC, ElRect, PressedFlags[Pressed], BF_RECT or BF_MIDDLE);
      InflateRect(ElRect, -2, -2);
      Windows.FillRect(DC, ElRect, Brush);
    end;
  end;

  MinWH := ElRect.Right - ElRect.Left; //+ Ord(not Active and Flat);
  if ElRect.Bottom - ElRect.Top < MinWH then
    MinWH := ElRect.Bottom - ElRect.Top;
  PWid := MinWH * 4 div 7;
  if PWid = 0 then PWid := 1;
  PHet := PWid div 3;
  if PHet = 0 then PHet := 1;
  if Flat then Dec(PWid);
  if PWid mod 2 <> MinWH mod 2 then Inc(PWid);
  if Plus and (PWid mod 2 <> PHet mod 2) then
    if (MinWH < 12) then Inc(PWid) else Dec(PWid);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区三区三区| 国产色综合一区| 亚洲精品中文字幕乱码三区| 国产精品888| 国产精品美女久久久久aⅴ国产馆| 国产91综合网| 1000精品久久久久久久久| 99久久99久久久精品齐齐| 亚洲欧美日韩中文字幕一区二区三区| 91丝袜国产在线播放| 亚洲男人的天堂网| 欧美日韩综合一区| 日韩av网站在线观看| 久久久美女毛片| hitomi一区二区三区精品| 一区二区欧美在线观看| 这里只有精品免费| 国产成人日日夜夜| 亚洲精品乱码久久久久久| 4438x亚洲最大成人网| 精品一区二区三区蜜桃| 国产精品入口麻豆九色| 欧美视频精品在线观看| 经典三级视频一区| 亚洲欧美一区二区三区国产精品| 欧美肥妇毛茸茸| 国产成人在线观看| 亚洲亚洲人成综合网络| 久久亚洲私人国产精品va媚药| av午夜一区麻豆| 精品一区二区免费在线观看| 亚洲国产成人私人影院tom| 91激情五月电影| 国内精品久久久久影院薰衣草 | 国产精品日韩精品欧美在线| 欧洲生活片亚洲生活在线观看| 日本亚洲天堂网| 综合电影一区二区三区| 欧美成人在线直播| 欧美午夜精品免费| 成人深夜在线观看| 蜜臀av国产精品久久久久| 日韩美女视频一区二区| 日韩精品一区二区三区在线观看 | 亚洲不卡一区二区三区| 国产午夜亚洲精品羞羞网站| 欧美日韩电影在线播放| 成人av免费在线观看| 久久99最新地址| 亚洲午夜精品一区二区三区他趣| 国产午夜精品美女毛片视频| 欧美一区二区三区小说| 色噜噜偷拍精品综合在线| 国产精品一区二区果冻传媒| 日韩黄色免费电影| 一区二区三区在线视频观看58| 久久色视频免费观看| 91精品国模一区二区三区| 在线精品视频小说1| 94-欧美-setu| 成人av在线资源网站| 激情六月婷婷久久| 老司机午夜精品| 亚洲成av人片在www色猫咪| 伊人夜夜躁av伊人久久| 最新中文字幕一区二区三区| 国产欧美视频一区二区| 欧美精品一区二区蜜臀亚洲| 欧美成人a∨高清免费观看| 欧美一区二区成人| 69精品人人人人| 欧美精三区欧美精三区 | 欧美老女人第四色| 欧美午夜在线观看| 欧美自拍丝袜亚洲| 欧美午夜影院一区| 欧美日韩卡一卡二| 欧美日韩一本到| 欧美日韩国产bt| 91精品国产综合久久久久久漫画| 在线播放中文一区| 欧美老年两性高潮| 欧美精品乱码久久久久久| 欧美人妇做爰xxxⅹ性高电影| 欧美三级午夜理伦三级中视频| 欧美天堂亚洲电影院在线播放| 色88888久久久久久影院野外| 色综合欧美在线| 欧美影院一区二区| 3d动漫精品啪啪1区2区免费| 欧美成人官网二区| 久久日韩精品一区二区五区| 国产亚洲成年网址在线观看| 国产精品无遮挡| 一区二区三区av电影| 亚洲午夜激情av| 蜜臀av性久久久久蜜臀av麻豆| 蜜桃久久av一区| 国产成人亚洲综合a∨婷婷| 成人av电影在线| 欧美日韩中字一区| 欧美电影免费观看完整版| 亚洲国产成人在线| 亚洲一级二级三级在线免费观看| 日韩电影免费一区| 国产精品资源在线看| 色综合久久久久综合99| 91精品福利在线一区二区三区 | 粉嫩在线一区二区三区视频| 色婷婷精品久久二区二区蜜臂av| 欧美日韩国产乱码电影| 久久综合久久综合亚洲| 亚洲日本青草视频在线怡红院| 亚洲综合在线观看视频| 麻豆国产欧美一区二区三区| 成人午夜免费视频| 欧美日韩亚洲丝袜制服| 久久久久久久综合日本| 亚洲最新视频在线观看| 国产麻豆精品视频| 欧美视频完全免费看| 欧美激情一区二区在线| 午夜精品一区二区三区三上悠亚| 国模少妇一区二区三区| 日本韩国欧美国产| 中文字幕在线不卡一区二区三区| 亚洲一区二区三区三| 国内成人精品2018免费看| 成人一区二区视频| 欧美一区二区三区啪啪| 中文字幕日本乱码精品影院| 日av在线不卡| 91国产成人在线| 国产网站一区二区三区| 日本一不卡视频| 在线观看一区二区视频| 国产免费观看久久| 裸体一区二区三区| 欧美伊人久久久久久久久影院 | 欧美在线免费观看亚洲| 亚洲国产精品黑人久久久 | 激情深爱一区二区| 在线成人免费视频| 亚洲美女免费视频| 成人黄色电影在线| 久久久另类综合| 美女视频黄免费的久久 | 欧美zozozo| 天堂久久久久va久久久久| 色哟哟一区二区三区| 中文字幕成人在线观看| 激情成人综合网| 日韩精品一区二区三区在线观看| 亚洲国产综合视频在线观看| 91视频精品在这里| 国产精品久久久久久福利一牛影视 | www欧美成人18+| 欧美aⅴ一区二区三区视频| 欧洲精品在线观看| 亚洲私人黄色宅男| av中文字幕不卡| 国产精品色哟哟网站| 成人国产在线观看| 国产精品美女久久久久aⅴ| 国产寡妇亲子伦一区二区| 久久综合资源网| 久草在线在线精品观看| 日韩亚洲欧美在线| 久久精品国产亚洲a| 日韩午夜av电影| 精品一区二区三区不卡| 久久亚洲二区三区| 国产丶欧美丶日本不卡视频| 国产午夜精品福利| yourporn久久国产精品| 国产精品久久久久一区二区三区| 丁香婷婷综合激情五月色| 国产精品青草综合久久久久99| 国产999精品久久| 亚洲成人中文在线| 91精品国产手机| 毛片不卡一区二区| 26uuu国产电影一区二区| 国产成人综合视频| 亚洲色图制服丝袜| 欧美色综合影院| 奇米777欧美一区二区| 精品成人私密视频| 成人av手机在线观看| 亚洲一区二区三区四区在线| 欧美日韩成人一区二区| 日韩二区三区四区| 久久亚洲二区三区| 色综合久久综合中文综合网| 日韩专区一卡二卡| 2020国产精品自拍| 91小视频免费观看| 青青草视频一区| 国产日韩欧美在线一区| 日本韩国欧美一区二区三区|