Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

TreeView OnMouseWheel [D6]


Димон1 ©   (2003-03-07 13:52:00) 

у меня TreeView почему-то не имеет события связанного с мышиным колесом, а мне его нужно обрабатывать. Подскажите, что делать.

Спасибо


JibSkeart   (2003-03-08 11:15:00) [1]

Воот енто я себе как то сохранял может поможет ??
только это на примере DBGRID но думаю не составит труда переделать ...

{sniknik} {©} (27.01.03 13:49)

опиши свой класс и от него и гриды делай,
DBGrid1:= TMyDBGrid.Create (или свой компонент сделай)
класс

TMyDBGrid = class(TDBGrid)
procedure WMMouseWheel(var Message: TWMMouseWheel); message WM_MOUSEWHEEL;
end;

procedure TMyDBGrid.WMMouseWheel(var Message: TWMMouseWheel);
begin
if DataSource.DataSet.Active then begin
if Message.WheelDelta > 10 then DataSource.DataSet.Prior;
if Message.WheelDelta < -10 then DataSource.DataSet.Next;
end;
end;

(реализация простейшая, но работает)
------------------------------------
{sniknik} {©} (27.01.03 13:50)

забыл в начале еще тип события прописать надо

TWMMouseWheel = packed record
Msg: Cardinal;
Keys: SmallInt;
WheelDelta: SmallInt;
case Integer of
0: (
XPos: Smallint;
YPos: Smallint);
1: (
Pos: TSmallPoint;
Result: Longint);
end;

------------------------------------
{Pat} {©} (27.01.03 13:55)


procedure TMainForm.ApplicationEvents1Message(var Msg: tagMSG;
var Handled: Boolean);
begin
if Msg.message=WM_MOUSEWHEEL then
begin
Msg.message:=WM_KEYDOWN;
if Msg.wParam>0
then Msg.wParam:=vk_up
else Msg.wParam:=vk_down;
end;

end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо