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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.01.2009, 10:42   #1
Bayazet
Форумчанин
 
Регистрация: 08.12.2008
Сообщений: 156
По умолчанию использование колеса мыши

поискал в форуме, вроде не возникало таких тем.

мне нужно использовать ролик мыши (нажатие на него и прокрутку)
как можно определить его на подобии mbRight, mbLeft, mbCenter?
mbCenter - это не то.
желательно получать так же Х и У от нажатий
Bayazet вне форума Ответить с цитированием
Старый 27.01.2009, 10:47   #2
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

может я не правильно понимаю, но возьмите события формы
Код:
procedure TMainForm.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin

end;
TMainForm.FormMouseWheelDown(Sender: TObject; Shift: TShiftState;
  MousePos: TPoint; var Handled: Boolean);
begin

end;
procedure TMainForm.FormMouseWheelUp(Sender: TObject; Shift: TShiftState;
  MousePos: TPoint; var Handled: Boolean);
begin

end;
и их обрабатывайте
SERG1980 вне форума Ответить с цитированием
Старый 27.01.2009, 10:56   #3
Bayazet
Форумчанин
 
Регистрация: 08.12.2008
Сообщений: 156
По умолчанию

хм... а вот слоника-то я и не заметил..

procedure TMainForm.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);

это событие не может обработать нажатие на колесо мышки.

а насчет 2х других - то что надо.

только тогда встречный вопрос: как можно не используя события типа
procedure TMainForm.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);

извлечь положение курсора(Х,У)?
Bayazet вне форума Ответить с цитированием
Старый 27.01.2009, 10:58   #4
Bayazet
Форумчанин
 
Регистрация: 08.12.2008
Сообщений: 156
По умолчанию

тьфу, блин! MousePos: TPoint.........

все, тему можно закрывать. я буксую что-то, извините
Bayazet вне форума Ответить с цитированием
Старый 27.01.2009, 11:20   #5
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

Цитата:
Сообщение от Bayazet Посмотреть сообщение
хм... а вот слоника-то я и не заметил..

procedure TMainForm.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);

это событие не может обработать нажатие на колесо мышки.
почему нельзя а как же Button: TMouseButton;
if Button=mbMiddle then.............
SERG1980 вне форума Ответить с цитированием
Старый 27.01.2009, 14:15   #6
Bayazet
Форумчанин
 
Регистрация: 08.12.2008
Сообщений: 156
По умолчанию

дело в том, что колесико не считается центральной кнопкой мыши.
mbMiddle - наследие предков, которые использовали мышки, в простонародии именнуемые БАТОНАМИ, где была такая центральная кнопка.
колесико - совсем другое
Bayazet вне форума Ответить с цитированием
Старый 27.01.2009, 14:18   #7
KORN
Банхаммер
Участник клуба
 
Аватар для KORN
 
Регистрация: 17.02.2007
Сообщений: 1,754
По умолчанию

mbMiddle это кнопка которая находится под колесом... это сделано для того что бы не делать 3 кнопки и колесо отдельно
Перед тем как спросить ищи на форуме и в GOOGLE
KORN вне форума Ответить с цитированием
Старый 27.01.2009, 14:28   #8
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

Цитата:
Сообщение от Bayazet Посмотреть сообщение
дело в том, что колесико не считается центральной кнопкой мыши.
mbMiddle - наследие предков, которые использовали мышки, в простонародии именнуемые БАТОНАМИ, где была такая центральная кнопка.
колесико - совсем другое
Это кто Вам такое наговорил ?
Сами-то хоть раз пробовали события мыши обрабатывать ?
Если нет - попробуйте ...
Или может на Вашей мышке колесико просто не нажимается ? Есть такие модели мышей...
Работаем с нажатием на колесо зверушки :
Код:
procedure TMainForm.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
....
if Button=mbMiddle then.............
.....
... немного описания в модуле Controls :
Код:
TMouseButton = (mbLeft, mbRight, mbMiddle);
"Заряженному танку в дуло не смотрят" @Dekmer in WoT

Последний раз редактировалось Kotofff; 27.01.2009 в 14:30.
Kotofff вне форума Ответить с цитированием
Старый 27.01.2009, 14:39   #9
Bayazet
Форумчанин
 
Регистрация: 08.12.2008
Сообщений: 156
По умолчанию

да, пробовал. не обрабатывается.

правда у меня достаточно навороченная мыша логитек, с драйвером на 40 мегабайт... и колесико умеет влево-вправо наклонятся. видимо в этом и таится разгадка..

но. в последнее время я стал нередко встречаться с подобными моделями, особенно на ноутбуках, следовательно, владельцам таких мышей будет неприятно осознавать свою ущербность в плане функциональности.
Bayazet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
кнопка мыши Drive Общие вопросы C/C++ 4 23.12.2008 23:40
Эмуляция мыши Travolta Общие вопросы .NET 0 07.11.2008 14:43
Клик мыши stayer Общие вопросы Delphi 1 30.10.2008 19:53
Стрелка мыши Gladiator Общие вопросы Delphi 3 21.05.2008 20:56
нажата ли кнопка мыши? VDLab Общие вопросы Delphi 2 15.11.2006 00:59