|
이벤트핸들러에서 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개 이상 처럼 많은 양을 사용 하게 되면 노가다가 될것 같은데 쉽게 구현 할수 있는방법이 있을까요?
|