Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Прокруткa ListView


Автор: Scroller 30.8.2005, 10:01
Скажите пожалуйста , какие сообщения генерируются при прокрутке ListView (при прокрутке с клавиатуры и колесом мыши WM_VSCROLL не генерируется). Заранее благодарен.

Автор: Romikgy 30.8.2005, 10:34
WM_MOUSEWHEEL
Цитата(Scroller @ 30.8.2005, 10:01)
колесом мыши

А клавой можно использовать
keybrd_event

Автор: Guest 30.8.2005, 11:45
Цитата
WM_MOUSEWHEEL

Не отлавливается для Listview.Может можно вообще как-то осуществить , чтобы при прокрутке Listview на одну строку строку (любым способом) вызывался мой обработчик?
Заранее благодарен.

Автор: Rrader 30.8.2005, 12:13
 Засабклассь TListView:
Код

function NewListViewProc(hWnd: HWND; uMsg: UINT;
  wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
begin
  { Твой обработчик }
  if uMsg = WM_MOUSEWHEEL then 
    ShowMessage('WM_MOUSEWHEEL message!');  
  Result := CallWindowProc(Pointer(GetWindowLong(hWnd, GWL_USERDATA)),
    hWnd, uMsg, wParam, lParam);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  SetWindowLong(ListView1.Handle, GWL_USERDATA,
    SetWindowLong(ListView1.Handle, GWL_WNDPROC,
       Longint(@NewListViewProc)));
end;

Можешь добавить ещё проверку на клавиши-стрелки. ;-)  

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)