我想使ScrollBox在显示滚动条时,随着鼠标滚轮的滚动而使滚动调上下滚动,请问各位该如何做?

解决方案 »

  1.   

    我的代码是这样写的
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, ExtCtrls;type
      TForm1 = class(TForm)
        ScrollBox_frmMain: TScrollBox;
        Image1: TImage;
        procedure ScrollBox_frmMainMouseWheel(Sender: TObject; Shift: TShiftState;
          WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
        procedure FormCreate(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.ScrollBox_frmMainMouseWheel(Sender: TObject; Shift: TShiftState;
      WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
    begin
      if WheelDelta < 0 then
      begin
        ScrollBox_frmMain.HorzScrollBar.Position := ScrollBox_frmMain.HorzScrollBar.Position+10;
        ScrollBox_frmMain.VertScrollBar.Position := ScrollBox_frmMain.VertScrollBar.Position +10;
      end
      else
      begin
        ScrollBox_frmMain.HorzScrollBar.Position := ScrollBox_frmMain.HorzScrollBar.Position -10;
        ScrollBox_frmMain.VertScrollBar.Position := ScrollBox_frmMain.VertScrollBar.Position -10;
      end;
    end;procedure TForm1.FormCreate(Sender: TObject);
    var
    Myimage : TImage;
    begin
        ScrollBox_frmMain.Align := alTop;
        ScrollBox_frmMain.Left := 30;
        ScrollBox_frmMain.Top := 70;
        ScrollBox_frmMain.Width := Screen.Width - 150;
        ScrollBox_frmMain.Height := 430;
        ScrollBox_frmMain.Ctl3D := False;
        ScrollBox_frmMain.BorderStyle := bsNone;
        Myimage := timage.Create(nil);
    Myimage.Top := 480;
        Myimage.Height := 200;
        Myimage.Width := 100;
        Myimage.Parent := ScrollBox_frmMain;end;end.
    好像因为Image没有输入焦点,所以此时即使出现了滚动条,再滚动鼠标滚轮也没有作用了,不知道我理解的对不对,请大侠告诉我,对于以上情况,我该如何能使滚轮起作用?