Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.03.2010, 17:11   #1
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию Обработка колеса мыши в TScrollBox

ScrollBox не получает события колеса мыши, средствами Дельфи не могу получить их. Как лучше и быстрее решить эту проблему?
Причем что интересно, на ноутбуке ScrollBox к-рый имеет фокус без никаких дополнительных манипуляций с моей стороны прокручивается с тачпада, но мышью не хочет, а нужно мышью также.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 31.03.2010, 17:18   #2
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Цитата:
Сообщение от mutabor Посмотреть сообщение
ScrollBox не получает события колеса мыши, средствами Дельфи не могу получить их. Как лучше и быстрее решить эту проблему?
Причем что интересно, на ноутбуке ScrollBox к-рый имеет фокус без никаких дополнительных манипуляций с моей стороны прокручивается с тачпада, но мышью не хочет, а нужно мышью также.
Обрабатывай события OnMouseWheelUp и OnMouseWheelDown
Перемешивай дело с бездельем и не сойдешь с ума...
Grag вне форума Ответить с цитированием
Старый 31.03.2010, 18:01   #3
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Цитата:
Сообщение от Grag Посмотреть сообщение
Обрабатывай события OnMouseWheelUp и OnMouseWheelDown
Спасибо за совет, я писал уже - "средствами Дельфи не могу получить их"

Тут типа SetWindowLong или еще чего в этом роде, или сообщения ловить системные, приблизительно я догадываюсь, вобщем нужен пинок в нужном направлении (более конкретном). Если кто-то уже решал такую же проблему и поделился опытом, было бы вообще отлично.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 31.03.2010, 18:16   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Сообщение от mutabor Посмотреть сообщение
ScrollBox не получает события колеса мыши, средствами Дельфи не могу получить их. Как лучше и быстрее решить эту проблему?
Фокус в том, что нужно обрабатывать именно эти события, но... для самой формы.
А там уже смотреть
Код:
if Sender is TScrollBox then

Последний раз редактировалось mihali4; 31.03.2010 в 21:41.
mihali4 вне форума Ответить с цитированием
Старый 31.03.2010, 18:18   #5
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Я писал прогу, где на панели динамически размещалась куча компонентов:таблицы, метки, мемо и пр. Все это приводило к тому, что появлялся верт. скроллинг. Этот скрол перемещался только мышом, но на колесико не реагировал, пока я не сделал обработку событий, про которые уже писал... Теперь все работает как надо и колесиком и левой кн. мыша.

18:21

Цитата:
Сообщение от mihali4 Посмотреть сообщение
Фокус в том, что нужно обрабатывать именно эти события, но... для самой формы.
А там уже смотреть
Код:
if Sender is TScrollBox then
А какой смысл крутить скрол мышом, если мыша висит вне компонента?
Нужно обрабатывать события того компонента у которого нужно крутить скрол, но предварительно установить фокус на нем....

У нас принято пользоваться кнопочкой "Правка", дабы не плодить посты подряд, друг за другом.
Читаем правила. Рекомендую. Помимо общих правил форума есть и дополнения к ним в каждом разделе...
Уважайте форумчан, и они ответят вам взаимностью...
Модератор


Из правил раздела (которые вы не удосужились прочесть) :
Цитата:
3. Не флудить. Флудом (пустой болтовней) считается все, не относящееся к теме. Здесь не чат, а форум серьезно увлеченных людей.
К флуду относится также:
- необоснованное (не требующееся по смыслу) цитирование предыдущего поста;
- размещение своих постов подряд друг за другом - пользуйтесь кнопкой "Правка" для изменения своего сообщения.
За флуд - автор поста получит нарушение №1 - "Флуд" и 2 очка штрафа.

4. Не оффтопить. Оффтопом считается создание темы, не соответствующей названию раздела, вопрос или пост не по теме, или попытка перевода темы в русло другого вопроса.
Также к оффтопу приравнивается размещение своих личных вопросов в чужой теме, пусть даже и подходящей по смыслу. Есть вопрос - создайте свою тему.
И запомните - "Одна тема - один вопрос", "Одна тема - один автор".
За оффтоп нарушитель получит нарушение №1 - "Флуд" и 2 очка штрафа.
Перемешивай дело с бездельем и не сойдешь с ума...

Последний раз редактировалось mihali4; 31.03.2010 в 18:32.
Grag вне форума Ответить с цитированием
Старый 31.03.2010, 19:27   #6
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Прошу прощения, я неверно сформулировал вопрос, проблема не получать событие, а заставить скроллбокс стандартным образом прокручивать себя, без махинаций со значением DeltaY в методе ScrollBy, у меня каждый раз разного размера содержимое в скроллбоксе, это просто будет мартышкин труд - настраивать степень прокрутки вручную в методе ScrollBy, если есть возможность автоматически заставить его реагировать на мышь. На ноутбуке с тачпада он же автоматом прокручивается, т.е. что-то посылает контролу команду прокрутиться.

p.s. Вопрос решил, ключ к решению здесь http://www.delphisources.ru/pages/fa...ll_arrows.html
остается только прикрутить это к событиям прокрутки колеса мыши формы.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог

Последний раз редактировалось mutabor; 31.03.2010 в 21:06.
mutabor вне форума Ответить с цитированием
Старый 01.04.2010, 10:17   #7
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Цитата:
Сообщение от mutabor Посмотреть сообщение
Прошу прощения, я неверно сформулировал вопрос,
Правильно поставленная задача - половина успеха в ее решении!
Перемешивай дело с бездельем и не сойдешь с ума...
Grag вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработка события - вращение ролика мыши Дамир Общие вопросы .NET 1 25.12.2009 13:44
Обработка правой кнокпи мыши в TCoolTrayIcon Shouldercannon Общие вопросы Delphi 1 28.06.2009 11:47
Обработка сообщения отжатия левой кнопки мыши на компоненте TrackBar CyberJohn Общие вопросы Delphi 5 08.02.2009 12:34
использование колеса мыши Bayazet Общие вопросы Delphi 8 27.01.2009 14:39
прокрутка в tScrollBox Altera Компоненты Delphi 1 20.10.2008 07:22