Вниз
Скачать: CL | DM;

Как наиболее изящно отловить WM_MOUSEWHEEL?   Найти похожие ветки 

← →
Курдль ©   (2005-09-20 13:17) [0]

Приветствую аборигенов и гостей форума!

Необходимо заставить Control ("TCntlGrid") скроллироваться прокруткой мышиного колеса. Как это наиболее изящно исполнить?

С уважением, Я.


← →
Leonid Troyanovsky ©   (2005-09-20 14:13) [1]


> Курдль ©   (20.09.05 13:17)  

> Необходимо заставить Control ("TCntlGrid") скроллироваться
> прокруткой мышиного колеса. Как это наиболее изящно исполнить?



 By Peter Below


procedure TForm1.GridMouseWheel(Sender: TObject; Shift: TShiftState;
 WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
const
 codes: array [Boolean] of Cardinal = (VK_UP, VK_DOWN);
var
 code: Cardinal;
begin
 Handled := true;
 code := codes[WheelDelta < 0];
 (sender as TWincontrol).Perform( WM_KEYDOWN, code, 0 );
 (sender as TWincontrol).Perform( WM_KEYUP, code, 0 );
end;

type
 TGridCracker = class(TDBCtrlGrid);

procedure TForm1.FormCreate(Sender: TObject);
begin
 TGridCracker(DBCtrlGrid1).OnMouseWheel := GridMousewheel;
end;


--
Regards, LVT.


← →
Курдль ©   (2005-09-20 17:19) [2]

Спасибо! Нашел еще способ - при помощи TApplicationEvents


procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean);
var
 i: SmallInt;
begin
 inherited;
 if Msg.message = WM_MOUSEWHEEL then
 begin
   Msg.message := WM_KEYDOWN;
   Msg.lParam := 0;
   i := HiWord(Msg.wParam) ;
   if i > 0 then
     Msg.wParam := VK_UP
   else
     Msg.wParam := VK_DOWN;

   Handled := False;
 end;
end;



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.023 c
4-1123502012
-c-st-s-
2005-08-08 15:53
2005.10.09
Контекст устройства для hBitmap


1-1126715898
GanibalLector
2005-09-14 20:38
2005.10.09
Hint-ы и Warning-и


2-1124972754
SergProger
2005-08-25 16:25
2005.10.09
TaskBar


4-1123735019
ndn
2005-08-11 08:36
2005.10.09
Медленная печать на матричном принтере


2-1125732058
Гость22
2005-09-03 11:20
2005.10.09
Как подключиться к серверу Firebird?




   Наверх