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

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

?? bsskintabs.pas

?? 一套支持Delphi的VCL庫
?? PAS
?? 第 1 頁 / 共 5 頁
字號:

procedure TbsSkinPageControl.MouseDown;
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 := True;
          DrawTabs(Canvas); 
        end
      else
      if not PtInRect(BR, Point(X, Y))
      then
        begin
          ButtonMouseIn := False;
          ButtonMouseDown := False;
        end;
    end;
end;

procedure TbsSkinPageControl.MouseMove;
begin
 inherited;

 if FHideTabs then Exit;

 if  not (csDesigning in ComponentState)
 then
   TestActive(X, Y);
end;

procedure TbsSkinPageControl.SetDefaultItemHeight;
begin
  FDefaultItemHeight := Value;
  if FIndex = -1
  then
    begin
      SetItemSize(TabWidth, FDefaultItemHeight);
      Change2;
      ReAlign;
    end;
end;


procedure TbsSkinPageControl.SetDefaultFont;
begin
  FDefaultFont.Assign(Value);
end;

procedure TbsSkinPageControl.OnUpDownChange(Sender: TObject);
begin
  FSkinUpDown.Max := GetInVisibleItemCount;
  SendMessage(Handle, WM_HSCROLL,
    MakeWParam(SB_THUMBPOSITION, FSkinUpDown.Position), 0);
end;

function TbsSkinPageControl.GetPosition: Integer;
var
  i, j, k: Integer;
  R: TRect;
begin
  j := 0;
  k := -1;
  for i := 0 to PageCount - 1 do
  if Pages[i].TabVisible then
  begin
    inc(k);
    R := GetItemRect(k);
    if R.Right <= 0 then inc(j);
  end;
  Result := j;
end;

function TbsSkinPageControl.GetInVisibleItemCount;
var
  i, j, k: Integer;
  R: TRect;
  Limit: Integer;
begin
  if FSkinUpDown = nil
  then
    Limit := Width - 3
  else
    Limit := Width - FSkinUpDown.Width - 3;
  j := 0;
  k := -1;
  for i := 0 to PageCount - 1 do
  if Pages[i].TabVisible
  then
  begin
    inc(k);
    R := GetItemRect(k);
    if (R.Right > Limit) or (R.Right <= 0)
    then inc(j);
  end;
  Result := j;
end;

procedure TbsSkinPageControl.CheckScroll;
var
  Wnd: HWND;
  InVCount: Integer;
begin
  Wnd := FindWindowEx(Handle, 0, 'msctls_updown32', nil);
  if Wnd <> 0 then DestroyWindow(Wnd);
  InVCount := GetInVisibleItemCount;
  if ((InVCount = 0) or MultiLine) and (FSkinUpDown <> nil)
  then
    HideSkinUpDown
  else
  if (InVCount > 0) and (FSkinUpDown = nil)
  then
    ShowSkinUpDown;
  if FSkinUpDown <> nil
  then
    begin
      FSkinUpDown.Max := InVCount;
      FSkinUpDown.Left := Width - FSkinUpDown.Width;
      if TabPosition = tpTop
      then
        FSkinUpDown.Top := 0
      else
       FSkinUpDown.Top := Height - FSkinUpDown.Height;
    end;
end;

procedure TbsSkinPageControl.ShowSkinUpDown;
begin
  if FHideTabs then Exit;
  FSkinUpDown := TbsSkinUpDown.Create(Self);
  FSkinUpDown.Parent := Self;
  FSkinUpDown.Width := FDefaultItemHeight * 2;
  FSkinUpDown.Height := FDefaultItemHeight;
  FSkinUpDown.Min := 0;
  FSkinUpDown.Max := GetInVisibleItemCount;
  FSkinUpDown.Position := GetPosition;
  FSkinUpDown.Increment := 1;
  FSkinUpDown.OnChange := OnUpDownChange;
  FSkinUpDown.Left := Width - FSkinUpDown.Width;
  if TabPosition = tpTop
  then
    FSkinUpDown.Top := 0
  else
    FSkinUpDown.Top := Height - FSkinUpDown.Height;
  FSkinUpDown.SkinDataName := UpDown;
  FSkinUpDown.SkinData := SkinData;
  FSkinUpDown.Visible := True;
end;

procedure TbsSkinPageControl.HideSkinUpDown;
begin
  FSkinUpDown.Free;
  FSkinUpDown := nil;
end;

procedure TbsSkinPageControl.WMHSCROLL;
begin
  inherited;
  RePaint;
end;

procedure TbsSkinPageControl.WMSize;
begin
  GetSkinData;
  inherited;
end;

procedure TbsSkinPageControl.Change;
begin
  if FSkinUpDown <> nil
  then FSkinUpDown.Position := GetPosition;
  inherited;
  Invalidate;
  if ActivePage <> nil then ActivePage.Invalidate;
end;

procedure TbsSkinPageControl.Change2;
begin
  if FSkinUpDown <> nil
  then FSkinUpDown.Position := GetPosition;
  Invalidate;
end;

procedure TbsSkinPageControl.GetSkinData;
begin
  BGPictureIndex := -1;
  if FSD = nil
  then
    begin
      FIndex := -1;
      Exit;
    end;
  if FSD.Empty
  then
    FIndex := -1
  else
    FIndex := FSD.GetControlIndex(FSkinDataName);
  //
  if FIndex <> -1
  then
    if TbsDataSkinControl(FSD.CtrlList.Items[FIndex]) is TbsDataSkinTabControl
    then
      with TbsDataSkinTabControl(FSD.CtrlList.Items[FIndex]) do
      begin
        if (PictureIndex <> -1) and (PictureIndex < FSD.FActivePictures.Count)
        then
          Picture := TBitMap(FSD.FActivePictures.Items[PictureIndex])
        else
          Picture := nil;
        Self.SkinRect := SkinRect;
        Self.ClRect := ClRect;
        Self.TabRect := TabRect;
        if IsNullRect(ActiveTabRect)
        then
          Self.ActiveTabRect := TabRect
        else
          Self.ActiveTabRect := ActiveTabRect;
        if IsNullRect(FocusTabRect)
        then
          Self.FocusTabRect := ActiveTabRect
        else
          Self.FocusTabRect := FocusTabRect;
        //
        Self.TabsBGRect := TabsBGRect;
        Self.LTPoint := LTPoint;
        Self.RTPoint := RTPoint;
        Self.LBPoint := LBPoint;
        Self.RBPoint := RBPoint;
        Self.TabLeftOffset := TabLeftOffset;
        Self.TabRightOffset := TabRightOffset;
        //
        Self.FontName := FontName;
        Self.FontColor := FontColor;
        Self.ActiveFontColor := ActiveFontColor;
        Self.FocusFontColor := FocusFontColor;
        Self.FontStyle := FontStyle;
        Self.FontHeight := FontHeight;
        Self.UpDown := UpDown;
        Self.BGPictureIndex := BGPictureIndex;
        Self.MouseInTabRect := MouseInTabRect;
        Self.MouseInFontColor := MouseInFontColor;
        Self.TabStretchEffect := TabStretchEffect;
        Self.ShowFocus := ShowFocus;
        Self.FocusOffsetX := FocusOffsetX;
        Self.FocusOffsetY := FocusOffsetY;
        Self.LeftStretch := LeftStretch;
        Self.TopStretch := TopStretch;
        Self.RightStretch := RightStretch;
        Self.BottomStretch := BottomStretch;
        Self.StretchEffect := StretchEffect;
        Self.StretchType := StretchType;
        //
        Self.CloseButtonRect := CloseButtonRect;
        Self.ClosebuttonActiveRect := ClosebuttonActiveRect;
        Self.CloseButtonDownRect := CloseButtonDownRect;
        if IsNullRect(ClosebuttonActiveRect)
          then ClosebuttonActiveRect:= CloseButtonRect;
        if IsNullRect(CloseButtonDownRect)
          then ClosebuttonDownRect:= CloseButtonActiveRect;
        //
       Self.ButtonTransparent := ButtonTransparent;
       Self.ButtonTransparentColor := ButtonTransparentColor;
      end;
end;

procedure TbsSkinPageControl.ChangeSkinData;
var
  UpDownVisible: Boolean;
begin
  GetSkinData;
  //
  if FShowCloseButtons
  then
    begin
      if TabPosition in [tpTop, tpBottom]
      then
        FTempImages.Width := FTempImages.Width - FCloseSize
      else
        FTempImages.Height := FTempImages.Height - FCloseSize;
      FCloseSize := GetCloseSize;
      if TabPosition in [tpTop, tpBottom]
      then
        FTempImages.Width := FTempImages.Width + FCloseSize
      else
        FTempImages.Height := FTempImages.Height + FCloseSize;
    end;
  //
  if FIndex <> -1
  then
    begin
      if FUseSkinFont
      then
        begin
          Font.Name := FontName;
          Font.Height := FontHeight;
          Font.Style := FontStyle;
        end
      else
        Font.Assign(FDefaultFont);

      if (SkinData <> nil) and (SkinData.ResourceStrData <> nil)
      then
        Font.Charset := SkinData.ResourceStrData.CharSet
       else
        Font.CharSet := DefaultFont.CharSet;

      Font.Color := FontColor;
      if TabHeight <= 0
      then
        SetItemSize(TabWidth, RectHeight(TabRect))
      else
        SetItemSize(TabWidth, TabHeight);
    end
  else
    begin
      Font.Assign(FDefaultFont);
      if (SkinData <> nil) and (SkinData.ResourceStrData <> nil)
      then
        Font.Charset := SkinData.ResourceStrData.CharSet;

      if TabHeight <= 0
      then
        SetItemSize(TabWidth, FDefaultItemHeight)
      else
        SetItemSize(TabWidth, TabHeight);
    end;
  //
  Change2;
  ReAlign;
  if FSkinUpDown <> nil
  then
    begin
      HideSkinUpDown;
      CheckScroll;
    end;
  if ActivePage <> nil then ActivePage.RePaint;
end;

procedure TbsSkinPageControl.SetSkinData;
begin
  FSD := Value;
  if (FSD <> nil) then
  if not FSD.Empty and not (csDesigning in ComponentState)
  then
    ChangeSkinData;
end;

procedure TbsSkinPageControl.Notification;
begin
  inherited Notification(AComponent, Operation);
  if (Operation = opRemove) and (AComponent = FSD) then FSD := nil;
  if (Operation = opRemove) and (AComponent = FImages) then FImages := nil;
end;

procedure TbsSkinPageControl.PaintDefaultWindow;
var
  R: TRect;
begin
  with Cnvs do
  begin
    Brush.Color := clBtnFace;
    FillRect(ClientRect);
    R := Self.DisplayRect;
    InflateRect(R, 1, 1);
    Frame3D(Cnvs, R, clBtnShadow, clBtnShadow, 1);
  end;
end;

function TbsSkinPageControl.GetActiveTabRect: TRect;
var
  IR: TRect;
  YO: Integer;
begin
  IR := NullRect;
  YO := RectHeight(ActiveTabRect) - RectHeight(TabRect);
  if (TabIndex <> -1) and (TabIndex >= 0) and (TabIndex < PageCount) and
     (PageCount > 0) and (CheckVisibleTabs) and (ActivePage <> nil)
  then
    begin
      IR := GetItemRect(TabIndex);
      case TabPosition of
        tpTop: Inc(IR.Bottom, YO);
        tpLeft: Inc(IR.Right, YO);
        tpRight: Dec(IR.Left, YO);
        tpBottom: Dec(IR.Top, YO);
      end;
    end;
  Result := IR;
end;

procedure TbsSkinPageControl.PaintSkinWindow;
var
  TOff, LOff, Roff, BOff, SaveIndex: Integer;
  NewClRect, DR, R: TRect;
  TBGOffX, TBGOffY, X, Y, XCnt, YCnt, w, h, rw, rh, XO, YO: Integer;
  NewLTPoint, NewRTPoint, NewLBPoint, NewRBPoint: TPoint;
  LB, RB, TB, BB, ClB: TBitMap;
  R1, R2, IR: TRect;
begin
  GetSkinData;
  TOff := ClRect.Top;
  LOff := ClRect.Left;
  ROff := RectWidth(SkinRect) - ClRect.Right;
  BOff := RectHeight(SkinRect) - ClRect.Bottom;
  //
  DR := Self.DisplayRect;
  //
  R := Rect(DR.Left - LOff, DR.Top - TOff, DR.Right + ROff, DR.Bottom + BOff);
  XO := RectWidth(R) - RectWidth(SkinRect);
  YO := RectHeight(R) - RectHeight(SkinRect);
  NewLTPoint := LTPoint;
  NewRTPoint := Point(RTPoint.X + XO, RTPoint.Y);
  NewLBPoint := Point(LBPoint.X, LBPoint.Y + YO);
  NewRBPoint := Point(RBPoint.X + XO, RBPoint.Y + YO);
  NewCLRect := Rect(ClRect.Left, ClRect.Top, ClRect.Right + XO, ClRect.Bottom + YO);
  // Draw frame around displayrect
  LB := TBitMap.Create;
  TB := TBitMap.Create;
  RB := TBitMap.Create;
  BB := TBitMap.Create;
  CreateSkinBorderImages(LtPoint, RTPoint, LBPoint, RBPoint, ClRect,
     NewLTPoint, NewRTPoint, NewLBPoint, NewRBPoint, NewClRect,
     LB, TB, RB, BB, Picture, SkinRect, RectWidth(R), RectHeight(R),
     LeftStretch, TopStretch, RightStretch, BottomStretch);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区三区在线观看免费| 日韩一区二区三区视频在线观看 | 日韩av电影天堂| 亚洲图片一区二区| 一区二区三区在线免费观看| 亚洲乱码中文字幕综合| 亚洲精品第1页| 一区二区在线看| 一级日本不卡的影视| 亚洲成人自拍偷拍| 日韩专区一卡二卡| 精品一区二区三区在线播放视频| 狠狠色丁香婷婷综合| 国产精品一区二区在线观看网站| 懂色av噜噜一区二区三区av| 成人黄色软件下载| 国产 日韩 欧美大片| 成人午夜私人影院| 91麻豆123| 欧美视频在线播放| 日韩你懂的电影在线观看| 精品国产一区二区精华| 国产精品午夜春色av| 亚洲色图在线看| 日韩制服丝袜av| 国产精品一级二级三级| 北条麻妃一区二区三区| 在线观看不卡视频| 欧美成人精品1314www| 国产视频一区在线观看| 亚洲女人的天堂| 免费成人在线网站| 成人免费三级在线| 欧美日韩在线观看一区二区| 精品乱码亚洲一区二区不卡| 国产精品久久福利| 视频在线观看一区二区三区| 国产大片一区二区| 在线观看亚洲精品视频| 精品国产乱码久久久久久1区2区| 欧美国产视频在线| 天天操天天色综合| 成人午夜激情片| 91麻豆精品91久久久久同性| 精品国产一区二区亚洲人成毛片| 中文字幕视频一区二区三区久| 五月婷婷综合网| 成人午夜av在线| 欧美日韩国产在线播放网站| 久久蜜桃香蕉精品一区二区三区| 一区二区三国产精华液| 国产一区999| 欧美日韩久久不卡| 亚洲欧洲一区二区三区| 捆绑调教美女网站视频一区| 色综合亚洲欧洲| 久久久午夜精品理论片中文字幕| 亚洲第一主播视频| 不卡的电影网站| 日韩欧美中文一区| 亚洲一区二区三区美女| 国产福利一区二区三区视频 | 欧美熟乱第一页| 日本一区二区三区久久久久久久久不| 亚洲v日本v欧美v久久精品| 不卡一二三区首页| 精品国产在天天线2019| 午夜久久久影院| 91视频在线观看| 国产亚洲欧美激情| 日韩成人一区二区三区在线观看| 91在线精品一区二区三区| 久久先锋影音av| 欧美aaaaa成人免费观看视频| 色拍拍在线精品视频8848| 久久先锋影音av鲁色资源网| 日韩高清电影一区| 欧美亚洲自拍偷拍| 亚洲激情自拍视频| av在线不卡观看免费观看| 国产午夜精品一区二区三区四区| 蜜桃精品在线观看| 制服丝袜国产精品| 日欧美一区二区| 欧美精品国产精品| 婷婷久久综合九色综合绿巨人| 在线亚洲+欧美+日本专区| 中文字幕一区二区三区乱码在线| 国产白丝精品91爽爽久久| 精品国产自在久精品国产| 久久成人免费电影| 精品福利二区三区| 久草热8精品视频在线观看| 欧美精品久久99| 日韩成人一区二区| 日韩一区二区三区在线| 免费在线观看一区| 日韩精品中文字幕一区二区三区 | 亚洲电影第三页| 欧美三级一区二区| 香蕉成人啪国产精品视频综合网| 91国内精品野花午夜精品| 一区二区三区在线视频播放 | 亚洲精品乱码久久久久| 91福利视频在线| 亚洲一二三专区| 欧美日韩中文字幕一区| 日韩国产精品大片| 欧美成人一区二区三区| 国精产品一区一区三区mba桃花| www国产精品av| 国产剧情av麻豆香蕉精品| 国产精品视频看| 91丝袜高跟美女视频| 亚洲一区二区三区免费视频| 欧美精品在线一区二区三区| 日韩黄色免费电影| 欧美xxxx在线观看| 丰满白嫩尤物一区二区| 亚洲免费观看高清| 7878成人国产在线观看| 久久99热国产| 国产精品水嫩水嫩| 欧美影视一区二区三区| 美女爽到高潮91| 久久精品一区二区三区四区| 91在线国产观看| 香蕉加勒比综合久久| 精品福利在线导航| 91亚洲国产成人精品一区二三 | 国产在线国偷精品产拍免费yy | 国产一区亚洲一区| 中文字幕在线一区免费| 欧美三级资源在线| 国产综合一区二区| 亚洲男女一区二区三区| 91麻豆精品国产91久久久久久久久| 国内精品嫩模私拍在线| 日韩毛片一二三区| 日韩亚洲欧美一区| a4yy欧美一区二区三区| 日韩黄色在线观看| 欧美激情综合五月色丁香小说| 在线精品亚洲一区二区不卡| 久久成人av少妇免费| 亚洲日本在线看| 日韩三级.com| 日本道在线观看一区二区| 捆绑变态av一区二区三区| ...xxx性欧美| 日韩一卡二卡三卡国产欧美| 99久久精品国产麻豆演员表| 免费三级欧美电影| 一区二区三区在线视频观看| 久久综合一区二区| 在线免费观看视频一区| 国产精品资源在线观看| 亚洲成人免费av| 国产精品高潮呻吟| 26uuu亚洲| 欧美日韩色一区| 波多野结衣视频一区| 青青草伊人久久| 亚洲精品伦理在线| 国产精品午夜免费| 精品国产三级a在线观看| 欧美制服丝袜第一页| 国产成人av电影在线观看| 日韩成人午夜精品| 亚洲精品自拍动漫在线| 日本一区二区三区久久久久久久久不| 欧美精品一卡二卡| 91福利资源站| 99精品热视频| 国产精品69毛片高清亚洲| 免费在线观看成人| 亚洲v精品v日韩v欧美v专区| 亚洲日本va午夜在线电影| 国产日韩欧美不卡在线| 日韩美一区二区三区| 欧美日韩一区二区三区四区| 99精品久久只有精品| 丁香啪啪综合成人亚洲小说| 国内不卡的二区三区中文字幕 | 成人免费观看av| 国产一区二区三区四| 久久成人av少妇免费| 蜜臀精品久久久久久蜜臀| 五月天丁香久久| 一区二区三区日本| 一区二区欧美视频| 亚洲靠逼com| 亚洲精品欧美激情| 亚洲精品中文在线| 亚洲精品美腿丝袜| 一区二区理论电影在线观看| 亚洲精品写真福利| 一区二区视频在线看| 亚洲黄色尤物视频| 亚洲在线一区二区三区|