如何让滑动条不能拖动滑块?(10分)

  • 主题发起人 主题发起人 lcl_003
  • 开始时间 开始时间
L

lcl_003

Unregistered / Unconfirmed
GUEST, unregistred user!
如何让滑动条不能拖动滑块?

我想让滑动条不能用鼠标拖动滑块移动,只能按左右的箭头来移动滑块。该怎么做?
 
啊,没人回答吗,是很简单吗
 
自己写一个控件啊
只响应键盘事件
滚动条的绘制:
procedure DrawScroll(Canvas: TCanvas;R:TRect;BarLength:Integer;Vertical:Boolean=true);
var Color:TColor;
PenColor:TColor;
begin
Color:=Canvas.Brush.Color;
PenColor:=Canvas.Pen.Color;
Canvas.Brush.Color:=clInactiveBorder;
Canvas.Pen.Color:=clInactiveBorder;
Canvas.Rectangle(R);
if Vertical then
begin
DrawFrameControl(Canvas.Handle,Rect(R.Left,R.Top,r.Right,
r.Top+ScrollWidth),DFC_SCROLL,DFCS_SCROLLUP);
DrawFrameControl(Canvas.Handle,Rect(R.Left,R.Bottom-ScrollWidth,R.Right,
R.Bottom),DFC_SCROLL,DFCS_SCROLLDOWN);
DrawFrameControl(Canvas.Handle,Rect(R.Left,R.Top+ScrollWidth,R.Right,
R.Top+ScrollWidth+BarLength),DFC_BUTTON,DFCS_BUTTONPUSH);
end else begin
DrawFrameControl(Canvas.Handle,Rect(R.Left,R.Top,r.Left+ScrollWidth,
R.Bottom),DFC_SCROLL,DFCS_SCROLLLEFT);
DrawFrameControl(Canvas.Handle,Rect(R.Right-ScrollWidth,R.Top,R.Right,
R.Bottom),DFC_SCROLL,DFCS_SCROLLRIGHT);
DrawFrameControl(Canvas.Handle,Rect(R.Left+ScrollWidth,R.Top,
R.Left+ScrollWidth+BarLength,R.Bottom),DFC_BUTTON,DFCS_BUTTONPUSH);
end;
Canvas.Brush.Color:=Color;
Canvas.Pen.Color:=PenColor;
end;
 
不至于这么复杂吧,应该是设置几个属性或者在拖动事件里写几条语句就可以了吧?
我的想法可以实现吗?
 
你用的是什么控件说清楚点
 
就是delphi自己的scrollbar啊
 
啊,还是没试出来
 
ScrollBar是Windows的标准Control,好像没有这样的属性设置吧,干脆自己添两个Button
自己控制Scroll Up、Down不就完了
 
哦,可是我记得vb好象有啊。我有个思路:就是当鼠标在滑块上按下的时候记下它的值,
然后当鼠标拖动滑块结束的时候再把刚才记下的值付回去,可是没试成。真的没人会/
 
有没有人会啊!!!!!!!!!分数可以再加
 
.enable:=false
 
我是说当用户用鼠标开始拖拽滑块后,当他松开鼠标的时候滑块要回到他开始拖拽的地方。
 
lcl_003,对不起,我忘了这个事情。。
你把那两个函数重写。TScollBar类的。

 
我写了个源程序。你下载看一下。
我的思路是如果一次改变的值不等于他用MOUSE点击改变的值就
自动回到原来的地方,我是用一个公共变量保存了他原来的值。
然后在改变地过程中来判断。
http://61.129.81.122/yuleibo/bbs/uploadImages/200272515251447263.zip
 
www.longteng.org

我的网站。我的OICQ:5008022 有时间聊聊。

 
接受答案了.
 
后退
顶部