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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? bsutils.pas

?? 一套支持Delphi的VCL庫(kù)
?? PAS
?? 第 1 頁(yè) / 共 5 頁(yè)
字號(hào):
        end;
    end
  else
    if ADrawColorMarker
    then
      with Cnvs do
      begin
        if Caption <> ''
        then
          begin
            Pen.Color := AColorMarkerValue;
            MoveTo(TR.Left, TR.Bottom  - 1);
            LineTo(TR.Right, TR.Bottom  - 1);
            MoveTo(TR.Left, TR.Bottom );
            LineTo(TR.Right, TR.Bottom);
            MoveTo(TR.Left, TR.Bottom  + 1);
            LineTo(TR.Right, TR.Bottom  + 1);
          end
        else
          begin
            Brush.Color := AColorMarkerValue;
            Brush.Style := bsSolid;
            FillRect(Rect(R.Left + 4, R.Top + 4, R.Right - 2, R.Bottom - 4));
          end;
     end;
end;


procedure DrawGlyphAndText(Cnvs: TCanvas;
  R: TRect; Margin, Spacing: Integer; Layout: TbsButtonLayout;
  Caption: String; Glyph: TBitMap; NumGlyphs, GlyphNum: Integer; ADown: Boolean;
  ADrawColorMarker: Boolean; AColorMarkerValue: TColor);
var
  gw, gh: Integer;
  tw, th: Integer;
  TX, TY, GX, GY: Integer;
  TR: TRect;
begin
  if Glyph.Empty
  then
    begin
      gw := 0;
      gh := 0;
    end
  else
    begin
      gw := Glyph.Width div NumGlyphs;
      gh := Glyph.Height;
    end;
  with Cnvs do
  begin
    if Caption = ''
    then
      begin
        tw := 0;
        th := 0;
      end
    else
      begin
        TR := Rect(0, 0, RectWidth(R), RectHeight(R));
        if (Layout = blGlyphLeft) or (Layout = blGlyphRight)
        then
          begin
            Dec(TR.Right, gw);
          end
        else
        if (Layout = blGlyphTop) or (Layout = blGlyphBottom)
        then
          begin
            Dec(TR.Bottom, gh);
          end;
        DrawText(Handle, PChar(Caption), Length(Caption), TR,
                 DT_EXPANDTABS or DT_WORDBREAK or DT_CALCRECT);
        tw := RectWidth(TR);
        th := RectHeight(TR);
        Brush.Style := bsClear;
     end;
  end;

  CalcLCoord(Layout, R, gw, gh, tw, th, Spacing, Margin, TX, TY, GX, GY);

  if ADown
  then
    begin
      Inc(GX); Inc(GY);
      Inc(TX); Inc(TY);
    end;

  if Caption <> ''
  then
    begin
      TR := Rect(TX, TY, TX + tw, TY + th);
      Inc(TR.Right, 2);
      DrawText(Cnvs.Handle, PChar(Caption),
        Length(Caption), TR, DT_EXPANDTABS or DT_VCENTER or DT_CENTER or DT_WORDBREAK);
    end;
      
  if not Glyph.Empty then DrawGlyph(Cnvs, GX, GY, Glyph, NumGlyphs, GlyphNum);

  if not Glyph.Empty
  then
    begin
      if ADrawColorMarker
      then
        with Cnvs do
        begin
          Pen.Color := AColorMarkerValue;
          MoveTo(GX, GY + Glyph.Height - 2);
          LineTo(GX + Glyph.Width, GY + Glyph.Height - 2);
          MoveTo(GX, GY + Glyph.Height - 1);
          LineTo(GX + Glyph.Width, GY + Glyph.Height - 1);
          MoveTo(GX, GY + Glyph.Height);
          LineTo(GX + Glyph.Width, GY + Glyph.Height);
        end;
    end
  else
    if ADrawColorMarker
    then
      with Cnvs do
      begin
        if Caption <> ''
        then
          begin
            Pen.Color := AColorMarkerValue;
            MoveTo(TR.Left, TR.Bottom  - 1);
            LineTo(TR.Right, TR.Bottom  - 1);
            MoveTo(TR.Left, TR.Bottom);
            LineTo(TR.Right, TR.Bottom);
            MoveTo(TR.Left, TR.Bottom  + 1);
            LineTo(TR.Right, TR.Bottom  + 1);
          end
        else
          begin
            Brush.Color := AColorMarkerValue;
            Brush.Style := bsSolid;
            if ADown
            then
              FillRect(Rect(R.Left + 4, R.Top + 5, R.Right - 2, R.Bottom - 3))
            else
              FillRect(Rect(R.Left + 4, R.Top + 4, R.Right - 2, R.Bottom - 4));
          end;
     end;

end;


procedure GetParentImage(Control: TControl; Dest: TCanvas);
var
  I, Count, X, Y, SaveIndex: Integer;
  DC: HDC;
  R, SelfR, CtlR: TRect;
begin
  if (Control = nil) or (Control.Parent = nil) then Exit;
  Count := Control.Parent.ControlCount;
  DC := Dest.Handle;
  with Control.Parent do ControlState := ControlState + [csPaintCopy];
  try
    with Control do begin
      SelfR := Bounds(Left, Top, Width, Height);
      X := -Left; Y := -Top;
    end;
    SaveIndex := SaveDC(DC);
    try
      SetViewportOrgEx(DC, X, Y, nil);
      IntersectClipRect(DC, 0, 0, Control.Parent.ClientWidth,
        Control.Parent.ClientHeight);
       if (Control.Parent is TForm) and
          (TForm(Control.Parent).FormStyle = fsMDIForm)
       then
         begin
           SendMessage(TForm(Control.Parent).ClientHandle, WM_ERASEBKGND, DC, 0);
         end
      else
      if Control.Parent is TbsSkinTabControl
      then
        begin
          TbsSkinTabControl(Control.Parent).PaintBG(DC);
       end
      else
      with TParentControl(Control.Parent) do begin
        Perform(WM_ERASEBKGND, DC, 0);
        if not (Control.Parent is TForm) then PaintWindow(DC);
      end;
    finally
      RestoreDC(DC, SaveIndex);
    end;

    for I := 0 to Count - 1 do
    if Control.Parent.Controls[I] <> Control
    then
    begin
      if (Control.Parent.Controls[I] <> nil) and
         (Control.Parent.Controls[I] is TGraphicControl)
      then
      begin
        with TGraphicControl(Control.Parent.Controls[I]) do begin
          CtlR := Bounds(Left, Top, Width, Height);
          if Bool(IntersectRect(R, SelfR, CtlR)) and Visible then begin
            ControlState := ControlState + [csPaintCopy];
            SaveIndex := SaveDC(DC);
            try
              SaveIndex := SaveDC(DC);
              SetViewportOrgEx(DC, Left + X, Top + Y, nil);
              IntersectClipRect(DC, 0, 0, Width, Height);
              Perform(WM_PAINT, DC, 0);
            finally
              RestoreDC(DC, SaveIndex);
              ControlState := ControlState - [csPaintCopy];
            end;
          end;
        end;
      end
    end
    else
      Break;
  finally
    with Control.Parent do ControlState := ControlState - [csPaintCopy];
  end;
end;


procedure GetParentImageRect(Control: TControl; Rct: TRect; Dest: TCanvas);
var
  I, Count, X, Y, SaveIndex: Integer;
  DC: HDC;
  R, SelfR, CtlR: TRect;
begin
  if (Control = nil) or (Control.Parent = nil) then Exit;
  Count := Control.Parent.ControlCount;
  DC := Dest.Handle;
  with Control.Parent do ControlState := ControlState + [csPaintCopy];
  try
    with Control do begin
      SelfR := Bounds(Left, Top, Width, Height);
      X := -Left - Rct.Left; Y := -Top - Rct.Top;
    end;
    { Copy parent control image }
    SaveIndex := SaveDC(DC);
    try
      SetViewportOrgEx(DC, X, Y, nil);
      IntersectClipRect(DC, 0, 0, Control.Parent.ClientWidth,
        Control.Parent.ClientHeight);
      if (Control.Parent is TForm) and
         (TForm(Control.Parent).FormStyle = fsMDIForm)
       then
         begin
           SendMessage(TForm(Control.Parent).ClientHandle, WM_ERASEBKGND, DC, 0);
         end
      else
      if Control.Parent is TbsSkinTabControl
      then
        begin
          TbsSkinTabControl(Control.Parent).PaintBG(DC);
       end
      else
      with TParentControl(Control.Parent) do begin
        Perform(WM_ERASEBKGND, DC, 0);
        if not (Control.Parent is TForm) then PaintWindow(DC);
      end;
    finally
      RestoreDC(DC, SaveIndex);
    end;
    
    for I := 0 to Count - 1 do
    if Control.Parent.Controls[I] <> Control
    then
    begin
      if (Control.Parent.Controls[I] <> nil) and
         (Control.Parent.Controls[I] is TGraphicControl)
      then
      begin
        with TGraphicControl(Control.Parent.Controls[I]) do begin
          CtlR := Bounds(Left, Top, Width, Height);
          if Bool(IntersectRect(R, SelfR, CtlR)) and Visible then begin
            ControlState := ControlState + [csPaintCopy];
            SaveIndex := SaveDC(DC);
            try
              SaveIndex := SaveDC(DC);
              SetViewportOrgEx(DC, Left + X, Top + Y, nil);
              IntersectClipRect(DC, 0, 0, Width, Height);
              Perform(WM_PAINT, DC, 0);
            finally
              RestoreDC(DC, SaveIndex);
              ControlState := ControlState - [csPaintCopy];
            end;
          end;
        end;
      end
    end
    else
      Break;
  finally
    with Control.Parent do ControlState := ControlState - [csPaintCopy];
  end;
end;


function CalcTextWidthW(C: TCanvas; Str: WideString): Integer;
var
  R: TRect;
begin
  R := Rect(0, 0, 0, 0);
  BSDrawSkinText(C, Str, R, DT_CALCRECT);
  Result := RectWidth(R);
end;

function CalcTextHeightW(C: TCanvas; Str: WideString): Integer;
var
  R: TRect;
begin
  R := Rect(0, 0, 0, 0);
  BSDrawSkinText(C, Str, R, DT_CALCRECT);
  Result := RectHeight(R);
end;

procedure CorrectTextbyWidthW(C: TCanvas; var S: WideString; W: Integer);

function GetTextWidth(Str: WideString): Integer;
var
  R: TRect;
begin
  R := Rect(0, 0, 0, 0);
  BSDrawSkinText(C, Str, R, DT_CALCRECT);
  Result := RectWidth(R);
end;

var
  j: Integer;
begin
  j := Length(S);
  if GetTextWidth(S) > w
  then
   begin
     repeat
       Delete(S, j, 1);
       Dec(j);
     until (GetTextWidth(S + '...') <= w) or (S = '');
    S := S + '...';
  end;
end;

procedure CorrectTextbyWidth(C: TCanvas; var S: String; W: Integer);
var
  j: Integer;
begin
  j := Length(S);
  with C do
  begin
    if TextWidth(S) > w
    then
      begin
        repeat
          Delete(S, j, 1);
          Dec(j);
        until (TextWidth(S + '...') <= w) or (S = '');
        S := S + '...';
      end;
  end;
end;

function Max(A, B: Longint): Longint;
begin
  if A > B then Result := A
  else Result := B;
end;

function Min(A, B: Longint): Longint;
begin
  if A < B then Result := A
  else Result := B;
end;

function ReplaceStr(const S, Srch, Replace: string): string;
var
  I: Integer;
  Source: string;
begin
  Source := S;
  Result := '';
  repeat
    I := Pos(Srch, Source);
    if I > 0 then begin
      Result := Result + Copy(Source, 1, I - 1) + Replace;
      Source := Copy(Source, I + Length(Srch), MaxInt);
    end
    else Result := Result + Source;
  until I <= 0;
end;

function BSDrawSkinText(ACanvas: TCanvas; AText: WideString; var Bounds: TRect; Flag: cardinal): integer;
var
  AnsiText: string;
begin
  if BS_PlatformIsUnicode
  then
    Result := Windows.DrawTextW(ACanvas.Handle, PWideChar(AText), Length(AText), Bounds, Flag)
  else
  begin
    AnsiText := WideCharToString(PWideChar(AText));
    Result := Windows.DrawText(ACanvas.Handle, PChar(AnsiText), Length(AnsiText), Bounds, Flag);
  end;
end;

procedure BSDrawText4(Cnvs: TCanvas; S: String; R: TRect);
begin
  if S = '' then Exit;
  if S[1] = 'W' then Inc(R.Right, 2);
  DrawText(Cnvs.Handle, PChar(S), Length(S), R,
    DT_VCENTER or DT_SINGLELINE or DT_CENTER);
end;

procedure BSDrawText(Cnvs: TCanvas; S: String; R: TRect);
begin
  if S = '' then Exit;
  DrawText(Cnvs.Handle, PChar(S), Length(S), R,
    DT_VCENTER or DT_SINGLELINE or DT_LEFT);
end;

procedure BSDrawText2(Cnvs: TCanvas; S: String; R: TRect);
var
  TX, TY: Integer;
begin
  if S = '' then Exit;
  TX := R.Left + 2;
  TY := R.Top + RectHeight(R) div 2 - Cnvs.TextHeight(S) div 2;
  Cnvs.TextRect(R, TX, TY, S);
end;

procedure BSDrawText3(Cnvs: TCanvas; S: String; R: TRect; HorOffset: Integer);
var
  TX, TY: Integer;
begin
  if S = '' then Exit;
  TX := R.Left + 2 + HorOffset;
  TY := R.Top + RectHeight(R) div 2 - Cnvs.TextHeight(S) div 2;
  Cnvs.TextRect(R, TX, TY, S);
end;

procedure DrawTrackArrowImage(Cnvs: TCanvas; R: TRect; Color: TColor);
var
  X, Y, i: Integer;

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美三级电影在线看| 国产精品三级电影| 欧美日韩一区三区| 色香色香欲天天天影视综合网| 成人高清免费在线播放| 国产精品一区二区黑丝| 国产精品456露脸| 国产成人午夜电影网| 粉嫩久久99精品久久久久久夜| 国产精品综合在线视频| 国产福利一区二区三区在线视频| 国产成人午夜精品5599| 成人视屏免费看| 97精品久久久久中文字幕| 一本高清dvd不卡在线观看| 91国产精品成人| 欧美日本视频在线| 91精品国产高清一区二区三区蜜臀| 欧美肥大bbwbbw高潮| 日韩免费电影一区| 精品粉嫩超白一线天av| 欧美国产一区在线| 一区二区在线免费| 日韩有码一区二区三区| 精品一区二区免费视频| 成人深夜在线观看| 欧美在线观看一区| 日韩欧美的一区二区| 亚洲精品你懂的| 亚洲成人一区二区| 强制捆绑调教一区二区| 国内外精品视频| av电影一区二区| 欧美日韩国产美| 久久久噜噜噜久噜久久综合| 18成人在线视频| 婷婷一区二区三区| 国产精品亚洲视频| 日本道精品一区二区三区| 777色狠狠一区二区三区| 精品国产一区二区三区忘忧草| 国产精品妹子av| 亚洲第一电影网| 激情深爱一区二区| 在线视频一区二区三| 欧美一区二区免费视频| 国产欧美一区二区三区网站| 亚洲激情图片小说视频| 麻豆成人91精品二区三区| 国产精品 日产精品 欧美精品| 91免费观看国产| 日韩午夜av一区| 成人欧美一区二区三区小说| 天天综合网 天天综合色| 国产精品一二三四五| 欧美性一级生活| 久久久亚洲欧洲日产国码αv| 一区二区在线观看av| 精品综合免费视频观看| 91香蕉视频污在线| 欧美va亚洲va在线观看蝴蝶网| 综合分类小说区另类春色亚洲小说欧美| 日韩 欧美一区二区三区| av动漫一区二区| 精品av综合导航| 亚洲一本大道在线| av高清不卡在线| 欧美精品一区二区久久久| 一区二区三区中文在线| 粉嫩av一区二区三区| 日韩免费高清av| 亚洲男人的天堂一区二区| 国产麻豆精品视频| 欧美日韩国产首页在线观看| 亚洲国产激情av| 精彩视频一区二区| 欧美一级日韩一级| 亚洲第一福利一区| 色视频欧美一区二区三区| 国产亚洲va综合人人澡精品| 蜜臀av一区二区在线观看| 欧美日韩和欧美的一区二区| 中文字幕人成不卡一区| 狠狠狠色丁香婷婷综合久久五月| 欧美久久久影院| 一区二区国产视频| 色综合夜色一区| 国产精品第五页| 成人综合婷婷国产精品久久蜜臀| 日韩视频123| 水蜜桃久久夜色精品一区的特点| 在线观看网站黄不卡| 亚洲猫色日本管| 成人久久18免费网站麻豆 | 久久久蜜桃精品| 精品无码三级在线观看视频| 欧美一区二区黄| 麻豆国产精品一区二区三区| 欧美日韩一级片网站| 亚洲成人777| 欧美日韩免费在线视频| 亚洲一区二区三区四区五区中文| 91麻豆成人久久精品二区三区| 中文字幕制服丝袜成人av| 成人a级免费电影| 亚洲视频你懂的| 色就色 综合激情| 亚洲综合免费观看高清完整版在线| 91亚洲国产成人精品一区二区三 | 日本亚洲一区二区| 中文字幕精品一区二区三区精品 | 欧美v亚洲v综合ⅴ国产v| 免费视频一区二区| 日韩你懂的在线观看| 国内精品久久久久影院薰衣草 | 寂寞少妇一区二区三区| 久久蜜桃av一区精品变态类天堂 | 欧美经典一区二区| 99久久免费国产| 一区二区三区在线免费| 欧美日韩国产美女| 麻豆91在线观看| 国产日产亚洲精品系列| 不卡一卡二卡三乱码免费网站 | 色婷婷一区二区| 肉肉av福利一精品导航| 精品美女被调教视频大全网站| 国产一区二区在线视频| 中文字幕在线不卡国产视频| 欧美在线视频全部完| 日本午夜精品视频在线观看| 欧美精品一区二| 丁香天五香天堂综合| 亚洲精品国产无天堂网2021| 3atv一区二区三区| 国产91在线看| 亚洲激情六月丁香| 欧美一级国产精品| 成人网页在线观看| 婷婷丁香激情综合| 久久网站热最新地址| 97国产一区二区| 日韩1区2区3区| 国产精品理论片| 欧美一区二区福利视频| 丁香啪啪综合成人亚洲小说 | 在线亚洲免费视频| 精品一二三四在线| 亚洲精品写真福利| 日韩一区二区不卡| 99re视频这里只有精品| 日韩电影在线观看电影| 国产精品入口麻豆九色| 欧美精品777| 97se亚洲国产综合自在线观| 日韩黄色免费电影| 美美哒免费高清在线观看视频一区二区 | 婷婷夜色潮精品综合在线| 久久蜜桃香蕉精品一区二区三区| 在线视频综合导航| 国产精品1区2区| 三级在线观看一区二区| 国产精品色噜噜| 日韩欧美资源站| 色呦呦一区二区三区| 国产尤物一区二区在线| 亚洲国产欧美一区二区三区丁香婷| 26uuu精品一区二区| 欧美午夜一区二区三区 | 欧美日韩综合一区| 粉嫩一区二区三区性色av| 日本女人一区二区三区| 亚洲三级理论片| 久久久久久久综合色一本| 欧美剧情电影在线观看完整版免费励志电影| 高清日韩电视剧大全免费| 青青草原综合久久大伊人精品| 一区二区三区在线视频免费观看| 国产欧美一区视频| 精品少妇一区二区三区视频免付费| 色婷婷激情一区二区三区| 国产不卡视频在线播放| 另类小说色综合网站| 天天综合天天综合色| 一个色在线综合| 国产精品久久久久影院亚瑟| 久久毛片高清国产| 日韩一级成人av| 91精品午夜视频| 精品视频免费看| 欧美专区日韩专区| 色欧美日韩亚洲| 色香蕉久久蜜桃| 91美女在线看| 色婷婷亚洲综合| 91麻豆国产福利在线观看| 99精品欧美一区二区三区小说| 成人性生交大片免费看中文网站| 国产精品正在播放| 国产精品一卡二|