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
[67949] Re:Re:Re:Re:똑같은 일을 하는 버튼 질문좀요
김시환 [godson2] 1035 읽음    2012-08-09 10:08
지적 감사합니다.  ^^;;
그런데 제가 답변을 쓴 이유는 범용적이 차원에서 추가 답변을 쓴 것입니다.

프로그램을 하다보면 특화된 기능만 코딩하기도 하지만 이왕이면 범용적으로 코딩을 하면
나중에 다시 재 사용하는 차원에서도 도움이 되고 또 다른 분이 비슷한 기능을 원했을 때
캡션이 숫자가 아닐 수도 있는 경우도 있으니 참고로 적어 놓은 것입니다.

저도 Q/A를 많이 이용해서 많은 정보를 얻는데 이왕이면 좀더 좋은 기능을 추가적으로
확인할 수 있으면 코딩에 많이 도움이 돼서요..




時代遺憾 님이 쓰신 글 :
: 글쎄요 김시환님의 방법도 틀린 방법은 아니지만
: 최초 질문자의 질문 내용 중에 임의 버튼 클릭 시 해당 버튼의 캡션을 출력한다는 내용의
: 요지를 보았을 때...
: 캡션이 숫자이든 문자이든 이것은 중요한 사안이 아닌것같습니다.
: 중요한 것은 100개의 버튼이 있고 100개의 버튼이 반복적인 캡션을 출력하는 작업을 해야하는데
: 이때 함수 한번만 호출해서 처리할 수 있는 메카니즘을 궁금해 하신것 같네요
: 그런 차원에서는 장성호님이 답변하신 방법이 가장 적당하다고 생각됩니다..
:
:
: 김시환 님이 쓰신 글 :
: : 장성호님 글에 추가로 하나더 알려드리면
: :
: : 장성호님 처럼 버튼의 캡션 속성을 이용하게 되면 캡션은 무조건 숫자가 되어야 합니다.
: :
: :
: : 컴포넌트에는 Tag라는 속성이 있습니다. 이것을 이용하면 버튼의 캡션과 무관하게 사용할 수 있습니다.
: : Tag 속성이 Int 이므로 각 버튼마다 Tag 속성의 값을 번호로 매겨 놓습니다.
: :
: :  void __fastcall TF_Main::Button12Click(TObject *Sender)
: :  {
: :      TButton *Btn=(TButton *)Sender;
: : 
: :       switch(Btn->Tag)
: :       {
: :           case 1 :
: :           case 2 :
: :                    :
: :           case 100 :
: :       }
: :  }
: :
: : 위의 예처럼 switch 문을 사용하기도 편하고 Tag 숫자를 파라메터로 해서 함수를 호출할 수도 있습니다.
: :
: :   
: :
: : 장성호 님이 쓰신 글 :
: : : 다음과 같이 하면 됩니다.
: : :
: : :
: : : void __fastcall TF_Main::Button12Click(TObject *Sender)
: : : {
: : :     TButton *Btn=(TButton *)Sender;
: : : 
: : :      Memo1->Lines->Add(Btn->Caption);
: : : }
: : : 

: : : 축구 님이 쓰신 글 :
: : : : 버튼 100개가 있는데 하는일이 누르면 자기가 가지고 있는 캡션을 출력을 한다고 할시
: : : :
: : : : 같은걸 100번 코딩하는거 말고 함수를 하나 만들어서 해도 되는데요
: : : :
: : : : 1번 버튼이눌렸는지 2번버튼이 눌렸는지 그건 어떻게 아는 거에요?
: : : :
: : : : 함수를 하나 만든다면 버튼마다 함수 호출할때 어떤게 눌렸는지 인자를 넘겨주면 될거 같은데 그럼 버튼마다 함수를 호출해서
: : : :
: : : : 100번 호출 하잖아요?
: : : :
: : : : 이방법 말고 버튼 하나에만 출력하는 코딩한다음 나머지 버튼은 온클릭을 버튼 1로 해주려하는데 이때
: : : :
: : : : Memo1->Lines->Add(button1->caption);
: : : :
: : : : 이런식으로 한다면 2~100번 버튼까지도 버튼 1캡션이 나오잖아요?
: : : :
: : : : 이걸 어떻게 바꿔야 각자로 인식을 할까요? this로 하면 form캡션이 인식이 되고 Sender에는 없는거 같고
: : : :
: : : : 어디선가 본것 같긴한데 잘 모르겠네요

+ -

관련 글 리스트
67894 똑같은 일을 하는 버튼 질문좀요 축구 1109 2012/08/03
67899     Re:똑같은 일을 하는 버튼 질문좀요 장성호 1039 2012/08/03
67947         Re:Re:똑같은 일을 하는 버튼 질문좀요 김시환 1073 2012/08/09
67948             Re:Re:Re:똑같은 일을 하는 버튼 질문좀요 時代遺憾 1056 2012/08/09
67949                 Re:Re:Re:Re:똑같은 일을 하는 버튼 질문좀요 김시환 1035 2012/08/09
67950                     Re:Re:Re:Re:Re:똑같은 일을 하는 버튼 질문좀요 時代遺憾 1077 2012/08/09
67927         Re:Re:똑같은 일을 하는 버튼 질문좀요 축구 1088 2012/08/06
67895     Re:똑같은 일을 하는 버튼 질문좀요 LOL짱 1049 2012/08/03
67898         Re:Re:똑같은 일을 하는 버튼 질문좀요 축구 1093 2012/08/03
67896         Re:Re:똑같은 일을 하는 버튼 질문좀요 축구 1102 2012/08/03
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.