Anti-noob

Объявление

Новая услуга "Реклама на форуме"

Подробнее в >>теме<<

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Anti-noob » Pascal/Delphi » Щелчок мыши и его обработка


Щелчок мыши и его обработка

Сообщений 1 страница 2 из 2

1

Всем привет!
В этой статье я расскажу вам о щелчке мыши и его свойствах в Delphi 7
Windows приложение сейчас трудно представить без использования компьютерной мыши. Многие элементы управления доступны посредством использования мыши. Клик (щелчок) мыши в основном меню почти любой программы позволит быстро выполнить необходимое нам действие.
В среде Delphi основной обработчик клика (щелчка) мыши на компоненте - это событие onClick. Это событие в основном используют в объектах типа переключатель или кнопка. Есть еще одно событие OnDblClick (двойной клик на объекте). Эти события не дают нам информацию о точных координатах указателя мыши.
Данное положение вещей не всегда удовлетворяет запросам разработчика. И поэтому в Delphi присутствуют  еще два события - это OnMouseUp (происходит при отпускании кнопки мыши) и OnMouseDown (происходит при нажатии кнопки мыши).Эти события несут подробную информацию о параметрах клика: точные координаты указателя в пределах клиентской области объекта на котором был выполнен клик, тип клика (двойной или одинарный), состояние системных клавиш SHIFT, ALT и CTRL, какая кнопка мыши была нажата или отпущена.
Заголовки у данных событий различаются, но в остальном все параметры идентичны.

Код:
procedure TForm1.Memo1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);

TMouseButton является перечисляемым типом и содержит три значения: mbRight, mbMiddle, mbLeft, что будет означать была ли использована правая средняя или левая кнопка мыши.

Давайте расположим на форме компонент Панель (Panel) и в свойствах напишем такой обработчик для события OnMouseUp:

Код:
procedure TForm1.Panel1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  if Button = mbRight then
      ShowMessage('Вы нажали правую кнопку мыши');
end;

Теперь запустив приложение и нажав правую кнопку мыши мы получим сообщение.

TShiftState - тип представляющий собой множество из ниже перечисленных значений и необходимо проверять комбинации допустимых значений.

Код:
TShiftState = set of (ssShift, ssAlt, ssCtrl,
    ssLeft, ssRight, ssMiddle, ssDouble);

значение элементов множества:
Нажата клавиша  SHIFT - ssShift;
Нажата клавиша ALT - ssAlt;
Нажата клавиша CTRL - ssCtrl
Нажата  левая кнопка мыши - ssLeft;
Нажата правая кнопка мыши - ssRight;
Нажата средняя клавиша мыши - ssMiddle;
Использован двойной клик мыши - ssDouble.

Расположим на форме Панель и зададим обработчик OnMouseUp следующего содержания:

Код:
procedure TForm1.Panel2MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
   if ssAlt in Shift then
      ShowMessage('Нажата клавиша Alt');
end;

Запустив приложение нажмем клавишу Alt и кликнув на какой либо из клавиш мыши мы получим сообщение.

В среде Delphi присутствует еще одно событие OnMouseMove, которое происходит при перемещении мыши над объектом.
Давайте создадим это событие для формы:

Код:
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
      Form1.Caption := 'X = '+ IntToStr(X)+' Y = '+IntToStr(Y);
end;

Запустим приложение и теперь при перемещении указателя мыши мы будем видеть ее координаты в строке заголовка формы.

http://s1.uploads.ru/t/Ktx7I.jpg

Итог: мы ознакомились в теории и практике с событиями, связанными с компьютерной мышью.

Отредактировано Pirate (2013-05-18 13:48:46)

2

Спасибо, так раз учусь в  Delphi 7 программировать, читал с удовольствием!


Вы здесь » Anti-noob » Pascal/Delphi » Щелчок мыши и его обработка