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

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

?? suitrackbar.pas

?? 一套還不錯的DELPHI皮膚控件!
?? PAS
?? 第 1 頁 / 共 2 頁
字號:
procedure TsuiTrackBar.MouseMove(Shift: TShiftState; X, Y: Integer);
begin
    inherited;

    if not m_bSlidingFlag then
    begin
        if (X < 0) or (X > Width) or (Y < 0) or (Y > Height) then
            if m_Timer <> nil then
            begin
                m_Timer.Free();
                m_Timer := nil;
            end;

        Exit;
    end;

    UpdatePositionValue(X, Y, false);
    PlaceControl(m_Slider, GetSliderPosFromPosition());

    if m_Position <> m_LastPos then
    begin
        m_LastChange := m_Position - m_LastPos;
        if Assigned(m_OnChange) then
            m_OnChange(self);
        m_LastPos := m_Position;
    end;
end;

procedure TsuiTrackBar.OnSliderMouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
    if m_Orientation = suiHorizontal then
        m_MouseDownPos := X
    else
        m_MouseDownPos := Y;
    m_bSlidingFlag := true;
    if CanFocus and Enabled then
        SetFocus();

    SetCapture(Handle);
    if Assigned(OnMouseDown) then
        OnMouseDown(self, Button, Shift, m_Slider.Left + X, m_Slider.Top + Y);
end;

procedure TsuiTrackBar.MouseDown(Button: TMouseButton; Shift: TShiftState;
  X, Y: Integer);
begin
    inherited;

    if Button <> mbLeft then
        Exit;

    if m_Orientation = suiHorizontal then
    begin
        if X > GetSliderPosFromPosition().X then
            Position := Math.Min(Position + m_PageSize, GetPositionFromFromSliderPos(X, Y))
        else if X < GetSliderPosFromPosition().X then
            Position := Math.Max(Position - m_PageSize, GetPositionFromFromSliderPos(X, Y))
    end
    else
    begin
        if Y > GetSliderPosFromPosition().Y then
            Position := Math.Min(Position + m_PageSize, GetPositionFromFromSliderPos(X, Y))
        else if Y < GetSliderPosFromPosition().Y then
            Position := Math.Max(Position - m_PageSize, GetPositionFromFromSliderPos(X, Y))
    end;

    if m_Timer = nil then
    begin
        m_Timer := TTimer.Create(nil);
        m_Timer.OnTimer := OnTimer;
        m_Timer.Interval := 100;
        m_Timer.Enabled := true;
    end;
    if CanFocus() and Enabled then
        SetFocus();
end;

procedure TsuiTrackBar.MouseUp(Button: TMouseButton; Shift: TShiftState; X,
  Y: Integer);
begin
    inherited;

    if m_Timer <> nil then
    begin
        m_Timer.Free();
        m_Timer := nil;
    end;

    m_bSlidingFlag := false;
    ReleaseCapture();
end;

function TsuiTrackBar.GetPositionFromFromSliderPos(X, Y: Integer): Integer;
begin
    if m_Orientation = suiHorizontal then
    begin
        if Width = m_Slider.Width then
            Result := 0
        else
            Result := Round((X - m_Slider.Width div 2) * (m_Max - m_Min) / (Width - m_Slider.Width)) + m_Min
    end
    else
    begin
        if Height = m_Slider.Height then
            Result := 0
        else
            Result := Round((Y - m_Slider.Height div 2) * (m_Max - m_Min) / (Height - m_Slider.Height)) + m_Min;
    end;
end;

procedure TsuiTrackBar.SetSize();
begin
    if m_Orientation = suiHorizontal then
        Height := Math.Max(m_BarImage.Height, m_Slider.Height)
    else
        Width := Math.Max(m_BarImage.Height, m_Slider.Width);
    Repaint();
end;

procedure TsuiTrackBar.WMERASEBKGND(var Msg: TMessage);
begin
    // do nothing
end;

procedure TsuiTrackBar.UpdatePicture;
var
    R : TRect;
    bFileTheme : boolean;
    OutUIStyle : TsuiUIStyle;
begin
    if CustomPicture() then
        Exit;
    bFileTheme := UsingFileTheme(m_FileTheme, m_UIStyle, OutUIStyle);
    if m_Orientation = suiHorizontal then
    begin
        if bFileTheme then
        begin
            m_FileTheme.GetBitmap(SUI_THEME_TRACKBAR_BAR, m_BarImage.Bitmap);
            m_FileTheme.GetBitmap(SUI_THEME_TRACKBAR_SLIDER, SliderImage.Bitmap);
        end
        else
        begin
            GetInsideThemeBitmap(OutUIStyle, SUI_THEME_TRACKBAR_BAR, m_BarImage.Bitmap);
            GetInsideThemeBitmap(OutUIStyle, SUI_THEME_TRACKBAR_SLIDER, SliderImage.Bitmap);
        end;

        m_BarImageBuf.Width := Width;
        m_BarImageBuf.Height := m_BarImage.Height;
        R := Rect(0, 0, m_BarImageBuf.Width, m_BarImageBuf.Height);
        m_BarImageBuf.Canvas.Brush.Color := Color;
        m_BarImageBuf.Canvas.FillRect(R);
        SpitDrawHorizontal(m_BarImage.Bitmap, m_BarImageBuf.Canvas, R, false);
    end
    else
    begin
        if bFileTheme then
        begin
            m_FileTheme.GetBitmap(SUI_THEME_TRACKBAR_BAR, m_BarImage.Bitmap);
            m_FileTheme.GetBitmap(SUI_THEME_TRACKBAR_SLIDER_V, SliderImage.Bitmap);
        end
        else
        begin
            GetInsideThemeBitmap(OutUIStyle, SUI_THEME_TRACKBAR_BAR, m_BarImage.Bitmap);
            GetInsideThemeBitmap(OutUIStyle, SUI_THEME_TRACKBAR_SLIDER_V, SliderImage.Bitmap);
        end;

        m_BarImageBuf.Width := Height;
        m_BarImageBuf.Height := m_BarImage.Height;
        R := Rect(0, 0, m_BarImageBuf.Width, m_BarImageBuf.Height);
        m_BarImageBuf.Canvas.Brush.Color := Color;
        m_BarImageBuf.Canvas.FillRect(R);
        SpitDrawHorizontal(m_BarImage.Bitmap, m_BarImageBuf.Canvas, R, false);
        RoundPicture(m_BarImageBuf);
    end;
    m_Slider.Transparent := SliderTransparent();
    m_Slider.AutoSize := true;
end;

procedure TsuiTrackBar.UpdateControl;
begin
    UpdatePicture();
    SetSize();
    UpdateSlider();
    Repaint();
end;

procedure TsuiTrackBar.UpdatePositionValue(X, Y : Integer; Update : Boolean);
var
    nPos : Integer;
begin
    nPos := GetPositionFromFromSliderPos(X, Y);

    if nPos > m_Max then
        nPos := m_Max
    else if nPos < m_Min then
        nPos := m_Min;
    if Update then
        Position := nPos
    else
        m_Position := nPos;
end;

procedure TsuiTrackBar.OnTimer(Sender: TObject);
var
    P : TPoint;
begin
    GetCursorPos(P);
    P := ScreenToClient(P);
    if m_Orientation = suiHorizontal then
    begin
        if P.X > GetSliderPosFromPosition().X then
            Position := Math.Min(Position + 3 * m_PageSize, GetPositionFromFromSliderPos(P.X, P.Y))
        else if P.X < GetSliderPosFromPosition().X then
            Position := Math.Max(Position - 3 * m_PageSize, GetPositionFromFromSliderPos(P.X, P.Y))
    end
    else
    begin
        if P.Y > GetSliderPosFromPosition().Y then
            Position := Math.Min(Position + m_PageSize, GetPositionFromFromSliderPos(P.X, P.Y))
        else if P.Y < GetSliderPosFromPosition().Y then
            Position := Math.Max(Position - m_PageSize, GetPositionFromFromSliderPos(P.X, P.Y))
    end;
end;

procedure TsuiTrackBar.SetPageSize(const Value: Integer);
begin
    if (Value < 0) or (Value > m_Max) then
        Exit;
    m_PageSize := Value;
end;

procedure TsuiTrackBar.CMFocusChanged(var Msg: TCMFocusChanged);
begin
    inherited;

    Repaint();
end;

procedure TsuiTrackBar.SetFileTheme(const Value: TsuiFileTheme);
begin
    m_FileTheme := Value;
    SetUIStyle(m_UIStyle);
end;

procedure TsuiTrackBar.Notification(AComponent: TComponent;
  Operation: TOperation);
begin
    inherited;

    if (
        (Operation = opRemove) and
        (AComponent = m_FileTheme)
    )then
    begin
        m_FileTheme := nil;
        SetUIStyle(SUI_THEME_DEFAULT);
    end;
end;

procedure TsuiTrackBar.SetTransparent(const Value: Boolean);
begin
    m_Transparent := Value;
    Repaint();
end;

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

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

procedure TsuiTrackBar.SetLineSize(const Value: Integer);
begin
    if (Value < 0) or (Value > m_Max) then
        Exit;

    m_LineSize := Value;
end;

procedure TsuiTrackBar.PaintTick(const Buf : TBitmap);
var
    x : Integer;
    i : Integer;
    nLen : Integer;
    nStart : Integer;
    Freq : Integer;
begin
    if m_Max = m_Min then
        Exit;

    if m_Orientation = suiHorizontal then
    begin
        nLen := Width - m_Slider.Width;
        nStart := m_Slider.Width div 2;
        Freq := 0;
        for i := m_Min to m_Max do
        begin
            if i <> m_Max then
            begin
                if Freq <> m_Frequency then
                begin
                    Inc(Freq);
                    if Freq <> 1 then
                        Continue
                end
                else
                    Freq := 1;
            end;
            x := nStart + nLen * (i - m_Min) div (m_Max - m_Min);
            Buf.Canvas.MoveTo(x, Height - 3);
            Buf.Canvas.LineTo(x, Height);
        end;
    end
    else
    begin
        nLen := Height - m_Slider.Height;
        nStart := m_Slider.Height div 2;
        Freq := 0;
        for i := m_Min to m_Max do
        begin
            if i <> m_Max then
            begin
                if Freq <> m_Frequency then
                begin
                    Inc(Freq);
                    if Freq <> 1 then
                        Continue
                end
                else
                    Freq := 1;
            end;
            x := nStart + nLen * (i - m_Min) div (m_Max - m_Min);
            Buf.Canvas.MoveTo(0, x);
            Buf.Canvas.LineTo(3, x);
            Buf.Canvas.MoveTo(Width - 3, x);
            Buf.Canvas.LineTo(Width, x);
        end;
    end;
end;

procedure TsuiTrackBar.SetShowTick(const Value: Boolean);
begin
    m_ShowTick := Value;
    Repaint();
end;

function TsuiTrackBar.SliderTransparent: boolean;
begin
    if m_Orientation = suiHorizontal then
        Result := true
    else
        Result := false;
end;

function TsuiTrackBar.CustomPicture: Boolean;
begin
    Result := m_CustomPicture;
end;

procedure TsuiTrackBar.SetFrequency(const Value: Integer);
begin
    m_Frequency := Value;
    Repaint();
end;

procedure TsuiTrackBar.OnSliderMouseUp(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
    if Assigned(OnMouseUp) then
        OnMouseUp(self, Button, Shift, m_Slider.Left + X, m_Slider.Top + Y);
end;

{ TsuiScrollTrackBar }

function TsuiScrollTrackBar.CustomPicture: Boolean;
begin
    Result := true;
end;

function TsuiScrollTrackBar.GetSliderVisible: Boolean;
begin
    Result := m_Slider.Visible;
end;

procedure TsuiScrollTrackBar.SetSliderVisible(const Value: Boolean);
begin
    if m_Slider.Visible <> Value then
        m_Slider.Visible := Value;
end;

function TsuiScrollTrackBar.SliderTransparent: boolean;
begin
    Result := false;
end;

procedure TsuiScrollTrackBar.UpdateSliderSize;
begin
    m_Slider.AutoSize := true;
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩电影免费在线看| 91精品国产福利在线观看| 久久久久久久久久久久久夜| 激情综合五月天| 国产亚洲一二三区| 风间由美一区二区三区在线观看 | 久久久久久**毛片大全| 国产美女一区二区| 中文字幕乱码一区二区免费| 91看片淫黄大片一级在线观看| 亚洲欧美日韩中文播放 | 中文字幕巨乱亚洲| 91黄视频在线| 六月婷婷色综合| 中文字幕乱码一区二区免费| 欧美图片一区二区三区| 另类小说欧美激情| 自拍偷拍欧美精品| 欧美一卡二卡三卡| 91在线porny国产在线看| 亚洲第一av色| 中文字幕精品在线不卡| 欧美日韩日本视频| 成人在线综合网站| 日韩黄色一级片| 国产精品色哟哟网站| 91麻豆精品国产无毒不卡在线观看| 黑人精品欧美一区二区蜜桃 | 日韩**一区毛片| 欧美国产激情二区三区| 欧美日韩精品电影| 成人激情视频网站| 日本人妖一区二区| 国产精品伦一区| 日韩精品一区二区三区老鸭窝| av一区二区三区黑人| 麻豆免费看一区二区三区| 国产精品久久久久久久第一福利 | 国产一区二区主播在线| 一区二区三区欧美在线观看| 亚洲精品在线观看网站| 欧美色大人视频| av电影天堂一区二区在线 | 久久精品一区蜜桃臀影院| 在线精品视频免费观看| 国产大片一区二区| 久久激情五月婷婷| 亚洲第一搞黄网站| 亚洲欧洲中文日韩久久av乱码| 国产午夜亚洲精品羞羞网站| 91精品啪在线观看国产60岁| 91麻豆高清视频| 成人蜜臀av电影| 国产精品一区二区91| 青青草91视频| 亚洲成人在线观看视频| 一区二区欧美在线观看| 国产精品国产馆在线真实露脸| 久久九九国产精品| 欧美不卡一区二区三区四区| 3d动漫精品啪啪一区二区竹菊 | 一区二区久久久| 国产精品久久久久三级| 国产日产精品1区| 久久婷婷一区二区三区| 欧美一区二区播放| 91精品国产综合久久婷婷香蕉 | 精品国产免费人成在线观看| 日韩一级成人av| 91麻豆精品国产综合久久久久久| 欧美日韩第一区日日骚| 欧美午夜宅男影院| 欧美亚洲高清一区| 欧美性欧美巨大黑白大战| 日本精品一级二级| 欧美在线三级电影| 欧美日韩一区二区三区四区| 欧美在线看片a免费观看| 色综合天天在线| 在线日韩一区二区| 欧美日本视频在线| 91精品国产综合久久精品性色| 欧美日韩一区二区在线观看视频| 91.成人天堂一区| 日韩欧美在线一区二区三区| 精品少妇一区二区三区免费观看 | aaa国产一区| 91色乱码一区二区三区| 91豆麻精品91久久久久久| 欧美三级乱人伦电影| 欧美日韩成人在线一区| 日韩美女视频在线| 国产欧美中文在线| 亚洲免费观看高清在线观看| 亚洲一区二区av电影| 丝袜美腿成人在线| 国产乱码精品一区二区三| 成人精品在线视频观看| 一本一道久久a久久精品| 欧美人妖巨大在线| 久久久精品国产免费观看同学| 国产精品女同互慰在线看| 亚洲靠逼com| 蜜臀久久久99精品久久久久久| 黄页网站大全一区二区| 岛国一区二区三区| 欧美日韩精品综合在线| 久久免费电影网| 悠悠色在线精品| 韩国理伦片一区二区三区在线播放| 成人黄色片在线观看| 欧美视频在线观看一区| 欧美精品一区二区三区四区 | 国产精品午夜在线观看| 一区二区三区不卡在线观看 | 一区二区三区在线视频播放| 免费成人av在线| aaa亚洲精品| 欧美大片免费久久精品三p| 亚洲少妇中出一区| 黄色精品一二区| 欧美性淫爽ww久久久久无| 久久久综合网站| 图片区小说区区亚洲影院| 粉嫩绯色av一区二区在线观看| 欧美日韩亚洲高清一区二区| 国产日韩欧美亚洲| 免费久久99精品国产| 91亚洲资源网| 久久久久久久久99精品| 日韩av电影免费观看高清完整版在线观看| jlzzjlzz欧美大全| 欧美va亚洲va香蕉在线| 亚洲愉拍自拍另类高清精品| 国产成a人亚洲| 精品国产乱码久久久久久1区2区 | 在线视频国内自拍亚洲视频| 久久久久国产精品麻豆| 免费在线成人网| 在线看国产一区二区| 国产精品麻豆一区二区| 韩国一区二区在线观看| 日韩一区二区三区观看| 亚洲第一福利一区| 在线观看精品一区| 国产精品国产三级国产有无不卡| 国产一区二区不卡在线| 欧美一区二区国产| 亚洲.国产.中文慕字在线| 一本大道久久a久久综合婷婷 | xvideos.蜜桃一区二区| 日韩成人午夜精品| 欧美色图第一页| 亚洲黄色av一区| 91国产视频在线观看| 亚洲婷婷在线视频| av激情成人网| 中文字幕制服丝袜一区二区三区 | 久久久久久9999| 狠狠色丁香婷综合久久| 欧美一二三区在线| 麻豆精品一区二区综合av| 欧美一区二区在线播放| 香蕉久久一区二区不卡无毒影院 | 国产亚洲一区二区三区四区 | 欧美在线观看禁18| 亚洲精品日韩综合观看成人91| 9i在线看片成人免费| 一区精品在线播放| 一本色道综合亚洲| 亚洲综合久久久久| 欧美日韩免费在线视频| 亚洲动漫第一页| 91精品国产高清一区二区三区蜜臀| 免费人成网站在线观看欧美高清| 日韩欧美一级特黄在线播放| 激情综合亚洲精品| 欧美激情一区二区三区四区| 成人a免费在线看| 亚洲欧洲精品一区二区精品久久久| 99久久免费视频.com| 一区二区高清免费观看影视大全| 在线观看av一区| 日本人妖一区二区| 国产网站一区二区| 一本色道久久综合亚洲aⅴ蜜桃| 亚洲一区二区三区四区中文字幕| 91精品国产高清一区二区三区| 国内精品免费**视频| 国产精品不卡在线| 欧美日韩国产成人在线91| 免费观看91视频大全| 国产欧美精品日韩区二区麻豆天美| 丁香五精品蜜臀久久久久99网站| 亚洲黄网站在线观看| 日韩欧美不卡一区| 成人av第一页| 日韩国产精品久久| 久久精子c满五个校花| 91国偷自产一区二区三区成为亚洲经典|