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

C++빌더 Q&A
C++Builder Programming Q&A
[66534] Re:이벤트 관련해서 질문좀 드릴겠습니다~
장성호 [nasilso] 801 읽음    2012-03-08 17:52
이벤트핸들러에서  Sender가  이벤트가 발생한 control입니다.

님께서 코딩을 Sender를 이용해서 하도로 잘 하셨습니다.

----------------------------------------------
문제는 Contorl의 event연결이 하나의 함수에 해야하는데
각각 따로 되어있을뿐입니다.


Design-time에
ObjectInspector에서  모두 같은 함수 (예- CheckBox3MouseDown ) 걸어주시면 됩니다.
나머지는 삭제하시구요(메소드 내부 코드를 없애고 save하면 자동으로 삭제됨)

run-time에 하시려면
다음과 같이 코딩으로 이벤트핸들러를 연결해주시면 됩니다.

CheckBox3->OnMouseDown = CheckBox3MouseDown;
CheckBox4->OnMouseDown = CheckBox3MouseDown;
CheckBox5->OnMouseDown = CheckBox3MouseDown;
CheckBox6->OnMouseDown = CheckBox3MouseDown;

위와같이 하면
CheckBox4MouseDown , CheckBox5MouseDown , CheckBox6MouseDown ....
함수들을 필요없게 됩니다.


그럼..


쌩조 님이 쓰신 글 :
: 같은 내용을 서로 다른 버튼의 이벤트에 적용 시키는 작업을 하고 있습니다. 완전 초보라 어떻게 해야되는지를 잘 모르겠습니다.
:
: void __fastcall TForm1::CheckBox3MouseDown(TObject *Sender, TMouseButton Button,
:       TShiftState Shift, int X, int Y)
: {
:
:
:            if(Shift.Contains(ssLeft))
:     {
:         TCheckBox *ChkBox=(TCheckBox *)Sender;
:         if(!ChkBox->Checked)
:         {
:     if(GetCheckBoxCheckedCount()>=3){
:                 ReleaseCapture();
:             }
:     }
:     }
:     }
: //---------------------------------------------------------------------------
: void __fastcall TForm1::CheckBox4MouseDown(TObject *Sender, TMouseButton Button,
:       TShiftState Shift, int X, int Y)
: {
:                if(Shift.Contains(ssLeft))
:     {
:         TCheckBox *ChkBox=(TCheckBox *)Sender;
:         if(!ChkBox->Checked)
:         {
:             if(GetCheckBoxCheckedCount()>=3)
:             {
:                 ReleaseCapture();
:             }
:             }
:         }
: }
: //---------------------------------------------------------------------------
: void __fastcall TForm1::CheckBox5MouseDown
:     (TObject *Sender, TMouseButton Button,TShiftState Shift, int X, int Y)
: {
:            if(Shift.Contains(ssLeft))
:     {
:         TCheckBox *ChkBox=(TCheckBox *)Sender;
:         if(!ChkBox->Checked)
:         {
:             if(GetCheckBoxCheckedCount()>=3)
:             {
:                 ReleaseCapture();
:             }
:             }
:         }
: }
: //---------------------------------------------------------------------------
: void __fastcall TForm1::CheckBox6MouseDown(TObject *Sender, TMouseButton Button,
:       TShiftState Shift, int X, int Y)
: {
:                if(Shift.Contains(ssLeft))
:     {
:         TCheckBox *ChkBox=(TCheckBox *)Sender;
:         if(!ChkBox->Checked)
:         {
:             if(GetCheckBoxCheckedCount()>=3)
:             {
:                 ReleaseCapture();
:         }
:         }
:         }
:     }
: //---------------------------------------------------------------------------
:
:
: 지금은 버튼이 얼마 없어 크게 문제가 안되는데 나중에 100개 이상 처럼 많은 양을 사용 하게 되면 노가다가 될것 같은데 쉽게 구현 할수 있는방법이 있을까요?

+ -

관련 글 리스트
66531 이벤트 관련해서 질문좀 드릴겠습니다~ 쌩조 789 2012/03/08
66534     Re:이벤트 관련해서 질문좀 드릴겠습니다~ 장성호 801 2012/03/08
66535         Re:Re:이벤트 관련해서 질문좀 드릴겠습니다~ 쌩조 867 2012/03/08
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.