Консультация № 171272
12.08.2009, 22:52
0.00 руб.
0 3 1
Здравствуйте уважаемые эксперты. Помогите пожалуйста. Как мне отследить клик правой кнопкой мыши на Image. С левой кнопкой проблем не возникает (событие Image1Click).

Обсуждение

Неизвестный
12.08.2009, 23:56
общий
это ответ
Здравствуйте, Смирнов Михаил Владимирович.

Используйте событие OnMouseDown. В его обработчик передаются дополнительные параметры, в том числе информация о том, какая клавиша мыши была нажата, причём информация о клавише содержится сразу в двух рараметрах: Button и Shift.
Можно также назначить срабатывание не на нажатие клавиши, а на её отпускание (событие OnMouseUp), но в этом случае следует иметь в виду
, что информация о клавише мыши в параметр Shift включена не будет и необходимо будет воспользоваться параметром Button.

Приложение:
// Вариант 1

procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if Button = mbRight then
ShowMessage('Правая кнопка');
end;

// Вариант 2

procedure TForm1.Image2MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if ssRight in Shift then
ShowMessage('Правая кнопка');
end;
Неизвестный
13.08.2009, 11:28
общий
На всякий случай: тип TShiftState - это множество:
TShiftState = set of (ssShift, ssAlt, ssCtrl, ssLeft, ssRight, ssMiddle, ssDouble);
Неизвестный
17.08.2009, 23:39
общий
Спасибо большое!!! :)
Форма ответа