![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Подскажите как задействовать прокрутку мышью в DBСtrlGrid. Нужно чтобы один шаг ровнялся прокрутке на одну запись. Поискал по всему интернету но готового решения не нашел. Часто упоминается про OnMouseWheel но у этого компонента нет своего такого события. Может кто то уже успешно занимался этим вопросом?
|
|
#2
|
||||
|
||||
|
Нужно переопределить DoMouseWheel(). Либо в наследнике, либо через хак.
|
|
#3
|
|||
|
|||
|
Цитата:
А примера нет случайно? Я мышей не ловил раньше при помощи delphi)). Буду благодарен если научите |
|
#4
|
||||
|
||||
|
Цитата:
|
|
#5
|
|||
|
|||
|
Цитата:
Я покопаюсь еще в дебрях форума. Если не затруднит, напишите при возможности пример. |
|
#6
|
||||
|
||||
|
Не совсем то, что требуется, переход не точно по записям, но вот пример прокрутки с подкладкой глобальной процедуры колёсика
Код:
procedure TForm1.FormMouseWheel(Sender: TObject; Shift: TShiftState;
WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
begin
if WindowFromPoint(MousePos) = DBCtrlGrid1.Handle then
if WheelDelta > 0 then
DBCtrlGrid1.Perform(WM_VScroll, SB_LINEUP, 0)
else
DBCtrlGrid1.Perform(WM_VScroll, SB_LINEDOWN, 0);
end; |