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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? sscrollbar.pas

?? AlphaControls是一個(gè)Delphi標(biāo)準(zhǔn)控件的集合
?? PAS
?? 第 1 頁 / 共 3 頁
字號:
    SM_SETNEWSKIN, SM_REFRESH : begin
      Perform(CM_RECREATEWND, 0, 0);
    end
  end;
end;

procedure TsScrollBar.DrawSlider(b: TBitmap);
begin
  Ci.Bmp := b;
  PaintItem(ScrollSliderIndex, SliderSectionName, Ci, True,
    SliderState,
    SliderRect,
    Point(SliderRect.Left, SliderRect.Top), b);
  Ci.Bmp := FCommonData.FCacheBmp;

  i1 := GetMaskIndex(FScrollSliderIndex, SliderSectionName, ItemGlyph);
  if IsValidImgIndex(i1) and
         (((Kind = sbVertical) and (ma[i1].Bmp.Height div 2 < HeightOf(FSliderRect))) or
         ((Kind = sbHorizontal) and (ma[i1].Bmp.Width div 2 < WidthOf(FSliderRect))))
            then begin
    p.x := FSliderRect.Left + (WidthOf(FSliderRect) - ma[i1].Bmp.Width div 3) div 2 + integer(SliderState = 2);
    p.y := FSliderRect.Top + (HeightOf(FSliderRect) - ma[i1].Bmp.Height div 2) div 2 + integer(SliderState = 2);
    PaintRasterGlyph(b, ma[i1].Bmp, p, SliderState, ma[i1].TransparentColor);
  end;
end;

procedure TsScrollBar.WMNCHitTest(var Message: TWMNCHitTest);
var
  i : integer;
begin
  if not ControlIsReady(Self) then Exit;
  if Skinable and Enabled and not (csDesigning in ComponentState) and (Self <> nil) then begin
    if PtInRect(SliderRect, CoordToPoint(SmallPointToPoint(Message.Pos))) or (SliderState = 2) then begin
      if SliderState <> 2 then begin
        SliderState := 1;
      end
      else begin
        i := CoordToPosition(CoordToPoint(Point(Message.Pos.X, Message.Pos.Y))) - MouseOffset;
        if Position <> i then begin
          DrawingForbidden := True;
          Position := i;
        end;
      end;
    end
    else
    if PtInRect(Btn1Rect, CoordToPoint(SmallPointToPoint(Message.Pos))) then begin
      if Btn1State <> 2 then begin
        Btn1State := 1;
      end;
    end
    else if PtInRect(Btn2Rect, CoordToPoint(SmallPointToPoint(Message.Pos))) then begin
      if Btn2State <> 2 then begin
        Btn2State := 1;
      end;
    end
    else if (SliderState = 2) then begin
      i := CoordToPosition(CoordToPoint(SmallPointToPoint(Message.Pos)));
      if Position <> i then begin
        DrawingForbidden := True;
        Position := i;
      end;
    end
    else begin
      SliderState := 0;
      Btn1State := 0;
      Btn2State := 0;
    end;
    if Self <> nil then UpdateBar;
  end;
  inherited;
end;

procedure TsScrollBar.OnBtnTimer(Sender: TObject);
begin
  if not Assigned(Timer) or (csDestroying in Timer.ComponentState) then Exit;
  if Btn1State = 2 then begin
    Position := FPosition - SmallChange;
  end
  else
  if Btn2State = 2 then begin
    Position := FPosition + SmallChange;
  end
  else begin
    if Assigned(Timer) then FreeAndNil(Timer);
  end;
end;

procedure TsScrollBar.PrepareBtnTimer;
begin
  if Assigned(Timer) then FreeAndNil(Timer);
  Timer := TTimer.Create(Self);
  Timer.OnTimer := OnBtnTimer;
  Timer.Interval := 100;
  Timer.Enabled := True;
end;

function TsScrollBar.PositionToCoord: integer;
begin
  if Enabled then begin
    if (Max - Min) <> 0 then
      if Kind = sbHorizontal then begin
        Result := FirstPoint + SliderSize div 2 + Round(Position * ((Width - 2 * FirstPoint - SliderSize) / (Max - Min)));
      end
      else begin
        Result := FirstPoint + SliderSize div 2 + Round(Position * ((Height - 2 * FirstPoint - SliderSize) / (Max - Min)));
      end
    else begin
      Result := 0;
    end;
  end
  else begin
    if Kind = sbHorizontal then begin
      Result := Width div 2;
    end
    else begin
      Result := Height div 2;
    end;
  end;
end;

function TsScrollBar.Skinable: boolean;
begin
  Result := Assigned(sSkinData) and sSkinData.Active;// IsValidSkinIndex(FCommonData.SkinIndex);
end;

procedure TsScrollBar.KeyDown(var Key: word; Shift: TShiftState);
begin
  case Key of
    VK_PRIOR:          Position := Position - LargeChange;
    VK_NEXT:           Position := Position + LargeChange;
    VK_END:            Position := Max;
    VK_HOME:           Position := Min;
    VK_LEFT, VK_UP:    Position := Position - SmallChange;
    VK_RIGHT, VK_DOWN: Position := Position + SmallChange;
  end;
  inherited;
end;

procedure TsScrollBar.WMGetDlgCode(var Msg: TWMGetDlgCode);
begin
  inherited;
  Msg.Result := DLGC_WANTARROWS;
end;

procedure TsScrollBar.WMPaint(var Msg: TMessage);
begin
  inherited;
  if not ((csDestroying in ComponentState) or (csLoading in ComponentState)) and Skinable then begin
    Paint;
    Msg.Result := 1;
  end;
end;

procedure TsScrollBar.WMNCPaint(var Msg: TMessage);
begin
  inherited;
  if Skinable then Msg.Result := 1;
end;

procedure TsScrollBar.CMMouseLeave(var Msg: TMessage);
begin
  if Skinable then begin
    Btn1State := 0;
    Btn2State := 0;
    if SliderState <> 2 then begin
      SliderState := 0;
      Bar1State := 0;
      Bar2State := 0;
    end;
{
    if Assigned(LinkedControl) then begin
      LinkedControl.Perform(CM_MOUSELEAVE, 0, 0);
      LinkedControl.Repaint;
      Application.ProcessMessages;
    end;
}
  {
    if Assigned(ParentSStyle) then begin
      p := ParentSStyle.FOwner.ClientToScreen(Point(ParentSStyle.FOwner.Left, ParentSStyle.FOwner.Top));
      r := Rect(p.x, p.y, p.x + ParentSStyle.FOwner.Width, p.y + ParentSStyle.FOwner.Height);
      p := Mouse.CursorPos;
      if PtInRect(r, p) and ParentSStyle.FMouseAbove then begin
        ParentSStyle.FMouseAbove := False;
        ParentSStyle.Invalidate;
      end;
    end;
  }
    UpdateBar;
  end else inherited;
end;

function TsScrollBar.SliderSectionName: string;
begin
  if Kind = sbHorizontal then begin
    Result := ScrollSlider + 'H';
  end
  else begin
    Result := ScrollSlider + 'V';
  end;
end;

procedure TsScrollBar.PrepareBarTimer;
begin
  if Assigned(Timer) then FreeAndNil(Timer);
  Timer := TTimer.Create(Self);
  Timer.OnTimer := OnBarTimer;
  Timer.Interval := 100;
  Timer.Enabled := True;
end;

procedure TsScrollBar.OnBarTimer(Sender: TObject);
begin
  if not Assigned(Timer) or (csDestroying in Timer.ComponentState) then Exit;
  if (Bar1State = 2) and (Position > CoordToPosition(ScreenToClient(Mouse.CursorPos))) then begin
    Position := Position - LargeChange;
  end
  else
  if (Bar2State = 2) and (Position < CoordToPosition(ScreenToClient(Mouse.CursorPos))) then begin
    Position := Position + LargeChange;
  end
  else begin
    if Assigned(Timer) then FreeAndNil(Timer);
  end;
end;

function TsScrollBar.Bar1Rect: TRect;
begin
  FBar1Rect.Left := 0;
  FBar1Rect.Top := 0;
  if Kind = sbHorizontal then begin
    FBar1Rect.Right := PositionToCoord;
    FBar1Rect.Bottom := Height;
  end
  else begin
    FBar1Rect.Right := Width;
    FBar1Rect.Bottom := PositionToCoord;
  end;
  Result := FBar1Rect;
end;

function TsScrollBar.Bar2Rect: TRect;
begin
  if Kind = sbHorizontal then begin
    FBar2Rect.Left := PositionToCoord;
    FBar2Rect.Top := 0;
    FBar2Rect.Right := Width;
    FBar2Rect.Bottom := Height;
  end
  else begin
    FBar2Rect.Left := 0;
    FBar2Rect.Top := PositionToCoord;
    FBar2Rect.Right := Width;
    FBar2Rect.Bottom := Height;
  end;
  Result := FBar2Rect;
end;

procedure TsScrollBar.CMMouseEnter(var Msg: TMessage);
//var
//  p : TPoint;
//  r : TRect;
begin
  if Skinable then begin
    Bar1State := 1;
    Bar2State := 1;

{
    if Assigned(LinkedControl) then begin
      SendMessage(TWinControl(LinkedControl).Handle, CM_MOUSEENTER, 0, 0);
      LinkedControl.Repaint;
      Application.ProcessMessages;
    end;
}
  {
    if Assigned(ParentSStyle) then begin
      p := ParentSStyle.FOwner.ClientToScreen(Point(ParentSStyle.FOwner.Left, ParentSStyle.FOwner.Top));
      r := Rect(p.x, p.y, p.x + ParentSStyle.FOwner.Width, p.y + ParentSStyle.FOwner.Height);
      p := Mouse.CursorPos;
      if PtInRect(r, p) and not ParentSStyle.FMouseAbove then begin
        ParentSStyle.FMouseAbove := True;
        ParentSStyle.Invalidate;
      end;
    end;
  }
    UpdateBar;
  end else inherited;
end;

function TsScrollBar.Btn1DRect: TRect;
var
  i : integer;
begin
  Result := Btn1Rect;
  if Kind = sbHorizontal then begin
    i := GetMaskIndex(Btn1SkinIndex, ArrowLeft, BordersMask);
    if (i > -1) and gd[FBtn1SkinIndex].ReservedBoolean then begin
      Result.Right := math.max(GetSystemMetrics(SM_CXHSCROLL), ma[i].Bmp.Width div 3);
    end;
  end
  else begin
    i := GetMaskIndex(Btn1SkinIndex, ArrowTop, BordersMask);
    if (i > -1) and gd[FBtn1SkinIndex].ReservedBoolean then begin
      Result.Bottom := math.max(GetSystemMetrics(SM_CYVSCROLL), ma[i].Bmp.Height div 2);
    end;
  end;
end;

procedure TsScrollBar.UpdateBar;
begin
  DrawingForbidden := False;
  if RepaintNeeded then Paint;
end;

procedure TsScrollBar.SetInteger(Index, Value: integer);
begin
  case Index of
    0 : begin
      if FBtn1State <> Value then begin
        RepaintNeeded := True;
        FBtn1State := Value;
        case Value of
          1, 2 : begin
            FBtn2State := 0;
            FSliderState := 0;
            FBar1State := 1;
            FBar2State := 1;
          end;
        end;
      end;
    end;
    1 : begin
      if FBtn2State <> Value then begin
        RepaintNeeded := True;
        FBtn2State := Value;
        case Value of
          1, 2 : begin
            FBtn1State := 0;
            FSliderState := 0;
            FBar1State := 1;
            FBar2State := 1;
          end;
        end;
      end;
    end;
    2 : begin
      if FBar1State <> Value then begin
        RepaintNeeded := True;
        FBar1State := Value;
        case Value of
          1, 2 : begin
            FBtn1State := 0;
            FBtn2State := 0;
            FSliderState := 0;
            FBar2State := 1;
          end;
        end;
      end;
    end;
    3 : begin
      if FBar2State <> Value then begin
        RepaintNeeded := True;
        FBar2State := Value;
        case Value of
          1, 2 : begin
            FBtn1State := 0;
            FBtn2State := 0;
            FSliderState := 0;
            FBar1State := 1;
          end;
        end;
      end;
    end;
    4 : begin
      if FSliderState <> Value then begin
        RepaintNeeded := True;
        FSliderState := Value;
        case Value of
          1, 2 : begin
            FBtn1State := 0;
            FBtn2State := 0;
            FBar1State := 1;
            FBar2State := 1;
          end;
        end;
      end;
    end;
  end;
end;

function TsScrollBar.Btn2DRect: TRect;
var
  i : integer;
begin
  Result := Btn2Rect;
  if Kind = sbHorizontal then begin
    i := GetMaskIndex(Btn2SkinIndex, ArrowRight, BordersMask);
    if (i > -1) and gd[FBtn2SkinIndex].ReservedBoolean then begin
      Result.Left := width - math.max(GetSystemMetrics(SM_CXHSCROLL), ma[i].Bmp.Width div 3);
    end;
  end
  else begin
    i := GetMaskIndex(Btn2SkinIndex, ArrowBottom, BordersMask);
    if (i > -1) and gd[FBtn2SkinIndex].ReservedBoolean then begin
      Result.Top := height - math.max(GetSystemMetrics(SM_CYVSCROLL), ma[i].Bmp.Height div 2);
    end;
  end;
end;

function TsScrollBar.BarIsHot: boolean;
begin
  Result := FCommonData.ControlIsActive;
//  if Assigned(ParentSStyle) then Result := Result or ParentSStyle.ControlIsActive;
end;

function TsScrollBar.WorkSize: integer;
begin
  if Kind = sbHorizontal then begin
    Result := Width - 2 * GetSystemMetrics(SM_CXHSCROLL);
  end
  else begin
    Result := Height - 2 * GetSystemMetrics(SM_CYVSCROLL);
  end;
end;

procedure TsScrollBar.ClearDontChange;
begin
  if Smooth then Exit;
  DontChange := False;
  Change(LastPosition);
  LastPosition := 0;
end;

procedure TsScrollBar.InitDontChange;
begin
  if Smooth then Exit;
  DontChange := True;
  LastPosition := LastPosition + Position;
end;

function TsScrollBar.CanFocus: Boolean;
begin
  Result := inherited CanFocus and TabStop;
end;

procedure TsScrollBar.SetDisabledKind(const Value: TsDisabledKind);
begin
  if FDisabledKind <> Value then begin
    FDisabledKind := Value;
    FCommonData.Invalidate;
  end;
end;

end.

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本高清无吗v一区| 亚洲超碰精品一区二区| 欧美日韩在线观看一区二区| 国产一区二区三区免费看| 亚洲成人午夜影院| 亚洲自拍与偷拍| 中文字幕精品一区二区三区精品 | 精品国产青草久久久久福利| 欧美主播一区二区三区美女| 成人精品视频一区| 成人永久看片免费视频天堂| 精品一区二区三区免费播放| 日本欧美一区二区| 免费在线一区观看| 亚洲成a人片在线观看中文| 亚洲美女偷拍久久| 亚洲欧美自拍偷拍| 国产欧美综合在线观看第十页| 欧美大白屁股肥臀xxxxxx| 91精品国产一区二区三区| 欧美一区二区三区思思人| 91在线一区二区三区| 成人性生交大片免费看在线播放| 粉嫩13p一区二区三区| 国产精品一区二区免费不卡 | 久久久夜色精品亚洲| 久久综合狠狠综合| 久久九九99视频| 久久久久久亚洲综合| 国产精品全国免费观看高清| 中文字幕在线播放不卡一区| 亚洲欧洲在线观看av| 亚洲综合一区二区精品导航| 亚洲大型综合色站| 久久成人免费网| 国产成人av福利| 99vv1com这只有精品| 91亚洲精品久久久蜜桃| 777午夜精品免费视频| 久久久精品国产免费观看同学| 国产欧美精品国产国产专区| 久久一区二区视频| 国产精品毛片久久久久久久| 洋洋av久久久久久久一区| 蜜臀国产一区二区三区在线播放| 老司机精品视频导航| 成人国产一区二区三区精品| 欧美无砖砖区免费| 久久免费看少妇高潮| 一区二区三区电影在线播| 日韩精品电影在线| 91亚洲大成网污www| 91国偷自产一区二区三区观看| 欧美日韩精品欧美日韩精品| 久久久久国产精品人| 亚洲小说欧美激情另类| 国产一区二区成人久久免费影院| 一本色道久久综合精品竹菊| 日韩女同互慰一区二区| 亚洲精品视频观看| 国产酒店精品激情| 3d动漫精品啪啪1区2区免费| 久久久高清一区二区三区| 亚洲国产三级在线| 成人性生交大片免费看视频在线| 欧美乱妇15p| 亚洲色图视频网| 国产乱码一区二区三区| 色婷婷亚洲精品| 欧美激情在线一区二区三区| 日本特黄久久久高潮| 色国产综合视频| 欧美一区国产二区| 亚洲一区二区三区激情| gogogo免费视频观看亚洲一| 日韩三级中文字幕| 天天色图综合网| 在线观看三级视频欧美| 国产精品视频一二三| 国产在线精品免费| 精品日韩欧美一区二区| 午夜精品久久久久久久蜜桃app| 91香蕉视频黄| 久久久五月婷婷| 国产又粗又猛又爽又黄91精品| 久久毛片高清国产| 成人视屏免费看| 一二三区精品福利视频| 欧美顶级少妇做爰| 麻豆成人av在线| 中文字幕第一页久久| 91麻豆免费视频| 日韩中文字幕av电影| 日韩精品专区在线影院观看| 国产精品一区二区久激情瑜伽| 国产精品丝袜黑色高跟| 欧美亚洲一区二区在线| 七七婷婷婷婷精品国产| 久久精品综合网| 在线视频国产一区| 麻豆国产欧美日韩综合精品二区| 精品久久一区二区| 99久久免费国产| 午夜精品久久一牛影视| 久久久精品免费网站| 欧美中文一区二区三区| 蜜臀精品一区二区三区在线观看| 欧美激情一区二区三区全黄| 欧美在线观看一二区| 国内精品国产三级国产a久久| 欧美激情一区三区| 日韩一级片网站| 91在线观看污| 韩国理伦片一区二区三区在线播放| 国产精品久久久久久妇女6080| 欧美精品tushy高清| 成人av在线资源| 天堂久久一区二区三区| 中文字幕亚洲区| 日韩欧美国产电影| 欧美亚洲动漫制服丝袜| 国产一区二区在线影院| 亚洲夂夂婷婷色拍ww47| 国产亚洲成年网址在线观看| 欧日韩精品视频| 99久久精品久久久久久清纯| 免费在线观看日韩欧美| 亚洲黄色尤物视频| 国产欧美一区二区精品性| 日韩欧美一二三| 欧美三级日韩在线| av电影天堂一区二区在线| 国产一区二区调教| 美女任你摸久久| 亚洲一区二区三区四区五区中文| 中文字幕精品在线不卡| 精品久久久久久综合日本欧美| 欧美日韩另类一区| 欧美在线观看视频一区二区三区| 大美女一区二区三区| 国产精品乡下勾搭老头1| 日韩精品视频网站| 亚洲成av人片| 肉色丝袜一区二区| 午夜在线电影亚洲一区| 午夜精品一区二区三区三上悠亚 | 欧美色倩网站大全免费| 日本大香伊一区二区三区| 波多野结衣视频一区| 丁香啪啪综合成人亚洲小说| 国产一区二区免费在线| 国产成人午夜精品影院观看视频| 国产在线国偷精品产拍免费yy| 精品在线播放午夜| 国产精品66部| 高清不卡一区二区在线| 99视频一区二区| 色婷婷av一区二区三区大白胸| 成人性视频网站| 色噜噜狠狠色综合中国| 92精品国产成人观看免费| 欧美在线你懂得| 欧美一区二区三区白人| 日韩精品专区在线影院重磅| 精品女同一区二区| 国产精品午夜电影| 一区二区三区欧美激情| 污片在线观看一区二区| 久久精品国产亚洲a| 国产成人精品免费一区二区| 99这里只有精品| 正在播放亚洲一区| 久久综合视频网| 亚洲欧美电影院| 日韩高清不卡一区二区三区| 韩国av一区二区三区| 成人av网站免费| 欧美日韩国产综合一区二区| 精品欧美乱码久久久久久1区2区| 国产女人aaa级久久久级| 亚洲综合免费观看高清完整版 | 一区在线播放视频| 天天综合天天做天天综合| 狠狠色综合日日| 99麻豆久久久国产精品免费 | 久久久精品天堂| 亚洲免费观看在线观看| 蜜臀久久99精品久久久久宅男| 国产精品自在在线| 欧美日韩国产在线播放网站| 亚洲精品一区二区三区四区高清 | 精品视频999| 亚洲国产精品二十页| 日韩电影免费一区| 99久久精品国产一区| 日韩女优毛片在线| 亚洲精品v日韩精品| 久久精品国内一区二区三区| 91视频在线观看免费| 欧美精品一区二区三区蜜桃 |