Скрол мышки

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Скрол мышки

Сообщение ddima » 18.12.2007 23:17:09

Как записать количество проворотов скрола мыши? в Дельфях это есть, а вот в Лазарусе найти не могу. Кто может помочь?
Кстати какая максимальная скорость вращения скрола?
ddima
новенький
 
Сообщения: 12
Зарегистрирован: 24.11.2006 02:04:36

Сообщение ddima » 19.12.2007 00:22:30

Собственно нужно считывать на сколько провернулось колесо скрола
ddima
новенький
 
Сообщения: 12
Зарегистрирован: 24.11.2006 02:04:36

Сообщение FedeX » 19.12.2007 01:05:03

Воть как делал я:

Код: Выделить всё
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). Чтоб узнать скорость вращения засекай скоко раз срабатывает эта процедура в секунду...
Аватара пользователя
FedeX
постоялец
 
Сообщения: 422
Зарегистрирован: 27.03.2006 09:25:34
Откуда: украина, житомир

Сообщение p.r.o.g.r.a.m.m.e.r. » 26.12.2007 17:08:59

Ну, по этому сообщению передается направление вращения мышы (-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;
Аватара пользователя
p.r.o.g.r.a.m.m.e.r.
незнакомец
 
Сообщения: 1
Зарегистрирован: 20.12.2007 13:44:35
Откуда: Новосибирск, Россия

Re: Скрол мышки

Сообщение VirtUX » 05.12.2009 18:13:44

Объясните, как отследить скрол над компонентом? Например: над TPanel.
Аватара пользователя
VirtUX
энтузиаст
 
Сообщения: 880
Зарегистрирован: 05.02.2008 10:52:19
Откуда: Крым, Алушта


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 48

Рейтинг@Mail.ru