Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.03.28;
Скачать: [xml.tar.bz2];

Вниз

мышь и прокрутка StringGrid-a   Найти похожие ветки 

 
Olivka   (2002-03-16 19:27) [0]

Еще один вопрос есть - событие (на StringGrid-e) OnMouseWheelDown (up) для всех мышей одинаковы? Вот у меня, например, мышь Genius c кнопкой вместо колеса, так при прокрутке этой кнопкой у меня не срабатывают эти события, а какое тогда срабатывает? Я так поняла, что при этом у меня сдвигается область просмотра таблицы, при этом перерисовываются только верхние, или нижние ячейки соответственно (я думала, что должны все перерисовываться).
и еще - можно ли вообще запретить прокрутку с помощью колеса(кнопки).
С уважением.


 
Song   (2002-03-16 22:15) [1]

Есть одно предположение, но не ручаюсь, что попаду в точку.
Для большинства мышей, с доп. кнопками особенно, устанавливается доп. ПО, например для вашей - это ПО Genius Mouse Mate, Вы можете определить его наличие по значку с глазами в трее. Дык вот, есть предположение, что нажатие доп. кнопок и движение колеса скрола управляет не Windows (не её встроенным драйвером), а драйвером от Mouse Mate, поэтому программа, написанная в Дельфи, не может получать сообщений от этого драйвера, может быть даже потому, что это в ней это не предусмотрено. В принципе колесо уже давно стало стандартным в ОС и его поддержка реализована в винде, начиная с Win 98 SE, а хук на колесо в Mouse Mate, я думаю, оставили для того, чтобы регулировать скорость прокрутки (сколько строчек будет прокручиваться за один щелчок колеса). В Win XP это реализовано уже внутренне.
Не ручаюсь за правильность идеи, но похоже на истину.


 
Olivka   (2002-03-16 22:47) [2]

Абсолютно верно, без этой программы в трее кнопка не работает. ПОлучается, что я даже не смогу запретить прокрутку с помощью мыши в программе?


 
Song   (2002-03-17 09:40) [3]

Есть два пути:
1. Ловить и нулить все сообщения от колеса. Но т.к. их не возникает значит этот вариант обломился.
2. Отключить программно. Может где в реестре. Это извините не знаю.
3. Попробовать отлавливать и нулить системные сообщения WM_MOUSEWHEEL и CM_MOUSEWHEEL
4. Я посмотрел исходники по работе с колесом (модуль control) и вот чего нарыл.
Можно отключить очень просто, но написано что работает по NT, но с виндой сохраняется такая тенденция, что некоторые процедуры работают в других ОС:

SystemParametersInfo(SPI_SETWHEELSCROLLLINES, 0,0,0);

В данном случае мы говорим системе, что при прокрутке прокручивать 0 строк т.е. ничего. Но не забудьте перед изменением получить число, которое было до Вашего изменения через SPI_GETWHELL.. и восстановить его на выходе.

Также посмотрите три интересных функции в модуле, не буду сюда их постить, они объемные. Они как раз касаются определения наличия колеса и действий, если оно найдено/не найдено:

GetRegisteredData
GetNativeData
SettingsChanged


 
Olivka   (2002-03-17 21:41) [4]

Ух, спасибо большое!



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.03.28;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.009 c
1-90842
Velocity
2002-03-16 16:45
2002.03.28
Икона для программулины...


3-90815
Yulik
2002-03-05 11:31
2002.03.28
Как проконтролировать ввод данных в DbGrid?


1-90955
skywalker
2002-03-14 11:36
2002.03.28
Ресурс курсора


4-91115
Stormick
2002-01-28 23:22
2002.03.28
Мастера проблема (опять HOOK), вернее DLL


6-91032
Beginer
2001-11-12 08:43
2002.03.28
Подключить сетевой диск...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский