C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
분야별 포럼
C++빌더
델파이
파이어몽키
C/C++
프리파스칼
파이어버드
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

자유게시판
세상 살아가는 이야기들을 나누는 사랑방입니다.
[28805] 델마당 질답 게시판의 버튼 연속 클릭 막기에 대해서
주정섭 [jjsverylong] 2729 읽음    2020-03-11 16:35
델마당 게시판들을 어설렁거리다 질답게시판에서 재밌는 질문을 발견했다. 버튼을 연속 클릭하면 버튼의 클릭 이벤트가 연속으로 발생하는 것을 어떻게 막는가에 대한 질문이다. 아래는 이 질문에 대한 링크다.

질문과 답변 게시판의 글 166018

https://www.delmadang.com/community/bbs_view.asp?bbsNo=17&bbsCat=0&indx=457394&page=4

이 질문에 대해서 댓글은 많은데 뭔가 명확한 답변글은 없어 보인다.

이런 문제를 안 당하면 좋겠지만, 이 문제 해결책이 의외로 만만치 않다. 버튼의 클릭 이벤트 메서드가 꽤나 오랜 시간동안 동작하는 코드를 포함한다면, 버튼 연속 클릭을 막지 않으면 다소 골치 아픈 문제가 발생한다. 사용자 중에는 버튼을 습관적으로 더블 클릭하는 사람들이 있다. 심지어 세번 연속 클릭하는 사람도 있다. 이말인즉, 로그인 버튼인 경우, 연속 클릭하면 재수 없으면 로그인 창이 세번 뜰수도 있음을 말한다.

참고로 이 버튼 연속 클릭 문제는 MFC, Winform, 자바스크립트, WPF, 자바 등에서도 발생한다.

원래 버튼은 재진입을 막아야 한다. 다시 말해서 연속 클릭을 대비해야 한다. C#의 Winform이든 델파이의 VCL이든 버튼 이벤트 중에 클릭 이벤트는 있지만, 더블 클릭 이벤트는 없다. 따라서 개발자가 알아서 더블 클릭 이벤트를 처리해야 한다.

최근에 내가 쓴 책에 이 문제를 다룬 챕터가 있어서 여기에 소개한다. 이 책의 예제 소스는 시샵으로 되어 있지만, 코드가 매우 간단하므로 쉽게 델파이 방식으로 바꿀 수 있다. 책 전반부는 책 소개 및 기초 이론이므로, 성질 급한 사람은 바로 ClickDisabler 챕터를 읽으면 된다.

뷰어 프로그램으로 책을 보기를 권하고 싶지만, 바이러스 감영 등의 이유로 외부 프로그램 실행이 꺼림칙하다면 PDF 버전을 봐도 무방하다. 단, PDF 버전은 소스 파일을 포함하고 있지 않다.

뷰어 다운 로드 링크  https://www.dropbox.com/s/fr9s9090bvwkf22/LazyProgrammer.zip?dl=1
pdf 버전 다운 링크 https://www.dropbox.com/s/0nantjoigfp3d9k/LazyDemo.zip?dl=1

+ -

관련 글 리스트
28805 델마당 질답 게시판의 버튼 연속 클릭 막기에 대해서 주정섭 2729 2020/03/11
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.