• Dy1 (26.09.11 12:47) [0]
    помогите пожалуйста прокрутить 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 после прокрутки не отрисовывает дочерние контролы - они становятся полосатыми и почти невидимыми. Что можно сделать?
    В основном это чекбоксы
  • Дмитрий К © (26.09.11 14:32) [1]
    1) WM_VSCROLL. Только странно, самому скролбоксу сообщения о прокрутке колесика не приходят что ли? И если апплет не будет совпадать с формой, до него ведь сообщение не дойдет.
    2) Попробуй подложить панельку.
  • QAZ (26.09.11 14:33) [2]
    2) может для начала делать это в onMessage ScrollBox ане Applet?
  • QAZ (26.09.11 14:35) [3]
    и вообще есть onmousewhell
  • Dy1 (26.09.11 16:51) [4]
    слать WM_VSCROLL ? А параметры какие?
    Не приходят. Как было это дело, так в КОЛ и осталось.
    Версия КОЛа фз, но вроде было максимум одно обновление пока я тут не появлялся.

    QAZ, попробую.
    Вот onmousewheel и не работает.
  • Дмитрий К © (26.09.11 18:16) [5]
    Колесико "к себе" - SB.Perform(WM_VSCROLL, SB_LINEDOWN, 0), "от себя" - SB.Perform(WM_VSCROLL, SB_LINEUP, 0)
  • QAZ (26.09.11 20:32) [6]

    > Вот onmousewheel и не работает.

    оно не неработает,а просто нужно делать так

    if Integer( Mouse.Shift ) < 0 then //колесо вниз
    if Integer( Mouse.Shift ) > 0 then //колесо вверх

  • boojum © (21.11.11 14:38) [7]

    > Только странно, самому скролбоксу сообщения о прокрутке
    > колесика не приходят что ли?

    У меня именно в этом проблема:(
    В скролбоксе расположен  DBGrid, точнее DBGridEh, но, думаю, это не принципиально. Форма(фрейм) и лежащий на нем скролбокс порекрасно получают сообщения WM_MOUSEWHEEL? но... только до тех пор, пока как-либо строка грида не получит фокус. После этого прокрутки мышью скролбокса невозможна, пока не передашь фокус какому-нибудь другому контролу. Вопрос: как забрать  WM_MOUSEWHEEL у жадного грида (он ему все равно не нужен)? (гыыы... кстати по-английский Greed = жадный) :)
  • Vladimir Kladov © (21.11.11 16:15) [8]
    Пробовали ловить в Applet.OnMessage ?
    Аналогичные проблемы с колесиком и в VCL, и .net.
Есть новые Нет новых   [119256   +38][b:0][p:0.001]