Джоуи
1081 / 643 / 240
Регистрация: 05.05.2015
Сообщений: 3,559
Записей в блоге: 2
1

Как обработать прокрутку мыши при нажатой кнопке Ctrl

18.05.2015, 00:55. Показов 2094. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Если конкретно, я хочу увеличивать/уменьшать изображение в TImage, если пользователь зажал ctrl и прокрутил колесико вверх/вниз

Добавлено через 40 минут
Нашел у формы событие OnMouseWheelUp, но у панелей и TImage такого нет, может можно искуственно создать событие для панели? Или создать обработчик для формы OnMouseWheelUp, а в обработчике проверять, не находится ли мышка в пределах панели/TImage-а и т.п.? Подскажет кто?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.05.2015, 00:55
Ответы с готовыми решениями:

Как поменять указатель мыши при нажатой левой кнопке?
Мне надо, чтобы при нажатии левой кнопки мыши менялся значек указателя. Как это реализовать?

Рисование при нажатой кнопке мыши
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y:...

При нажатой кнопке мыши обработать событие "вход курсора" на другой обьект
Задажа в том что нужно сделать такой принцип: опускаем клавишу миши и тягаем её по екрану (за ней...

Как отследить клик мыши при нажатой клавише Ctrl?
Всем здравствуйте. Нужно выполнить команду только в том случае, если пользователь кликнул по...

3
5705 / 2296 / 466
Регистрация: 20.11.2009
Сообщений: 7,719
Записей в блоге: 1
18.05.2015, 00:59 2
я прокрутку мыши вылавливаю вот так, на компонентах на которых нету стандартного обработчика прокрутки

Delphi
1
2
3
4
5
6
7
8
9
10
11
procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
  var Handled: Boolean);
begin
  if Msg.message = WM_MOUSEWHEEL then
    begin
      if ShortInt(HiWord(Msg.wParam)) > 0 then
        // прокрутка колеса в одну сторону
      else
        // прокрутка колеса в другую сторону
    end;
end;
0
пофигист широкого профиля
4731 / 3166 / 858
Регистрация: 15.07.2013
Сообщений: 18,231
18.05.2015, 01:54 3
Цитата Сообщение от Arcor Посмотреть сообщение
я прокрутку мыши вылавливаю вот так, на компонентах на которых нету стандартного обработчика прокрутки
А как ты определяешь на каком именно компоненте прокрутили колесо мыши, чтобы именно в том компоненте что-то сделать/изменить?
Может стоит раскрыть секрет LParam?
0
5705 / 2296 / 466
Регистрация: 20.11.2009
Сообщений: 7,719
Записей в блоге: 1
18.05.2015, 02:25 4
хм.. можно так наверно )

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
  var Handled: Boolean);
var MP: TPoint;
    Control: TWinControl;
begin
  if Msg.message = WM_MOUSEWHEEL then
    begin
      MP.X := Word(Msg.lParam);
      MP.Y := HiWord(Msg.lParam);
 
      Control := FindVCLWindow(MP);
 
      if Control = nil then
        Handled := True
      else if Control.Handle <> Msg.hwnd then
        begin
 
          if Control = Panel1 then
            begin
              if ShortInt(HiWord(Msg.wParam)) > 0 then
                Caption := 'Panel ++'
              else
                Caption := 'Panel --';
            end;
 
          if Control = Button1 then
            begin
              if ShortInt(HiWord(Msg.wParam)) > 0 then
                Caption := 'Button ++'
              else
                Caption := 'Button --';
            end;
 
          SendMessage(Control.Handle, WM_MOUSEWHEEL, Msg.wParam, Msg.lParam);
          Handled := True;
        end;
    end;
end;
0
18.05.2015, 02:25
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.05.2015, 02:25
Помогаю со студенческими работами здесь

Cобытие MouseMove при нажатой левой кнопке мыши
Сделал у PictureBox событие MouseMove. Если просто провести мышкой над PictureBox все срабатывает,...

Прокрутка страницы при нажатой левой кнопке мыши
Есть такой код document.onmousedown = function(e) { e = e || window.event; down = 1; x...

MouseMove при нажатой правой кнопке мыши и рамки в PictureBox
Как избежать изменения действия события pictureBox1_MouseMove при смене рамки изображения внутри...

Событие мыши Mouse Down и получение координат при нажатой кнопке
день добрый, подскажите пожалуйста, как сделать так, что бы при нажатой кнопке мыши в области...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru