+ -
当前位置:首页 → 问答吧 → 用鼠标操纵滚轮没有任何反应,为什么?

用鼠标操纵滚轮没有任何反应,为什么?

时间:2011-11-29

来源:互联网

我在Scrollbox1上放上了组件Image1,并为此添加了下面三个Procedure:

procedure TForm1.FormCreate(Sender: TObject);
begin
  Image1.OnMouseDown := ScrollBox1.OnMouseDown;
  //ScrollBox上的Image1得到鼠标事件时,激活Scrollbox
end;

procedure TForm1.ScrollBox1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  ScrollBox1.SetFocus;//激活Scrollbox, 使之获得焦点
end;

procedure TForm1.ScrollBox1MouseWheel(Sender: TObject; Shift: TShiftState; WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
begin
  ScrollBox1.VertScrollBar.Position :=ScrollBox1.VertScrollBar.Position - WheelDelta;
end;


但用鼠标操纵滚轮的时候没有任何反应,这是为什么?

注:Image1组件很大(高2000多),align设置为None。

作者: zzwu   发布时间: 2011-11-29

一定要用鼠标直接去拖动VertScrollBar,才能使屏幕及VertScrollBar.Position 上下移动。

作者: zzwu   发布时间: 2011-11-29

with ScrollBox1 do
  begin
  if WheelDelta<0 then
  VertScrollBar.Position:=VertScrollBar.Position+20 //滚动大小自己定
  else
  VertScrollBar.Position:=VertScrollBar.Position-20;
  end;

作者: kaikai_kk   发布时间: 2011-11-29

热门下载

更多