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

C++빌더 팁&트릭
C++Builder Programming Tip&Tricks
[959] [퀴즈] OnClick 이벤트와 MouseUp이벤트의 차이점은?
장성호 [nasilso] 11833 읽음    2010-03-08 17:02
제목 그대로
   OnClick 이벤트와 MouseUp이벤트의 차이점에 대한 퀴즈입니다.

개발자에 따라

   - Button의 OnClick이벤트에 어떤 작업을 코딩하는 경우도 있구
   - Button의 OnMouseUp이벤트에 코딩하는 경우도 있더군요


대부분의 경우에 OnClick 이벤트에 작업을 코딩하던데..

두 이벤트의 차이점이 무엇인지 정확하게 알 필요가 있을것같구

또 경우에 따라 어떤 이벤트를 이용하는것이 좋을지 궁금해지네요



두 이벤트의 차이점은?

제가 알고  있는 것은 4가지 정도 인데...

첫번째
  누구나  다 알듯한데..
  OnClick이벤트는 마우스 왼쪽 버튼 up할때만 발생합니다만
  OnMouseUp이벤트는 마우스 왼쪽 뿐만 아니라 오른쪽 버튼 up 할때도 발생하죠


또 어떤게 있을까요?
김시환 [godson2]   2010-03-08 18:33 X
마우스를 버튼에서 누른 상태에서 버튼의 영역을 벗어나서 버튼을 놓았을때 차이가 발생합니다.

OnClick 이벤트 :  이벤트 함수가 실행이 안됨
OnMouseUp 이벤트 : 이벤트 함수가 실행이 됨
장성호 [nasilso]   2010-03-08 20:05 X
맞습니다.
  몇가지 더있지만 중요한것은 아니구요..

* 버튼 영역을 벗어난 경우 이벤트가 발생하지 않는다는것이 가장 중요한것 같습니다.
  Delphi(C++Builder)뿐만 아니라 vc로 만든것등 대부분의 어플리케이션이
  버튼 영역을 벗어나면 이벤트가 발생하지 않습니다. Web페이지도 마찬가지구요
 
그런 일관성을 위해서 가능하면 OnClick을 이용하는것이 바람직하다 생각합니다.
동그랑땡 [jsm0909]   2010-03-09 11:01 X
예전에 POS 프로그램 짤때 OnClick 이벤트에 코딩했던것을 OnMouseDown 에 했던 기억이 있네요
차이점은 OnClick 에 하면 사용자가 빠르게 반복적으로 클릭했을 경우 처리해 주지 못하더라구요
상품을 선택, 가격을 입력하는 버튼들 이었는데 워낙 캐셔들이 빠르게 입력해서
OnMouseDown 으로 이벤트를 바꾸니 잘 되더라구요
장성호 [nasilso]   2010-03-10 01:09 X
기본 버튼의 경우에 아무리 빨리 클릭해도
OnClick이벤트를 빠뜨리진 않는것 같은데요

단 TPanel같은 경우 Mouse를 빨리 클릭하면
OnClick한번발생하고 , 두번째는 OnDlbClick이벤트가 발생하네요
이런경우라면 OnClick보다 OnMouseDown등을 이용하는것이 좋을지도 모르겠네요
동그랑땡 [jsm0909]   2010-03-10 10:21 X
소스를 확인해 보니 기본버튼이 아니라 예쁘게 한다고 TImage 를 변형해서 버튼처럼 사용했었네요
컴포넌트에서 DoubleClick을 이벤트를 없애니 OnClick 에서 해도 제대로 작동하네요..
또 배웠습니다. 감사합니다.

+ -

관련 글 리스트
959 [퀴즈] OnClick 이벤트와 MouseUp이벤트의 차이점은? 장성호 11833 2010/03/08
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.