type
TFormDemo = class(TForm)
ScrollBox: TScrollBox;
Panel: TPanel;
procedure FormCreate(Sender: TObject);
private
OldScrollBoxWindowProc: TWndMethod;
procedure NewScrollBoxWindowProc(var Message: TMessage);
procedure OnMessageOwn(var Msg: TMsg; var Handled: Boolean);
public
{ Public declarations }
end;
var
FormDemo: TFormDemo;
implementation
{$R *.dfm}
{ TFormDemo }
procedure TFormDemo.NewScrollBoxWindowProc(var Message: TMessage);
var
Pace: Integer;
begin
if Message.Msg = WM_MouseWheel then
begin
Pace := Message.wParam ;
if Pace > 120 then
ScrollBox.VertScrollBar.Position := ScrollBox.VertScrollBar.Position + 10
else
ScrollBox.VertScrollBar.Position := ScrollBox.VertScrollBar.Position - 10;
end;
OldScrollBoxWindowProc(Message);
end;
procedure TFormDemo.OnMessageOwn(var Msg: TMsg; var Handled: Boolean);
begin
if Msg.message = WM_MOUSEWHEEL then
begin
SendMessage(ScrollBox.Handle, WM_MouseWheel, HiWord(Msg.wParam), Msg.lParam);
Handled := False;
end;
end;