FreePascal Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
FreePacal 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

FreePascal Q&A
[126] Set 변수값 보는 방법?
MarunGuy [marunguy] 3269 읽음    2013-08-09 11:49
안녕하세요.

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');

+ -

관련 글 리스트
126 Set 변수값 보는 방법? MarunGuy 3269 2013/08/09
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.