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

FreePascal Q&A
[132] Re:Re:마우스 좌우버튼 구분하여 더블클릭 이벤트 감지하는 방법?
MarunGuy [marunguy] 7299 읽음    2013-08-10 12:55
답변 감사합니다.

civilian 님 괜찮으시다면 예제 좀 부탁해도 될까요?
TMessage 를 보면 어떤 컴포넌트에서 이벤트가 발생했는지 알만한 부분이 없습니다.

델파이(VCL)에서는 TMessage 는 다음과 같습니다.
TMessage = packed record
  Msg: Cardinal;
  case Integer of
    0: (WParam: WPARAM;
        LParam: LPARAM;
        Result: LRESULT;);
    1: (WParamLo: Word;
        WParamHi: Word;
        LParamLo: Word;
        LParamHi: Word;
        ResultLo: Word;
        ResultHi: Word;);
end;


라자루스(LCL)에서는 다음과 같습니다.
procedure WMRButtonDBLCLK(var Message: TLMRButtonDblClk); message LM_RBUTTONDBLCLK;
type TLMRButtonDblClk = TLMMouse;
type TLMMouse = record
  Msg: Cardinal;
  Keys: PtrInt;
  case Integer of
    0: (
        XPos: SmallInt;
        YPos: SmallInt;
      );
    1: (
        Pos: TSmallPoint;
      );
    2: (
        Dummy: LPARAM;
        Result: LRESULT;
      );
end;



civilian 님이 쓰신 글 :
:     procedure WMRButtonDblClick(var Message: TMessage); message WM_RBUTTONDBLCLK;
:
: 폼에서 메세지를 핸들링하면 되지 않을까요?
: 델파이에선 잘 됩니다.
:
: MarunGuy 님이 쓰신 글 :
: : 안녕하세요.
: :
: : 마우스 좌우버튼을 구분하여 더블클릭 이벤트를 감지하려고 하는데 잘 안됩니다.
: : 환경은 윈도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
: : );

: :

+ -

관련 글 리스트
123 마우스 좌우버튼 구분하여 더블클릭 이벤트 감지하는 방법? MarunGuy 3575 2013/08/08
133     Re:마우스 좌우버튼 구분하여 더블클릭 이벤트 감지하는 방법? MarunGuy 7779 2013/08/12
131     Re:마우스 좌우버튼 구분하여 더블클릭 이벤트 감지하는 방법? MarunGuy 7887 2013/08/10
130     Re:마우스 좌우버튼 구분하여 더블클릭 이벤트 감지하는 방법? civilian 7025 2013/08/09
132         Re:Re:마우스 좌우버튼 구분하여 더블클릭 이벤트 감지하는 방법? MarunGuy 7299 2013/08/10
124     Re:마우스 좌우버튼 구분하여 더블클릭 이벤트 감지하는 방법? 장성호 3554 2013/08/09
125         Re:Re:마우스 좌우버튼 구분하여 더블클릭 이벤트 감지하는 방법? MarunGuy 4366 2013/08/09
127             Re:Re:Re:마우스 좌우버튼 구분하여 더블클릭 이벤트 감지하는 방법? 장성호 12313 2013/08/09
128                 Re:Re:Re:Re:마우스 좌우버튼 구분하여 더블클릭 이벤트 감지하는 방법? MarunGuy 7691 2013/08/09
129                     Re:Re:Re:Re:Re:마우스 좌우버튼 구분하여 더블클릭 이벤트 감지하는 방법? 장성호 7403 2013/08/09
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.