-
помогите пожалуйста прокрутить ScrollBox колёсиком. 1) function TForm1.KOLApplet1Message(var Msg: TMsg; var Rslt: Integer): Boolean; begin Result := False; if(SB.GetWindowHandle = Msg.hwnd)AND(Msg.message = WM_MOUSEWHEEL)then begin if Msg.wParam > 32767 then SB.Perform( ???
2) нередко ScrollBox после прокрутки не отрисовывает дочерние контролы - они становятся полосатыми и почти невидимыми. Что можно сделать? В основном это чекбоксы
-
1) WM_VSCROLL. Только странно, самому скролбоксу сообщения о прокрутке колесика не приходят что ли? И если апплет не будет совпадать с формой, до него ведь сообщение не дойдет. 2) Попробуй подложить панельку.
-
2) может для начала делать это в onMessage ScrollBox ане Applet?
-
и вообще есть onmousewhell
-
слать WM_VSCROLL ? А параметры какие? Не приходят. Как было это дело, так в КОЛ и осталось. Версия КОЛа фз, но вроде было максимум одно обновление пока я тут не появлялся.
QAZ, попробую. Вот onmousewheel и не работает.
-
Колесико "к себе" - SB.Perform(WM_VSCROLL, SB_LINEDOWN, 0), "от себя" - SB.Perform(WM_VSCROLL, SB_LINEUP, 0)
-
> Вот onmousewheel и не работает.
оно не неработает,а просто нужно делать так
if Integer( Mouse.Shift ) < 0 then if Integer( Mouse.Shift ) > 0 then
-
> Только странно, самому скролбоксу сообщения о прокрутке > колесика не приходят что ли?
У меня именно в этом проблема:( В скролбоксе расположен DBGrid, точнее DBGridEh, но, думаю, это не принципиально. Форма(фрейм) и лежащий на нем скролбокс порекрасно получают сообщения WM_MOUSEWHEEL? но... только до тех пор, пока как-либо строка грида не получит фокус. После этого прокрутки мышью скролбокса невозможна, пока не передашь фокус какому-нибудь другому контролу. Вопрос: как забрать WM_MOUSEWHEEL у жадного грида (он ему все равно не нужен)? (гыыы... кстати по-английский Greed = жадный) :)
-
Пробовали ловить в Applet.OnMessage ? Аналогичные проблемы с колесиком и в VCL, и .net.
|