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

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

?? bsskintabs.pas

?? 一套支持Delphi的VCL庫
?? PAS
?? 第 1 頁 / 共 5 頁
字號:
          DrawCloseImage(Cnvs, CIX, CIY, clBlack);
        end;
      //
      TbsSkinCustomTabSheet(Self.Pages[I]).ButtonRect := ButtonR;
      if TabPosition = tpLeft
      then
        begin
          R1 := TbsSkinCustomTabSheet(Self.Pages[I]).ButtonRect;
          R2 := Rect(R1.Top, W - R1.Right, R1.Bottom, W - R1.Left);
          TbsSkinCustomTabSheet(Self.Pages[I]).ButtonRect := R2;
        end
      else
      if TabPosition = tpRight
      then
        begin
          R1 := TbsSkinCustomTabSheet(Self.Pages[I]).ButtonRect;
          R2 := Rect(H - R1.Bottom, R1.Left, H - R1.Top, R1.Right);
          TbsSkinCustomTabSheet(Self.Pages[I]).ButtonRect := R2;
        end;
      Exit;
    end;

  if not IsNullRect(CloseButtonRect)
  then
    begin
      if TbsSkinCustomTabSheet(Self.Pages[I]).ButtonMouseDown and
         TbsSkinCustomTabSheet(Self.Pages[I]).ButtonMouseIn
      then
        R1 := CloseButtonDownRect
      else
      if TbsSkinCustomTabSheet(Self.Pages[I]).ButtonMouseIn
      then
        R1 := CloseButtonActiveRect
      else
        R1 := CloseButtonRect;
      X := R.Left;
      Y := R.Top + RectHeight(R) div 2 - RectHeight(R1) div 2;
      ButtonR := Rect(X, Y, X + RectWidth(R1), Y + RectHeight(R1));
      if ButtonTransparent
      then
        begin
          Buffer := TBitMap.Create;
          Buffer.Width := RectWidth(R1);
          Buffer.Height := RectHeight(R1);
          Buffer.Transparent := True;
          Buffer.TransparentMode := tmFixed;
          Buffer.TransparentColor := ButtonTransparentColor;
          Buffer.Canvas.CopyRect(Rect(0, 0, Buffer.Width, Buffer.Height),
            Picture.Canvas, R1);
          Cnvs.Draw(ButtonR.Left, ButtonR.Top, Buffer);
          Buffer.Free;
        end
      else
        Cnvs.CopyRect(ButtonR, Picture.Canvas, R1);

      //
      TbsSkinCustomTabSheet(Self.Pages[I]).ButtonRect := ButtonR;
      if TabPosition = tpLeft
      then
        begin
          R1 := TbsSkinCustomTabSheet(Self.Pages[I]).ButtonRect;
          R2 := Rect(R1.Top, W - R1.Right, R1.Bottom, W - R1.Left);
          TbsSkinCustomTabSheet(Self.Pages[I]).ButtonRect := R2;
        end
      else
      if TabPosition = tpRight
      then
        begin
          R1 := TbsSkinCustomTabSheet(Self.Pages[I]).ButtonRect;
          R2 := Rect(H - R1.Bottom, R1.Left, H - R1.Top, R1.Right);
          TbsSkinCustomTabSheet(Self.Pages[I]).ButtonRect := R2;
        end;
      Exit;
    end;
  ButtonData := nil;
  CIndex := FSD.GetControlIndex('resizetoolbutton');
  if CIndex <> -1
  then
    ButtonData := TbsDataSkinButtonControl(FSD.CtrlList[CIndex]);
  if ButtonData = nil then Exit;
  //
  ButtonR := Rect(0, 0, FCloseSize, FCloseSize);
  //
  Buffer := TBitMap.Create;
  Buffer.Width := RectWidth(ButtonR);
  Buffer.Height := RectHeight(ButtonR);
  //
  with ButtonData do
  begin
    XO := RectWidth(ButtonR) - RectWidth(SkinRect);
    YO := RectHeight(ButtonR) - RectHeight(SkinRect);
    BtnLTPoint := LTPoint;
    BtnRTPoint := Point(RTPoint.X + XO, RTPoint.Y);
    BtnLBPoint := Point(LBPoint.X, LBPoint.Y + YO);
    BtnRBPoint := Point(RBPoint.X + XO, RBPoint.Y + YO);
    BtnClRect := Rect(CLRect.Left, ClRect.Top,
      CLRect.Right + XO, ClRect.Bottom + YO);
    BtnSkinPicture := TBitMap(SkinData.FActivePictures.Items[ButtonData.PictureIndex]);

    BSR := SkinRect;
    ABSR := ActiveSkinRect;
    DBSR := DownSkinRect;
    if IsNullRect(ABSR) then ABSR := BSR;
    if IsNullRect(DBSR) then DBSR := ABSR;
    //
    if TbsSkinCustomTabSheet(Self.Pages[I]).ButtonMouseDown and
       TbsSkinCustomTabSheet(Self.Pages[I]).ButtonMouseIn
    then
      begin
        CreateSkinImage(LTPoint, RTPoint, LBPoint, RBPoint, CLRect,
        BtnLtPoint, BtnRTPoint, BtnLBPoint, BtnRBPoint, BtnCLRect,
        Buffer, BtnSkinPicture, DBSR, Buffer.Width, Buffer.Height, True,
        LeftStretch, TopStretch, RightStretch, BottomStretch,
        StretchEffect, StretchType);
        Buffer.Canvas.Font.Color := DownFontColor;
      end
    else
    if TbsSkinCustomTabSheet(Self.Pages[I]).ButtonMouseIn
    then
      begin
        CreateSkinImage(LTPoint, RTPoint, LBPoint, RBPoint, CLRect,
        BtnLtPoint, BtnRTPoint, BtnLBPoint, BtnRBPoint, BtnCLRect,
        Buffer, BtnSkinPicture, ABSR, Buffer.Width, Buffer.Height, True,
        LeftStretch, TopStretch, RightStretch, BottomStretch,
        StretchEffect, StretchType);
        Buffer.Canvas.Font.Color := ActiveFontColor;
      end
    else
      begin
        CreateSkinImage(LTPoint, RTPoint, LBPoint, RBPoint, CLRect,
        BtnLtPoint, BtnRTPoint, BtnLBPoint, BtnRBPoint, BtnCLRect,
        Buffer, BtnSkinPicture, BSR, Buffer.Width, Buffer.Height, True,
        LeftStretch, TopStretch, RightStretch, BottomStretch,
        StretchEffect, StretchType);
        Buffer.Canvas.Font.Color := FontColor;
      end;
   end;

  CIX := Buffer.Width div 2 - 5;
  CIY := Buffer.Height div 2 - 5;

  DrawCloseImage(Buffer.Canvas, CIX, CIY, Buffer.Canvas.Font.Color);

  X := R.Left;
  Y := R.Top + RectHeight(R) div 2 - Buffer.Height div 2;

  TbsSkinCustomTabSheet(Self.Pages[I]).ButtonRect := Rect(X, Y,
  X + Buffer.Width, Y + Buffer.Height);

  if TabPosition = tpLeft
  then
    begin
      R1 := TbsSkinCustomTabSheet(Self.Pages[I]).ButtonRect;
      R2 := Rect(R1.Top, W - R1.Right, R1.Bottom, W - R1.Left);
      TbsSkinCustomTabSheet(Self.Pages[I]).ButtonRect := R2;
    end
  else
  if TabPosition = tpRight
  then
    begin
      R1 := TbsSkinCustomTabSheet(Self.Pages[I]).ButtonRect;
      R2 := Rect(H - R1.Bottom, R1.Left, H - R1.Top, R1.Right);
      TbsSkinCustomTabSheet(Self.Pages[I]).ButtonRect := R2;
    end;

  Cnvs.Draw(X, Y, Buffer);
  Buffer.Free;
end;


procedure TbsSkinPageControl.SetShowCloseButtons(Value: Boolean);
begin
  if FShowCloseButtons <> Value
  then
    begin
      FShowCloseButtons := Value;
      if FShowCloseButtons
      then
        begin
          if TabPosition in [tpTop, tpBottom]
          then
            FTempImages.Width := FTempImages.Width + FCloseSize
          else
            FTempImages.Height := FTempImages.Height + FCloseSize
        end
      else
        begin
          if TabPosition in [tpTop, tpBottom]
          then
            FTempImages.Width := FTempImages.Width - FCloseSize
          else
            FTempImages.Height := FTempImages.Height - FCloseSize;
        end;
    end;
  Invalidate;
end;

procedure TbsSkinPageControl.SetImages(value: TCustomImageList);
begin
  if FImages <> nil then
  begin
    if TabPosition in [tpTop, tpBottom] then
      FTempImages.Width := FTempImages.Width - FImages.Width
    else
      FTempImages.Height := FTempImages.Height - FImages.Height;
  end;

  FImages := Value;

  if FImages <> nil then
  begin
    if TabPosition in [tpTop, tpBottom] then
      FTempImages.Width := FTempImages.Width + FImages.Width
    else // tpLeft, tpRight
      FTempImages.Height := FTempImages.Height + FImages.Height;
  end;

  Invalidate;
end;

procedure TbsSkinPageControl.WMCHECKPARENTBG;
begin
  if TabsBGTransparent then RePaint;
end;

procedure TbsSkinPageControl.DrawEmptyBackGround(DC: HDC);
var
  C: TCanvas;
  TabSheetBG, Buffer2: TBitMap;
  X, Y, XCnt, YCnt, w, h, w1, h1: Integer;
begin
  if (Width <= 0) or (Height <=0) then Exit;

  C := TCanvas.Create;
  C.Handle := DC;

  if BGPictureIndex <> -1
  then
    begin
      TabSheetBG := TBitMap(FSD.FActivePictures.Items[BGPictureIndex]);

      if StretchEffect and (Width > 0) and (Height > 0)
      then
        begin
          case StretchType of
            bsstFull:
              begin
                C.StretchDraw(Rect(0, 0, Width, Height), TabSheetBG);
              end;
            bsstVert:
              begin
                Buffer2 := TBitMap.Create;
                Buffer2.Width := Width;
                Buffer2.Height := TabSheetBG.Height;
                Buffer2.Canvas.StretchDraw(Rect(0, 0, Buffer2.Width, Buffer2.Height), TabSheetBG);
                YCnt := Height div Buffer2.Height;
                for Y := 0 to YCnt do
                  C.Draw(0, Y * Buffer2.Height, Buffer2);
                Buffer2.Free;
              end;
           bsstHorz:
             begin
               Buffer2 := TBitMap.Create;
               Buffer2.Width := TabSheetBG.Width;
               Buffer2.Height := Height;
               Buffer2.Canvas.StretchDraw(Rect(0, 0, Buffer2.Width, Buffer2.Height), TabSheetBG);
               XCnt := Width div Buffer2.Width;
               for X := 0 to XCnt do
                 C.Draw(X * Buffer2.Width, 0, Buffer2);
               Buffer2.Free;
             end;
          end;
        end
      else
      if (Width > 0) and (Height > 0)
      then
        begin
          XCnt := Width div TabSheetBG.Width;
          YCnt := Height div TabSheetBG.Height;
          for X := 0 to XCnt do
          for Y := 0 to YCnt do
            C.Draw(X * TabSheetBG.Width, Y * TabSheetBG.Height, TabSheetBG);
        end;
    end
 else
   begin
     w1 := Width;
     h1 := Height;
     TabSheetBG := TBitMap.Create;
     TabSheetBG.Width := RectWidth(ClRect);
     TabSheetBG.Height := RectHeight(ClRect);
     TabSheetBG.Canvas.CopyRect(Rect(0, 0, TabSheetBG.Width, TabSheetBG.Height),
       Picture.Canvas,
        Rect(SkinRect.Left + ClRect.Left, SkinRect.Top + ClRect.Top,
             SkinRect.Left + ClRect.Right,
             SkinRect.Top + ClRect.Bottom));

      if StretchEffect and (Width > 0) and (Height > 0)
      then
        begin
          case StretchType of
            bsstFull:
              begin
                C.StretchDraw(Rect(0, 0, Width, Height), TabSheetBG);
              end;
            bsstVert:
              begin
                Buffer2 := TBitMap.Create;
                Buffer2.Width := Width;
                Buffer2.Height := TabSheetBG.Height;
                Buffer2.Canvas.StretchDraw(Rect(0, 0, Buffer2.Width, Buffer2.Height), TabSheetBG);
                YCnt := Height div Buffer2.Height;
                for Y := 0 to YCnt do
                  C.Draw(0, Y * Buffer2.Height, Buffer2);
                Buffer2.Free;
              end;
           bsstHorz:
             begin
               Buffer2 := TBitMap.Create;
               Buffer2.Width := TabSheetBG.Width;
               Buffer2.Height := Height;
               Buffer2.Canvas.StretchDraw(Rect(0, 0, Buffer2.Width, Buffer2.Height), TabSheetBG);
               XCnt := Width div Buffer2.Width;
               for X := 0 to XCnt do
                 C.Draw(X * Buffer2.Width, 0, Buffer2);
               Buffer2.Free;
             end;
          end;
        end
      else
        begin
          w := RectWidth(ClRect);
          h := RectHeight(ClRect);
          XCnt := w1 div w;
          YCnt := h1 div h;
          for X := 0 to XCnt do
          for Y := 0 to YCnt do
            C.Draw(X * w, Y * h, TabSheetBG);
        end;
      TabSheetBG.Free;
   end;
  C.Free;
end;


procedure TbsSkinPageControl.SetTabsBGTransparent(Value: Boolean);
begin
  if FTabsBGTransparent <> Value
  then
    begin
      FTabsBGTransparent := Value;
      Invalidate;
    end;
end;

procedure TbsSkinPageControl.UpDateTabs;
begin
  if FIndex <> -1
  then
    begin
      if TabHeight <= 0
      then
        SetItemSize(TabWidth, RectHeight(TabRect))
      else
        SetItemSize(TabWidth, TabHeight);
    end
  else
    begin
      if TabHeight <= 0
      then
        SetItemSize(TabWidth, FDefaultItemHeight)
      else
        SetItemSize(TabWidth, TabHeight);
    end;
  if MultiLine and (FSkinUpDown <> nil)
  then
    HideSkinUpDown;
  ReAlign;
end;

procedure TbsSkinPageControl.CMMouseLeave;
begin
  if FHideTabs then Exit;

  if (FOldActiveTabIndex <> - 1) and (FOldActiveTabIndex <> TabIndex) and
     (FOldActiveTabIndex < PageCount)
  then
    begin
      DrawTabs(Canvas);
      FOldActiveTabIndex := -1;
      FOldActiveTab := -1;
    end;

  if (FActiveTabIndex <> - 1) and (FActiveTabIndex <> TabIndex) and
     (FActiveTabIndex < PageCount)
  then
    begin
      DrawTabs(Canvas);
      FActiveTabIndex := -1;
      FActiveTab := -1;
    end;
end;

procedure TbsSkinPageControl.MouseUp(Button: TMouseButton; Shift: TShiftState;
              X, Y: Integer); 
var
  R, BR: TRect;
begin
  inherited;

  if FHideTabs then Exit;

  if (Button = mbLeft) and not (csDesigning in ComponentState)
  then
    TestActive(X, Y);

  if (FActiveTabIndex <> -1) and FShowCloseButtons and (Button = mbLeft)
  then
    with TbsSkinCustomTabSheet(Pages[FActiveTab]) do
    begin
      R := GetItemRect(FActiveTabIndex);
      BR := ButtonRect;
      OffsetRect(BR, R.Left, R.Top);
      if PtInRect(BR, Point(X, Y))
      then
        begin
          ButtonMouseIn := True;
          ButtonMouseDown := False;
          DrawTabs(Canvas);
          DoClose;
        end
      else
      if not PtInRect(BR, Point(X, Y))
      then
        begin
          ButtonMouseIn := False;
          ButtonMouseDown := False;
        end;
    end;
    
end;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久精品tv| 欧美中文字幕一区| 亚洲成人av在线电影| 亚洲综合免费观看高清完整版在线 | 91麻豆国产香蕉久久精品| 久久噜噜亚洲综合| 成人午夜伦理影院| 亚洲免费观看视频| 正在播放亚洲一区| 国产在线精品免费av| 欧美国产日本韩| 日本乱人伦一区| 三级精品在线观看| 久久综合色播五月| 99视频超级精品| 亚洲高清久久久| 精品国产91九色蝌蚪| 成人一区二区三区在线观看| 亚洲视频小说图片| 欧美精品aⅴ在线视频| 久久激情五月激情| 国产精品免费丝袜| 在线亚洲一区观看| 美女mm1313爽爽久久久蜜臀| 久久亚洲二区三区| 色欧美88888久久久久久影院| 性感美女久久精品| 久久久久久一级片| 欧美视频一区二区三区四区| 麻豆精品久久久| 亚洲欧洲精品天堂一级| 69久久夜色精品国产69蝌蚪网| 国产在线日韩欧美| 一个色妞综合视频在线观看| 欧美不卡一二三| 91小宝寻花一区二区三区| 秋霞午夜av一区二区三区| 国产精品青草综合久久久久99| 欧美色欧美亚洲另类二区| 国产成人免费视频网站高清观看视频| 一区二区三区中文在线| 久久综合五月天婷婷伊人| 91福利精品视频| 丁香一区二区三区| 蜜桃视频一区二区三区| 亚洲视频每日更新| 国产日韩精品一区二区三区| 欧美日本国产视频| 91在线高清观看| 高清不卡一区二区在线| 日日摸夜夜添夜夜添国产精品| 日韩一区在线免费观看| 精品国产成人在线影院 | 亚洲丰满少妇videoshd| 国产精品女主播av| 久久久亚洲精品石原莉奈| 欧美精品久久一区二区三区| av网站一区二区三区| 国产在线播放一区三区四| 日韩精品一二区| 亚洲欧美偷拍卡通变态| 国产精品久久久久影院老司| 久久久久久久电影| 日韩精品一区二区三区在线播放| 色狠狠综合天天综合综合| 成人av免费网站| 丁香网亚洲国际| 国产黄色成人av| 国产在线精品一区二区不卡了| 免费成人美女在线观看| 美国三级日本三级久久99| 日韩av电影一区| 视频在线观看一区二区三区| 亚洲免费三区一区二区| 洋洋成人永久网站入口| 亚洲综合偷拍欧美一区色| 亚洲综合区在线| 亚洲福利一二三区| 日韩精彩视频在线观看| 亚洲成人动漫精品| 日本不卡一二三区黄网| 久久99精品久久久久婷婷| 九九国产精品视频| 国产精品2024| 成人精品小蝌蚪| 成人h动漫精品一区二| 99久久99久久久精品齐齐| 色琪琪一区二区三区亚洲区| 精品视频123区在线观看| 欧美狂野另类xxxxoooo| 91精选在线观看| 精品久久人人做人人爰| 久久久久久久久伊人| 国产精品日产欧美久久久久| 亚洲欧美二区三区| 午夜久久久久久久久| 美美哒免费高清在线观看视频一区二区| 久久se这里有精品| 国精品**一区二区三区在线蜜桃| 国产激情视频一区二区在线观看| 成人毛片老司机大片| 91国产免费观看| 日韩一卡二卡三卡国产欧美| 国产午夜精品在线观看| 亚洲视频精选在线| 日韩电影一区二区三区四区| 寂寞少妇一区二区三区| 99久久99久久精品免费观看| 欧美体内she精高潮| 精品国产乱码久久久久久久久| 国产精品天干天干在线综合| 亚洲综合丁香婷婷六月香| 国内外成人在线| 一本到一区二区三区| 日韩欧美国产小视频| 国产精品免费观看视频| 日韩精品一区第一页| 国产91精品在线观看| 在线国产亚洲欧美| 久久久久久久久久久久电影| 亚洲理论在线观看| 国内外成人在线| 欧美日韩高清一区二区三区| 国产日产亚洲精品系列| 午夜久久电影网| 91麻豆自制传媒国产之光| 欧美电视剧在线看免费| 樱花草国产18久久久久| 国产一区美女在线| 欧美日韩不卡视频| 国产精品美女久久久久aⅴ| 日韩高清不卡一区二区三区| 99麻豆久久久国产精品免费优播| 欧美一级免费观看| 亚洲久草在线视频| 国产麻豆日韩欧美久久| 欧美一区中文字幕| 亚洲免费大片在线观看| 国产成人一区在线| 日韩视频在线永久播放| 亚洲欧美偷拍卡通变态| 国产.欧美.日韩| 欧美成人官网二区| 亚洲成人www| 91成人免费在线| 国产精品对白交换视频| 精品亚洲欧美一区| 91麻豆精品91久久久久同性| 一区二区三区四区不卡在线| 高清不卡在线观看av| 久久久99久久精品欧美| 六月丁香综合在线视频| 欧美挠脚心视频网站| 亚洲一区视频在线| 色又黄又爽网站www久久| 国产精品丝袜一区| 国产91丝袜在线18| 久久久久亚洲蜜桃| 国产尤物一区二区| 精品国产区一区| 免费的成人av| 欧美α欧美αv大片| 美女视频一区二区三区| 日韩欧美中文一区| 麻豆精品久久久| 日韩一区二区视频在线观看| 一区二区三区在线观看网站| 99久久国产综合精品女不卡| 自拍视频在线观看一区二区| 99精品热视频| 亚洲人被黑人高潮完整版| 91一区在线观看| 亚洲欧美一区二区三区久本道91| 99久久婷婷国产综合精品电影| 欧美国产乱子伦 | 国产精品丝袜91| 成人激情小说乱人伦| 国产精品视频免费看| 成人午夜视频网站| 国产精品美女久久久久aⅴ国产馆| 不卡一区在线观看| 亚洲少妇最新在线视频| 欧美日韩一区二区三区四区| 午夜精品免费在线| 日韩欧美中文一区| 风流少妇一区二区| 亚洲视频在线一区| 欧美精品九九99久久| 久久精品国内一区二区三区| 久久九九久精品国产免费直播| 国产精品一二三四区| 国产精品污www在线观看| 99久久精品免费看国产| 亚洲电影一区二区三区| 日韩视频在线你懂得| 成人综合婷婷国产精品久久蜜臀 | 成人综合在线视频| 亚洲国产综合视频在线观看| 91精品国产乱码久久蜜臀| 极品瑜伽女神91|