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

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

?? sscrollbox.pas

?? AlphaControls是一個Delphi標準控件的集合
?? PAS
?? 第 1 頁 / 共 2 頁
字號:
unit sScrollBox;
{$I sDefs.inc}

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ExtCtrls, sPanel, sScrollBar, sCommonData;

type

  TsScrollBox = class(TScrollingWinControl)
  private
    FBorderStyle: TBorderStyle;
    FCanvas: TControlCanvas;
    FCommonData : TsCommonData;
    VertOffset : integer;
    HorzOffset : integer;
    RangeY : integer;
    RangeX : integer;
    Scrolling : boolean;
    procedure OnVSBChange(Sender : TObject; OldValue : integer);
    procedure OnHSBChange(Sender : TObject; OldValue : integer);
    procedure SetBorderStyle(const Value: TBorderStyle);
    function GetCanvas: TCanvas;
  protected
    procedure RefreshScrolls;
    function GetVScrollInfo : TsScrollInfo;
    function GetHScrollInfo : TsScrollInfo;
    procedure ClearOffset(Kind : TScrollBarKind);
    procedure WMPaint(var Message: TWMPaint); message WM_PAINT;
    procedure WMMouseWheel(var Message: TMessage); message WM_MOUSEWHEEL;
  public
    VSBar : TsScrollBar;
    HSBar : TsScrollBar;
    Grip : TsGrip;
    constructor Create(AOwner: TComponent); override;
    procedure CreateParams(var Params: TCreateParams); override;
    destructor Destroy; override;
    procedure AfterConstruction; override;
    procedure Loaded; override;
    property Canvas: TCanvas read GetCanvas;
    procedure Invalidate; override;

//    procedure PaintWindow(DC: HDC); override;
    procedure PrepareCache;
    procedure Paint;
    procedure WndProc (var Message: TMessage); override;
  published
    property Align;
    property Anchors;
    property AutoScroll;
    property AutoSize;
    property BiDiMode;
    property BorderStyle: TBorderStyle read FBorderStyle write SetBorderStyle default bsNone;
    property CommonData : TsCommonData read FCommonData write FCommonData;
    property Constraints;
    property DockSite;
    property DragCursor;
    property DragKind;
    property DragMode;
    property Enabled;
    property Color nodefault;
    property Ctl3D;
    property Font;
    property ParentBiDiMode;
    property ParentColor;
    property ParentCtl3D;
    property ParentFont;
    property ParentShowHint;
    property PopupMenu;
    property ShowHint;
    property TabOrder;
    property TabStop;
    property Visible;
    property OnCanResize;
    property OnClick;
    property OnConstrainedResize;
    property OnContextPopup;
    property OnDblClick;
    property OnDockDrop;
    property OnDockOver;
    property OnDragDrop;
    property OnDragOver;
    property OnEndDock;
    property OnEndDrag;
    property OnEnter;
    property OnExit;
    property OnGetSiteInfo;
    property OnMouseDown;
    property OnMouseMove;
    property OnMouseUp;
    property OnMouseWheel;
    property OnMouseWheelDown;
    property OnMouseWheelUp;
    property OnResize;
    property OnStartDock;
    property OnStartDrag;
    property OnUnDock;
  end;

implementation

uses sGraphUtils, sConst, sMaskData, sVCLUtils, sUtils, sStyleSimply, math,
  sMessages, sShowMessages, sStoreUtils;

{ TsScrollBox }

procedure TsScrollBox.AfterConstruction;
begin
  inherited AfterConstruction;
  CommonData.Loaded;
//  RefreshScrolls;
end;

procedure TsScrollBox.ClearOffset(Kind: TScrollBarKind);
begin
  case Kind of
    sbVertical : begin
      if Assigned(VSBar) then begin
        // ! Exception arises if called in WndProc... Serge
        if not (csDesigning in ComponentState) then begin
          VSBar.Visible := False;
        end
        else begin
          if Assigned(VSBar) then FreeAndNil(VSBar);
        end;
      end;
    end
    else begin
      if Assigned(HSBar) then begin
        // ! Exception arises if destroying called in WndProc... Serge
        if not (csDesigning in ComponentState) then begin
          HSBar.Visible := False;
        end
        else begin
          if Assigned(HSBar) then FreeAndNil(HSBar);
        end;
      end;
    end;
  end;
end;

constructor TsScrollBox.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  FCommonData := TsCommonData.Create(Self, True);
  FCommonData.COC := COC_TsScrollBox;
  ControlStyle := [csAcceptsControls, csCaptureMouse, csClickEvents, csSetCaption, csDoubleClicks, csOpaque];
  Width := 185;
  Height := 41;
  FCanvas := TControlCanvas.Create;
  FCanvas.Control := Self;
  RangeY := 0;
  RangeX := 0;

  FBorderStyle := bsNone;
end;

procedure TsScrollBox.CreateParams(var Params: TCreateParams);
const
  BorderStyles: array[TBorderStyle] of DWORD = (0, WS_BORDER);
begin
  inherited CreateParams(Params);

  with Params do begin
    Style := Style or BorderStyles[FBorderStyle];

    if NewStyleControls and Ctl3D and (FBorderStyle = bsSingle) then  begin
      Style := Style and not WS_BORDER;
      ExStyle := ExStyle or WS_EX_CLIENTEDGE;
    end;
  end;
end;

destructor TsScrollBox.Destroy;
begin
  if Assigned(FCommonData) then FreeAndNil(FCommonData);
  if Assigned(FCanvas) then FreeAndNil(FCanvas);
  inherited Destroy;
end;

function TsScrollBox.GetCanvas: TCanvas;
begin
  Result := FCanvas;
end;

function TsScrollBox.GetHScrollInfo: TsScrollInfo;
var
  i : integer;
  Margin : integer; 
  SBI_H : TScrollBarInfo;
  w : integer;
begin
  Result.Visible := False;
  if not Assigned(HorzScrollBar) or not HorzScrollBar.IsScrollBarVisible then Exit;

  Margin := 1 + integer((BorderStyle <> bsNone) and Ctl3d);

  Result.Range := HorzScrollBar.Range;

  SBI_H.cbSize := SizeOf(TScrollBarInfo);
  if not GetScrollBarInfo(Handle, Integer(OBJID_HSCROLL), SBI_H) then Exit;
  w := WidthOf(SBI_H.rcScrollBar);

  Result.Page := w;//Width - 2;
  Result.Max := Result.Range - Result.Page;


  if Result.Max < 1 then begin
    Result.Visible := False;
    Exit;
  end;

  i := GetSystemMetrics(SM_CYHSCROLL);

  Result.Rect := Rect(
                      Left,
                      Top + Height - i - Margin,
                      Left + w,
                      Top + Height
                     );

  Result.Visible := True;
end;

function TsScrollBox.GetVScrollInfo: TsScrollInfo;
var
  i : integer;
  Margin : integer;
  SBI_V : TScrollBarInfo;
  h : integer;
begin
  Result.Visible := False;
  if not Assigned(VertScrollBar) or not VertScrollBar.IsScrollBarVisible or ((csDesigning in ComponentState) and not ControlIsReady(Self)) then Exit;

  Margin := 1 + integer((BorderStyle <> bsNone) and Ctl3d);

  Result.Range := VertScrollBar.Range;

  SBI_V.cbSize := SizeOf(TScrollBarInfo);
  if not GetScrollBarInfo(Handle, Integer(OBJID_VSCROLL), SBI_V) then Exit;
  h := HeightOf(SBI_V.rcScrollBar);

  Result.Page := h;//Height - 2;
  Result.Max := Result.Range - Result.Page;

  if Result.Max < 1 then begin
    Result.Visible := False;
    Exit;
  end;

  i := GetSystemMetrics(SM_CXVSCROLL);

  if BiDiMode = bdRightToLeft then begin
    Result.Rect := Rect(
                      Left,
                      Top,
                      Left + i + Margin,
                      Top + h//Height
                     );
  end
  else begin
    Result.Rect := Rect(
                      Left + Width - i - Margin,
                      Top,
                      Left + Width,
                      Top + h
                     );
  end;

  Result.Visible := True;
end;

procedure TsScrollBox.Invalidate;
begin
  inherited;
//  RefreshScrolls;
end;

procedure TsScrollBox.Loaded;
begin
  inherited Loaded;
  FCommonData.Loaded;
//  RefreshScrolls;
end;

procedure TsScrollBox.OnHSBChange(Sender: TObject; OldValue: integer);
begin
  if Assigned(HSBar) then begin
    Scrolling := True;
    HSBar.DrawingForbidden := True;
    inc(HorzOffset, OldValue - HSBar.Position);
    SendMessage(Handle, WM_HSCROLL, MakeWParam(SB_THUMBPOSITION, HSBar.Position), 0);
    if Assigned(HSBar) then begin
      HSBar.DrawingForbidden := False;
    end else Exit;
    Scrolling := False;
    CommonData.BgChanged := False;
    if not HSBar.DontChange then begin
      Repaint;
    end;
  end;
end;

procedure TsScrollBox.OnVSBChange(Sender: TObject; OldValue: integer);
begin
  if Assigned(VSBar) then begin
    Scrolling := True;
    VSBar.DrawingForbidden := True;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
蜜臀精品久久久久久蜜臀| 色综合天天综合在线视频| 成人一道本在线| 精品视频在线免费| 欧美韩国日本不卡| 美女视频一区二区| 欧美日韩免费一区二区三区| 国产拍揄自揄精品视频麻豆| 香蕉影视欧美成人| 99国产精品99久久久久久| 日韩一级黄色片| 亚洲影院理伦片| 成人a区在线观看| 久久久久久久久久久电影| 午夜精品福利一区二区三区av | 91精品久久久久久久99蜜桃| 中文字幕免费一区| 久久超碰97人人做人人爱| 欧美日韩精品免费观看视频| 国产精品理伦片| 国产一区高清在线| 日韩一级大片在线| 日韩精品成人一区二区在线| 91黄色激情网站| 亚洲精品视频在线看| 成人小视频免费观看| 国产午夜精品久久久久久久| 久久99精品久久久久| 欧美大片在线观看| 久99久精品视频免费观看| 4438x亚洲最大成人网| 亚洲成人一区二区| 欧美日韩国产首页| 午夜不卡在线视频| 在线成人免费视频| 奇米四色…亚洲| 日韩欧美一区中文| 国内成人免费视频| 久久婷婷国产综合精品青草| 国产一区美女在线| 久久精品免视看| 成人一区二区视频| 综合精品久久久| 99久久国产综合精品女不卡| 中文一区二区完整视频在线观看| 成人h动漫精品一区二区| 自拍偷拍亚洲综合| 欧美亚洲高清一区二区三区不卡| 亚洲一二三四在线| 欧美日韩一区二区三区四区五区| 亚洲成av人片在线观看无码| 4438x亚洲最大成人网| 国产一区二区三区四| 日本一区二区动态图| 91在线观看污| 亚洲高清视频的网址| 日韩亚洲欧美一区二区三区| 狠狠色综合播放一区二区| 国产亚洲欧美色| 91麻豆自制传媒国产之光| 亚洲第一激情av| 精品处破学生在线二十三| 成人激情图片网| 亚洲精品国产视频| 欧美一级免费观看| 国产成人综合视频| 伊人一区二区三区| 精品久久久久久久久久久久久久久| 国产成人精品三级| 亚洲风情在线资源站| 久久久久久久久99精品| 91精品福利在线| 激情综合色丁香一区二区| 国产精品高潮呻吟| 欧美二区乱c少妇| 国产成人aaaa| 日本在线播放一区二区三区| 国产欧美日韩综合| 欧美日本一道本| 99久久综合99久久综合网站| 日韩精品亚洲一区二区三区免费| 国产精品伦一区| 日韩欧美电影一区| 欧美综合久久久| 国产成人免费网站| 日韩国产欧美在线视频| 综合av第一页| 国产欧美一区二区精品婷婷| 欧美剧情片在线观看| av电影在线观看一区| 精品午夜一区二区三区在线观看| 亚洲永久精品大片| 国产精品久久久久久久久免费丝袜| 91精品国产综合久久福利| 91尤物视频在线观看| 国产很黄免费观看久久| 免费成人av资源网| 亚欧色一区w666天堂| 亚洲精品成人在线| 中文字幕精品一区二区三区精品| 欧美不卡一区二区| 884aa四虎影成人精品一区| www.亚洲免费av| 国产jizzjizz一区二区| 韩国精品一区二区| 日本一区中文字幕| 亚洲成av人片一区二区梦乃| 亚洲乱码中文字幕| 亚洲色图另类专区| 国产精品久久久久aaaa| 日本一二三四高清不卡| 久久免费视频色| 久久综合资源网| 欧美精品一区二区三区一线天视频 | 国产91精品露脸国语对白| 激情六月婷婷久久| 国产在线不卡视频| 国产在线视频一区二区三区| 免费在线观看不卡| 日韩影院精彩在线| 日本美女一区二区三区| 日本不卡一区二区三区高清视频| 亚洲成人动漫精品| 琪琪久久久久日韩精品| 美女精品自拍一二三四| 精品一区二区日韩| 风间由美性色一区二区三区| www.亚洲色图| 欧美亚一区二区| 欧美精品三级日韩久久| 日韩午夜在线影院| 精品国产髙清在线看国产毛片| 欧美精品一区二区久久婷婷| 日本一区二区视频在线| 亚洲特级片在线| 亚洲愉拍自拍另类高清精品| 日本最新不卡在线| 国产呦精品一区二区三区网站| 成人黄色国产精品网站大全在线免费观看 | 91免费视频网址| 欧美亚洲综合在线| 欧美一区二区网站| 久久久久久久久久看片| 亚洲人成人一区二区在线观看| 一区二区三区中文字幕| 日韩精品三区四区| 国产精品18久久久久久vr| 91网站在线播放| 欧美一区二区三区在线观看| 国产欧美一区二区精品性| 亚洲一区二区在线免费观看视频 | 欧美日韩综合在线免费观看| 777午夜精品视频在线播放| 久久久不卡网国产精品二区| 亚洲婷婷综合久久一本伊一区| 亚洲成人av中文| 成人午夜又粗又硬又大| 欧美男生操女生| 国产精品三级视频| 免费观看日韩电影| 97久久超碰精品国产| 日韩午夜在线播放| 亚洲精品日韩一| 国内精品免费**视频| 欧美日韩一区中文字幕| 亚洲精品一区二区三区蜜桃下载| 一区二区三区av电影| 国产做a爰片久久毛片| 欧美日韩在线三级| 国产精品久久久99| 国产在线一区观看| 91精品中文字幕一区二区三区| 国产精品久久久久久久久果冻传媒| 亚洲成av人片www| 99vv1com这只有精品| 久久久久久**毛片大全| 首页国产丝袜综合| 91久久久免费一区二区| 国产亚洲女人久久久久毛片| 日韩激情av在线| 欧美在线视频全部完| 亚洲欧洲日韩在线| 国产盗摄一区二区| 26uuu色噜噜精品一区二区| 亚洲成av人**亚洲成av**| 色吧成人激情小说| 国产精品久久久久一区二区三区| 激情另类小说区图片区视频区| 欧美日韩电影在线| 亚洲自拍都市欧美小说| 一本大道久久a久久精品综合| 国产亚洲精品aa| 国产一区二区三区国产| 日韩久久精品一区| 日本不卡的三区四区五区| 欧美日韩欧美一区二区| 亚洲不卡av一区二区三区| 欧美色手机在线观看| 亚洲午夜激情网页| 欧美精品视频www在线观看|