Главная страница
    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.46 MB
Время: 0.042 c
2-1170331799
=Teddy=
2007-02-01 15:09
2007.02.18
Отправка сообщений на почтовый сервер


15-1169976545
SerJaNT
2007-01-28 12:29
2007.02.18
Что за файлы?


1-1166872599
S_T_E_P_A_N___
2006-12-23 14:16
2007.02.18
Управление веб-сайтами из Delphi-программы


2-1170234492
FAskerQ
2007-01-31 12:08
2007.02.18
ListView


1-1167140545
Priest
2006-12-26 16:42
2007.02.18
Как перебрать все классы, присутвующие в пакете (Run-Time)





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