В приведенном примере показано как отследить (обнаружить) движение колеса мыши.
Принцип работы прост - на события OnMouseWheel, OnMouseWheelDown, OnMouseWheelUp вешаются соответствующие процедуры-обработчики.
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Label1: TLabel; procedure FormCreate(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
// описание обработчиков событий
// обработка движения колеса мыши procedure MouseWheel(Sender: TObject; Shift: TShiftState; WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
// обработка прокрутки колеса вниз procedure MouseWheelDown(Sender: TObject; Shift: TShiftState; MousePos: TPoint; var Handled: Boolean);
// обработка прокрутки колеса вверх procedure MouseWheelUp(Sender: TObject; Shift: TShiftState; MousePos: TPoint; var Handled: Boolean);
public
{ Public declarations } end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject); begin
// Назначаем обработчики для событий: // движение колеса мыши Form1.OnMouseWheel:=MouseWheel;
// прокрутка колеса вниз Form1.OnMouseWheelDown:=MouseWheelDown;
// прокрутка колеса вверх Form1.OnMouseWheelUp:=MouseWheelUp;
end;
procedure TForm1.MouseWheelDown(Sender: TObject; Shift: TShiftState; MousePos: TPoint; var Handled: Boolean); begin
// Детекция движения колеса вниз ShowMessage('Колесо повернуто вниз'); end;
procedure TForm1.MouseWheelUp(Sender: TObject; Shift: TShiftState; MousePos: TPoint; var Handled: Boolean); begin
// Детекция движения колеса вверх ShowMessage('Колесо повернуто вверх'); end;
procedure TForm1.MouseWheel(Sender: TObject; Shift: TShiftState; WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean); begin
// Процедура реакции на движение колеса мыши ShowMessage('Обнаружено движение колеса мыши...'); end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin
// отменяем обработку событий от колеса мыши Form1.OnMouseWheel:=nil; Form1.OnMouseWheelDown:=nil; Form1.OnMouseWheelUp:=nil;
end;
end.
|