Библиотека программиста

27.11.2024 - Программное определение движения колеса мыши

В приведенном примере показано как отследить (обнаружить) движение колеса мыши.




Принцип работы прост - на события 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.

Опубликовано на сайте: http://www.coders-library.ru
Прямая ссылка: http://www.coders-library.ru/index.php?name=news&op=view&id=54