读书人

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

发布时间: 2012-02-12 17:16:33 作者: rapoo

用鼠标操纵滚轮没有任何反应,为什么?
我在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。

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

读书人网 >.NET

热点推荐