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

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

?? suitrackbar.pas

?? 一套還不錯的DELPHI皮膚控件!
?? PAS
?? 第 1 頁 / 共 2 頁
字號:
////////////////////////////////////////////////////////////////////////////////
//
//
//  FileName    :   SUITrackBar.pas
//  Creator     :   Shen Min
//  Date        :   2002-11-20 V1-V3
//                  2003-06-30 V4
//  Comment     :
//
//  Copyright (c) 2002-2003 Sunisoft
//  http://www.sunisoft.com
//  Email: support@sunisoft.com
//
////////////////////////////////////////////////////////////////////////////////

unit SUITrackBar;

interface

{$I SUIPack.inc}

uses Windows, Messages, SysUtils, Classes, Controls, Graphics, ExtCtrls, Forms,
     Math,
     SUIImagePanel, SUIThemes, SUIProgressBar, SUIMgr;

type
    TsuiTrackBar = class(TCustomPanel)
    private
        m_BarImage : TPicture;
        m_Timer : TTimer;
        m_Slider : TsuiImagePanel;
        m_Min : Integer;
        m_Max : Integer;
        m_Position : Integer;
        m_LastPos : Integer;
        m_Orientation : TsuiProgressBarOrientation;
        m_FileTheme : TsuiFileTheme;        
        m_UIStyle : TsuiUIStyle;
        m_ShowTick : Boolean;
        m_Transparent : Boolean;
        m_OnChange : TNotifyEvent;
        m_CustomPicture : Boolean;
        m_LastChange : Integer;

        m_bSlidingFlag : Boolean;
        m_MouseDownPos : Integer;
        m_Frequency : Integer;

        procedure SetBarImage(const Value: TPicture);
        procedure SetMax(const Value: Integer);
        procedure SetMin(const Value: Integer);
        procedure SetPosition(const Value: Integer);
        procedure SetUIStyle(const Value: TsuiUIStyle);
        procedure SetOrientation(const Value: TsuiProgressBarOrientation);
        function GetSliderImage: TPicture;
        procedure SetSliderImage(const Value: TPicture); virtual;
        procedure SetTransparent(const Value: Boolean);

        procedure UpdateControl();
        procedure UpdateSlider();
        function GetSliderPosFromPosition() : TPoint;
        function GetPositionFromFromSliderPos(X, Y : Integer) : Integer;
        procedure UpdatePositionValue(X, Y : Integer; Update : Boolean);
        procedure SetPageSize(const Value: Integer);
        procedure SetLineSize(const Value: Integer);
        procedure SetShowTick(const Value: Boolean);        
        procedure SetFileTheme(const Value: TsuiFileTheme);
        procedure SetFrequency(const Value: Integer);

        procedure OnSliderMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
        procedure OnSliderMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
        procedure OnTimer(Sender : TObject);
        procedure SetSize();
        procedure PaintTick(const Buf : TBitmap);

        procedure WMERASEBKGND(var Msg : TMessage); message WM_ERASEBKGND;
        procedure WMGetDlgCode(var Msg: TWMGetDlgCode); message WM_GETDLGCODE;
        procedure CMFocusChanged(var Msg: TCMFocusChanged); message CM_FOCUSCHANGED;

    protected
        m_PageSize : Integer;
        m_LineSize : Integer;

        procedure UpdatePicture(); virtual;
        function CustomPicture() : Boolean; virtual;
        procedure Paint(); override;
        procedure Resize(); override;
        procedure MouseMove(Shift: TShiftState; X, Y: Integer); override;
        procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override;
        procedure MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override;
        procedure KeyDown(var Key: word; Shift: TShiftState); override;
        procedure Notification(AComponent: TComponent; Operation: TOperation); override;

        function SliderTransparent() : boolean; virtual;

        property LastChange : Integer read m_LastChange;

    public
        m_BarImageBuf : TBitmap;

        constructor Create(AOwner : TComponent); override;
        destructor Destroy(); override;

        property UseCustomPicture : Boolean read m_CustomPicture write m_CustomPicture;

    published
        property Orientation : TsuiProgressBarOrientation read m_Orientation write SetOrientation;
        property FileTheme : TsuiFileTheme read m_FileTheme write SetFileTheme;
        property UIStyle : TsuiUIStyle read m_UIStyle write SetUIStyle;
        property BarImage : TPicture read m_BarImage write SetBarImage;
        property SliderImage : TPicture read GetSliderImage write SetSliderImage;
        property Max : Integer read m_Max write SetMax;
        property Min : Integer read m_Min write SetMin;
        property Position : Integer read m_Position write SetPosition;
        property PageSize : Integer read m_PageSize write SetPageSize;
        property LineSize : Integer read m_LineSize write SetLineSize;
        property ShowTick : Boolean read m_ShowTick write SetShowTick;
        property Transparent : Boolean read m_Transparent write SetTransparent;
        property Frequency : Integer read m_Frequency write SetFrequency;

        property Align;
        property Alignment;
        property BiDiMode;
        property Anchors;
        property Color;
        property DragKind;
        property DragMode;
        property Enabled;
        property ParentBiDiMode;
        property ParentFont;
        property ParentColor;
        property ParentShowHint;
        property ShowHint;
        property TabOrder;
        property TabStop;
        property Visible;

        property OnChange : TNotifyEvent read m_OnChange write m_OnChange;
        property OnCanResize;
        property OnClick;
        property OnContextPopup;
        property OnDockDrop;
        property OnDockOver;
        property OnDblClick;
        property OnDragDrop;
        property OnDragOver;
        property OnEndDock;
        property OnEndDrag;
        property OnEnter;
        property OnExit;
        property OnMouseDown;
        property OnMouseMove;
        property OnMouseUp;
        property OnResize;
        property OnStartDock;
        property OnStartDrag;
        property OnUnDock;
    end;

    TsuiScrollTrackBar = class(TsuiTrackBar)
    private
        function GetSliderVisible: Boolean;
        procedure SetSliderVisible(const Value: Boolean);

    protected
        function SliderTransparent() : boolean; override;
        function CustomPicture() : Boolean; override;
        
    public
        procedure UpdateSliderSize();
        property SliderVisible : Boolean read GetSliderVisible write SetSliderVisible;
        property LastChange;
    end;

implementation

uses SUIPublic;

{ TsuiTrackBar }

constructor TsuiTrackBar.Create(AOwner: TComponent);
begin
    inherited;

    ControlStyle := ControlStyle - [csAcceptsControls];
    m_BarImageBuf := TBitmap.Create();

    m_BarImage := TPicture.Create();
    
    m_Slider := TsuiImagePanel.Create(self);
    m_Slider.Parent := self;
    m_Slider.OnMouseDown := OnSliderMouseDown;
    m_Slider.OnMouseUp := OnSliderMouseUp;

    m_Timer := nil;

    Min := 0;
    Max := 10;
    Position := 0;
    m_LastPos := 0;
    Orientation := suiHorizontal;
    PageSize := 2;
    LineSize := 1;
    m_ShowTick := true;
    ParentColor := true;

    m_bSlidingFlag := false;
    TabStop := true;
    m_CustomPicture := false;
    m_Frequency := 1;
    m_LastChange := 0;

    UIStyle := GetSUIFormStyle(AOwner);
    UpdateSlider();
end;

destructor TsuiTrackBar.Destroy;
begin
    m_Slider.Free();
    m_Slider := nil;

    m_BarImage.Free();
    m_BarImage := nil;

    m_BarImageBuf.Free();
    m_BarImageBuf := nil;

    inherited;
end;

function TsuiTrackBar.GetSliderPosFromPosition: TPoint;
var
    nY : Integer;
begin
    if m_Orientation = suiHorizontal then
    begin
        nY := Height - m_Slider.Height;
        if nY < 0 then
            nY := 0;
        Result.Y := nY div 2;
        if m_Max = m_Min then
            Result.X := 0
        else
            Result.X := ((m_Position - m_Min) * (Width - m_Slider.Width)) div (m_Max - m_Min);
    end
    else
    begin
        nY := Width - m_Slider.Width;
        if nY < 0 then
            nY := 0;
        Result.X := nY div 2;
        if m_Max = m_Min then
            Result.Y := 0
        else
            Result.Y := ((m_Position - m_Min) * (Height - m_Slider.Height)) div (m_Max - m_Min);
    end;
end;

function TsuiTrackBar.GetSliderImage: TPicture;
begin
    Result := m_Slider.Picture;
end;

procedure TsuiTrackBar.Paint;
var
    Buf : TBitmap;
    nTop : Integer;
    R : TRect;
begin
    Buf := TBitmap.Create();
    Buf.Width := Width;
    Buf.Height := Height;

    if m_Transparent then
    begin
        DoTrans(Buf.Canvas, self);
    end
    else
    begin
        Buf.Canvas.Brush.Color := Color;
        Buf.Canvas.FillRect(Rect(0, 0, Buf.Width, Buf.Height));
    end;

    if m_Orientation = suiHorizontal then
    begin
        nTop := (Height - m_BarImage.Height) div 2;
        BitBlt(
            Buf.Canvas.Handle,
            0,
            nTop,
            Buf.Width,
            nTop + m_BarImage.Height,
            m_BarImageBuf.Canvas.Handle,
            0,
            0,
            SRCCOPY
        );
    end
    else
    begin
        nTop := (Width - m_BarImage.Height) div 2;
        BitBlt(
            Buf.Canvas.Handle,
            nTop,
            0,
            nTop + m_BarImage.Width,
            Height,
            m_BarImageBuf.Canvas.Handle,
            0,
            0,
            SRCCOPY
        );
    end;

    if Focused and TabStop then
    begin
        R := Rect(0, 0, Width, Height);
        Buf.Canvas.Brush.Style := bsSolid;
        Buf.Canvas.DrawFocusRect(R);
    end;
    if m_ShowTick then
        PaintTick(Buf);
    Canvas.Draw(0, 0, Buf);

    Buf.Free();
end;

procedure TsuiTrackBar.SetBarImage(const Value: TPicture);
begin
    m_BarImage.Assign(Value);

    UpdateControl();
end;

procedure TsuiTrackBar.SetMax(const Value: Integer);
begin
    if m_Max = Value then
        Exit;
    m_Max := Value;
    if m_Max < m_Min then
        m_Max := m_Min;
    if m_Max < m_Position then
        m_Position := m_Max;
    UpdateSlider();
end;

procedure TsuiTrackBar.SetMin(const Value: Integer);
begin
    if m_Min = Value then
        Exit;
    m_Min := Value;
    if m_Min > m_Max then
        m_Min := m_Max;
    if m_Min > m_Position then
        m_Position := m_Min;
    UpdateSlider();
end;

procedure TsuiTrackBar.SetOrientation(const Value: TsuiProgressBarOrientation);
begin
    if m_Orientation = Value then
        Exit;

    m_Orientation := Value;
    UpdateControl();
end;

procedure TsuiTrackBar.SetPosition(const Value: Integer);
begin
    if Value < m_Min then
        m_Position := m_Min
    else if Value > m_Max then
        m_Position := m_Max
    else
        m_Position := Value;

    UpdateSlider();
end;

procedure TsuiTrackBar.SetSliderImage(const Value: TPicture);
begin
    m_Slider.Picture.Assign(Value);
    Repaint();
end;

procedure TsuiTrackBar.SetUIStyle(const Value: TsuiUIStyle);
begin
    m_UIStyle := Value;

    UpdateControl();
{$IFDEF RES_MACOS}
    if m_UIStyle = MacOS then
        Transparent := true;
{$ENDIF}
end;

procedure TsuiTrackBar.UpdateSlider;
var
    SliderPos : TPoint;
begin
    SliderPos := GetSliderPosFromPosition();
    PlaceControl(m_Slider, SliderPos);
    Repaint();
    if m_Position <> m_LastPos then
    begin
        m_LastChange := m_Position - m_LastPos;
        m_LastPos := m_Position;
        if Assigned(m_OnChange) then
            m_OnChange(self);
    end;
end;

procedure TsuiTrackBar.Resize;
begin
    inherited;

    UpdateControl();
end;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精选在线观看| 久久精品国产精品亚洲红杏 | 亚洲黄色在线视频| 波多野洁衣一区| 国产精品伦理一区二区| 成人动漫一区二区| 自拍偷在线精品自拍偷无码专区 | 国产在线精品国自产拍免费| 国产欧美日韩久久| jlzzjlzz亚洲女人18| 亚洲精品日韩一| 91精品麻豆日日躁夜夜躁| 极品少妇一区二区| 国产精品免费aⅴ片在线观看| 91啪九色porn原创视频在线观看| 亚洲小说春色综合另类电影| 日韩天堂在线观看| 成人免费视频国产在线观看| 一区二区三区四区精品在线视频| 这里是久久伊人| 国产精品一级黄| 亚洲精品欧美专区| 精品国产一区二区三区av性色 | 91老师国产黑色丝袜在线| 午夜久久电影网| 久久久久国产免费免费| 91麻豆精品秘密| 美女精品自拍一二三四| 亚洲视频一二区| 日韩视频免费直播| 色哟哟欧美精品| 国产一区二区三区免费观看| 亚洲精品老司机| 久久久久久99久久久精品网站| 91年精品国产| 黑人巨大精品欧美黑白配亚洲| 亚洲人成网站在线| 亚洲色图欧美激情| 337p亚洲精品色噜噜| 大尺度一区二区| 青青青伊人色综合久久| 亚洲三级电影全部在线观看高清| 日韩精品一区二区三区视频播放 | 91精品国产一区二区人妖| 波多野结衣亚洲| 麻豆精品视频在线| 亚洲一级电影视频| 自拍偷拍亚洲综合| 中文字幕国产一区二区| 欧美成人a∨高清免费观看| 欧美亚洲一区二区在线观看| 岛国一区二区三区| 精品无码三级在线观看视频| 性做久久久久久久久| 亚洲精品综合在线| 一区在线中文字幕| 国产午夜精品一区二区| 日韩免费高清av| 在线成人av网站| 欧美亚洲动漫精品| 99国产精品国产精品久久| 国产成人精品三级| 国产乱子轮精品视频| 麻豆精品视频在线| 六月丁香婷婷久久| 美女免费视频一区| 美女高潮久久久| 日韩和的一区二区| 天堂影院一区二区| 亚洲成人激情自拍| 亚洲国产精品影院| 亚洲123区在线观看| 日日夜夜免费精品| 日日嗨av一区二区三区四区| 日韩精品每日更新| 性做久久久久久久免费看| 亚洲国产一区二区a毛片| 亚洲一区中文日韩| 天涯成人国产亚洲精品一区av| 一区二区三区波多野结衣在线观看| 中文字幕在线观看一区| 1区2区3区精品视频| 亚洲三级在线免费| 亚洲自拍偷拍九九九| 亚洲高清久久久| 麻豆精品在线播放| 国产精品伊人色| 成人午夜电影久久影院| av一本久道久久综合久久鬼色| 色香蕉成人二区免费| 欧美综合一区二区| 在线播放欧美女士性生活| 欧美精品日韩一区| 欧美精品一区在线观看| 国产三级精品在线| 亚洲人成电影网站色mp4| 亚洲国产欧美在线| 另类小说一区二区三区| 成人午夜在线视频| 日本久久精品电影| 日韩欧美一区二区视频| 国产欧美一区二区精品性色超碰 | 男女性色大片免费观看一区二区| 久久综合综合久久综合| 国产成人av一区二区三区在线| 国产美女视频一区| 一本久久a久久免费精品不卡| 欧美日韩亚洲综合在线 | 亚洲日本在线a| 亚洲成人综合在线| 久久精品国产亚洲aⅴ| 成人手机在线视频| 欧美日韩1区2区| 久久精品日产第一区二区三区高清版| 国产精品美女久久久久aⅴ| 亚洲成人手机在线| 国产精品资源在线看| 91福利国产精品| 久久这里只有精品6| 一区二区三区成人| 国产精品自拍一区| 欧美精品日韩一本| 国产精品麻豆视频| 日本不卡中文字幕| 成人黄色一级视频| 日韩一级精品视频在线观看| 日韩一区日韩二区| 精品在线你懂的| 欧美日韩激情在线| 中文字幕av一区二区三区高| 日韩一区欧美二区| 一本大道久久精品懂色aⅴ| 精品嫩草影院久久| 香蕉久久一区二区不卡无毒影院| 国产不卡视频在线播放| 日韩一级在线观看| 亚洲狠狠爱一区二区三区| 国产成人久久精品77777最新版本| 欧美肥胖老妇做爰| 亚洲欧美一区二区久久| 国产大片一区二区| 日韩女优制服丝袜电影| 亚洲六月丁香色婷婷综合久久 | 亚洲激情第一区| 99国产精品国产精品久久| 26uuu国产日韩综合| 午夜精品久久久久久久| 色一情一乱一乱一91av| 中文字幕国产一区| 国产精品中文有码| 精品国产制服丝袜高跟| 日本女人一区二区三区| 色综合天天综合网天天狠天天 | 亚洲制服欧美中文字幕中文字幕| 成人黄色电影在线 | 久久一区二区三区四区| 日韩在线播放一区二区| 欧美精品精品一区| 亚洲一区二区欧美激情| 91一区二区三区在线观看| 一区二区三区欧美| 94色蜜桃网一区二区三区| 中文字幕精品一区二区精品绿巨人 | 欧美人与禽zozo性伦| 亚洲高清免费观看高清完整版在线观看| 色综合天天在线| 中文字幕亚洲综合久久菠萝蜜| 成人免费av网站| 中文字幕日韩av资源站| 91色porny在线视频| 一区二区在线观看免费| 欧洲生活片亚洲生活在线观看| 亚洲猫色日本管| 在线观看区一区二| 亚洲aaa精品| 日韩欧美国产1| 国产精品一区专区| 国产欧美精品一区二区色综合 | 一区二区三区美女| 欧美午夜理伦三级在线观看| 亚洲一区二区在线视频| 欧美日韩国产小视频| 天天av天天翘天天综合网色鬼国产 | 欧美一级欧美一级在线播放| 久久成人免费电影| 国产清纯白嫩初高生在线观看91| 国产成人午夜视频| 国产精品对白交换视频 | 亚洲少妇30p| 欧美日本一道本| 极品少妇xxxx精品少妇偷拍| 欧美国产综合色视频| 色先锋资源久久综合| 日韩国产欧美视频| 国产女人aaa级久久久级| 色欲综合视频天天天| 日本欧美一区二区在线观看| 久久精品这里都是精品| 欧美主播一区二区三区美女| 久久99精品视频|