Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.10.09;
Скачать: 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 вся ветка

Текущий архив: 2005.10.09;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.024 c
1-1127132157
kolos_rus
2005-09-19 16:15
2005.10.09
Есть ли разница где подключить модуль?


3-1125386830
Malign
2005-08-30 11:27
2005.10.09
Скорость работы хранимых процедур значительно ниже запросов


14-1126875653
infom
2005-09-16 17:00
2005.10.09
Защитить программу с исходниками от распространения...


2-1125285887
-=snoop=-
2005-08-29 07:24
2005.10.09
ф-ия COPYFILE, не могу найти...


14-1127135232
Danilka
2005-09-19 17:07
2005.10.09
Ай да правда.ру! :)