现在划块是按照pagesiza的大小来翻页的,很不方便

解决方案 »

  1.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      ComCtrls, StdCtrls;type
      TMytrack = class(TTrackBar)
        property Onclick;
        property OnMouseDown;
      end;
      TForm1 = class(TForm)
        TrackBar1: TTrackBar;
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      private
        t:  TMytrack;
        procedure TrackMouseDown(Sender: TObject; Button: TMouseButton;
          Shift: TShiftState; X, Y: Integer);
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.DFM}procedure TForm1.Button1Click(Sender: TObject);
    begin
      t := TMytrack.Create(self);
      t.Parent := self;
      t.OnMouseDown := TrackMouseDown;
    end;procedure TForm1.TrackMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
      t.Position := round(((x-t.Left) / t.Width) * (t.Max - t.Min) + t.Min);
    end;end.参考一下吧
      

  2.   

    将trackbar拉大后发现在滑快右边点击也有这个问题就是当点击的位置越靠两边的时候,滑快往中间偏移的量就越大
      

  3.   

    min和max之间的差大一点就会好一点,主要是由于要根据鼠标位置取整丧失精度