안녕하세요.
마우스 좌우버튼을 구분하여 더블클릭 이벤트를 감지하려고 하는데 잘 안됩니다.
환경은 윈도7 64비트, CodeTyphon 4.41 32비트 입니다.
OnDblClick 이벤트를 사용하면 되는데 좌우 버튼을 구별할 수 없네요.
procedure TFormMain.TrayIconMainDblClick(Sender: TObject);
begin
ShowMessage('double click'); // 좌우 버튼을 구별할 수 없음..
end;
OnMouseUp 이벤트를 이용해볼려고 했는데 생각처럼 안되네요.
procedure TFormMain.TrayIconMainMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if mbRight = Button then
ShowMessage('right click')
else if (mbLeft = Button) and (ssDouble in Shift) then
begin
ShowMessage('left double click');
end;
end;
그냥 if ssDouble in Shift then 해도 이벤트가 발생하지 않습니다.
LCL 도움말에서도 ssDouble 이 마우스 더블클릭이 맞는데 말이죠. 흠.
type TShiftStateEnum = (
ssShift, // Shift key pressed
ssAlt, // Alt key pressed
ssCtrl, // Ctrl key pressed
ssLeft, // Left mouse button pressed.
ssRight, // Right mouse button pressed.
ssMiddle, // Middle mouse button pressed.
ssDouble, // Double mouse click.
ssMeta, // Meta key pressed.
ssSuper, // Super key pressed.
ssHyper, // Hyper key pressed.
ssAltGr, // Alt-GR key pressed.
ssCaps, // Caps lock key pressed
ssNum, // Num lock key pressed
ssScroll, // Scroll lock key pressed
ssTriple, // Triple mouse click
ssQuad, // Quadruple mouse click
ssExtra1, // Extra key 1
ssExtra2 // Extra key 2
);