안녕하세요.
Set 변수값은 어떻게 볼 수 있나요?
코드는 다음과 같습니다.
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;
디버거에서 보면 어떤 마우스 버튼를 누르던지 다음과 같이 보입니다.
SHIFT [SSCTRL..SSLEFT, SSMIDDLE]
Button 의 경우 좌우버튼에 따라 다른 값을 보여줍니다.
BUTTON MBLEFT
BUTTON MBRIGHT
TShiftState 정의는 다음과 같습니다.
{ Types used by standard events }
TShiftStateEnum = (ssShift, ssAlt, ssCtrl,
ssLeft, ssRight, ssMiddle, ssDouble,
// Extra additions
ssMeta, ssSuper, ssHyper, ssAltGr, ssCaps, ssNum,
ssScroll,ssTriple,ssQuad,ssExtra1,ssExtra2);
{$packset 1}
TShiftState = set of TShiftStateEnum;
{$packset default}
다음과 같이 일일이 다 코딩해야하나요.
if ssShift in Shift then
ShowMessage('ssShift');
if ssAltin Shift then
ShowMessage('ssAlt');
.......
if ssExtra2in Shift then
ShowMessage('ssExtra2'); |