Как записать количество проворотов скрола мыши? в Дельфях это есть, а вот в Лазарусе найти не могу. Кто может помочь?
Кстати какая максимальная скорость вращения скрола?
Скрол мышки
Модератор: Модераторы
Воть как делал я:
...но в итоге ты всё время будеш получать либо 120, либо -120 (почему- читай WinAPISDK). Чтоб узнать скорость вращения засекай скоко раз срабатывает эта процедура в секунду...
Код: Выделить всё
uses Windows;
...
TForm1 = class(TForm)
Button1: TButton;
private
{ private declarations }
public
procedure MouseWheel(var Message: TMessage); message WM_MOUSEWHEEL;
end;
...
implementation
...
procedure TForm1.MouseWheel(var Message: TMessage);
begin
caption:=inttostr(smallint( Message.wParamhi));
end;
...но в итоге ты всё время будеш получать либо 120, либо -120 (почему- читай WinAPISDK). Чтоб узнать скорость вращения засекай скоко раз срабатывает эта процедура в секунду...
- p.r.o.g.r.a.m.m.e.r.
- незнакомец
- Сообщения: 1
- Зарегистрирован: 20.12.2007 12:44:35
- Откуда: Новосибирск, Россия
Ну, по этому сообщению передается направление вращения мышы (-120 вниз, +120 вверх). Но! Логично предположить, что сообщение возникает КАЖДЫЙ раз когда меняется положение колеса, следовательно нужно просто завести счетчик, плюс вовремя его обнулять:
Код: Выделить всё
public
procedure MouseWheel(var Message: TMessage); message WM_MOUSEWHEEL;
{ public declarations }
end;
var
Form1: TForm1;
down, up:integer;
implementation
procedure TForm1.FormCreate(Sender: TObject);
begin
up:=0;
down:=0;
end;
procedure TForm1.MouseWheel(var Message: TMessage);
begin
if smallint( Message.wParamhi)<0 then
begin
up:=0;
inc(down);
caption:='down:'+intToStr(down);
end;
if smallint( Message.wParamhi)>0 then
begin
down:=0;
inc(up);
caption:='up:'+intToStr(up);
end;
end;Объясните, как отследить скрол над компонентом? Например: над TPanel.
