|
언제나 저의 시야를 넓혀 주셔서 감사합니다^^
장성호 님이 쓰신 글 :
: 이벤트핸들러에서 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개 이상 처럼 많은 양을 사용 하게 되면 노가다가 될것 같은데 쉽게 구현 할수 있는방법이 있을까요?
|