![]() |
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
![]() ![]() ![]() |
|
Ne1tr1n0 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 120 Регистрация: 1.3.2009 Репутация: 2 Всего: 8 |
Добрый день!
Собсна вот вопрос: возможно ли перехватить события начала и конца вертикальной прокрутки в ListView? Первое что нарыл в гугле это уведомления LVN_BEGINSCROLL и LVN_ENDSCROLL. Решил попробовать их обработать - результат оказался не тем, которого я ждал. Возможно я конечно неправильно их обрабатывал (поскольку уведомления шлются родителю ListView то у формы прописал обработчик WM_NOTIFY и в нем уже проверял Msg.NMHdr.code). Ещё вариант - обрабатывать WM_VSCROLL у самого ListView и проверять ScrollCode на SB_ENDSCROLL, но остается вопрос, как определить начало скроллинга? Или даже черт бы с ним с началом, но при прокрутке ListView колесом мыши WM_VSCROLL не приходит. Приходят события WM_MOUSEWHEEL как с ними быть я пока не представляю. Разве что как-нить дельту считать? Кто-нить сталкивался с подобной задачей? Спасибо. |
|||
|
||||
MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 16 Всего: 128 |
Ne1tr1n0, А если не секрет, изначально какая задача решается?
-------------------- There are always someone smarter than you... |
|||
|
||||
Ne1tr1n0 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 120 Регистрация: 1.3.2009 Репутация: 2 Всего: 8 |
![]()
Собсна вот. Правда я не особо представляю пока как можно определить конец прокрутки колеса мыши, разве что по таймеру как-нить. Ну или на основании каких-нить операций с дельтой. |
|||
|
||||
MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 16 Всего: 128 |
хм.. а может просто по таймеру проверять, что изменился первый отображаемый элемент? раз в 500-1000мсек к примеру. и запускать генерацию тумбов видимой области.
-------------------- There are always someone smarter than you... |
|||
|
||||
Ne1tr1n0 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 120 Регистрация: 1.3.2009 Репутация: 2 Всего: 8 |
Я тут подумываю о том, чтобы просто запретить прокрутку колесиком (в обработке WM_MOUSEWHEEL Msg.Result:=1), потому что по большому счету SB_ENDSCROLL меня полностью устраивает. Но это конечно не лучшее решение.
|
|||
|
||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 21 Всего: 88 |
Основывайся на событии перерисовки итема.
Если наступило событие о перерисовке и миниатюра для него еще не создана, то переместить этот итем в списке на генерацию миниатюры в самое начало -------------------- Обижено школьников: 8 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: WinAPI и системное программирование" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |