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

Вниз

Как заставить приложение реагировать на Колесико мышки... )   Найти похожие ветки 

 
Алексей С.   (2007-01-30 21:47) [0]

Весь вопрос в теме.
Заранее спасибо!


 
Olivetti   (2007-01-30 21:59) [1]

Оно реагирует.


 
unknown ©   (2007-01-30 22:00) [2]

type
 TForm1 = class (TForm)
   procedure Wheel(var Message  : TMessage); message WM_MOUSEWHEEL;
 end;

var
 Form1  : TForm1;

implementation

{$R *.dfm}

procedure TForm1.WHEEL(var Message  : TMessage);
begin
 Caption := IntToStr(TWMMouseWheel(Message).YPos);
end;


 
Алексей С.   (2007-01-30 22:43) [3]

Спасибо!


 
Алексей С.   (2007-01-30 22:50) [4]

Только вот один момент: данная процедура выдает результат текущее положени У на момент прокрутки колеса, а вот КАК узнать куда было прокручено колесо вперед или назад ???


 
Olivetti   (2007-01-30 22:55) [5]

TWMMouseWheel(Message).WheelDelta


 
Olivetti   (2007-01-30 22:56) [6]

И, эта... inherited


 
Efir   (2007-01-30 22:58) [7]


> Только вот один момент: данная процедура выдает результат
> текущее положени У на момент прокрутки колеса, а вот КАК
> узнать куда было прокручено колесо вперед или назад ???


Ну дык зная предыдущее значение.


 
Алексей С.   (2007-01-30 22:59) [8]

Спасибо, вопрос снят. Задача решена. Пусть я до конца не разобрался... но вопросов пока нет. Всем Спасибо!


 
Olivetti   (2007-01-30 23:00) [9]

Ну дык зная предыдущее значение.

YPos - это положение курсора мыши относительно окна.
Казалось бы, при чем тут колесико?


 
Olivetti   (2007-01-30 23:10) [10]

Пусть я до конца не разобрался...

type
 TForm1 = class(TForm)
 private
   procedure MouseWheel(var Msg: TWMMouseWheel); message WM_MOUSEWHEEL; // 1
 end;

procedure TForm1.MouseWheel(var Msg: TWMMouseWheel);
begin
 Caption := IntToStr(Msg.WheelDelta);
end;


Пояснения:

Сообщения ОС передаются в оконную функцию окна, которое же - форма. Строка 1 декларирует метод-обрабочик сообщения от колесика мыши. WM_MOUSEWHHEL - константа, определяющая номер сообщения (все сообщения пронумерованы), и, при поступлении сообщения с этим номером, будет вызван этот метод-обработчик. В качестве параметра все методы-обработчики принимают типовую запись с параметрами сообщения (TWMMouseWheel - по размеру и некоторым полям полностью соответствует TMessage, а кое-где, типа, отличается). В этой записи хранится сопутствующая информация. Расположение данных в записи, ясное дело, зависит от номера сообщения. В обработчике (в примере) из записи извлекаются необходимые данные и выводятся в заголовок формы. Потом еще вызывается унаследованный обработчик. А, еще в записи можно вернуть результат обработки сообщения. Типа как-то так...



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

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

Наверх





Память: 0.47 MB
Время: 0.039 c
3-1164095083
Patrick
2006-11-21 10:44
2007.02.18
Репликация в Oracle


15-1170058773
dddd
2007-01-29 11:19
2007.02.18
Как по укозателю вернуть сам объект


15-1169716923
cyborg
2007-01-25 12:22
2007.02.18
Первый турецкий астронавт полетит на Луну в 2014 году


9-1143825829
Yegorchic
2006-03-31 21:23
2007.02.18
Поворот FreeForm


2-1170082958
iviom
2007-01-29 18:02
2007.02.18
Как разобраться с языком и региональными настройками?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский