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
[42495] Re:Re:[질문]어디서 보내온 Sender인지를 확인하는 방법좀 알려주세요..
소리바람.OJ [phonon] 920 읽음    2005-11-15 18:27
크레브님 말씀이 맞습니다.

질문과 무관하기 합니다만, 이해하시는 것이 도움이 될 듯해서 사이트URL을 올립니다.

http://www.functionx.com/bcb/classes/tobject.htm

보시면 TObject와 Sender에 관한 간단한 예제가 있습니다.
dynamic_cast에 대한 이해도 하실 수 있을 겁니다.


오늘도 건승을 빕니다.


크레브 님이 쓰신 글 :
: 정말 그렇군요..
:
: Sender 포인터로 RichEdit 포인터가 들어오는것이 아니라..
: 확인해 보니 Sender들어는 포인터는 메뉴 아이템 자체의 포인터입니다.
: 즉 아래 소스에서 볼때 rEdit_Speartor_Menu의 포인터이고요
:
: 일단 해결하려면..
:
: RichEdit 두개의 ContextPopup이벤트를 만들고 ( 아래소스에서 RichEditContextPopup )
: 아래 처럼 메뉴 클릭시 처리하시면 될듯 하네요..
: 아니면 임의로 다른 변수를 만드시던지 하면 됩니다.
:
: void __fastcall TForm1::memu1Click(TObject *Sender)
: {
: //
:
:    if( menu1->Tag == 0)
:    {
:       // RichEdit1 처리
:    }
:    else
:    {
:       // RichEdit2 처리
:    }
:
: }
: //---------------------------------------------------------------------------
: void __fastcall TForm1::RichEditContextPopup(TObject *Sender,
:       TPoint &MousePos, bool &Handled)
: {
: //
:    if(Sender == RichEdit1 )
:    {
:       menu1->Tag = 0;
:
:    }
:    else if( Sender==RichEdit2 )
:    {
:       menu1->Tag = 1;
:    }
:
: }
:
:
:
:
:
: 빌더초자 님이 쓰신 글 :
: : 처두 처음에는 아래와 같이 생각 했습니다.
: : 근데.. 값이 다릅니다.
: : 그래서 .. 그만... 일케 질문을 올리는 겁니다.
: :
: : 아래 방법이 맞다면.. 제가 뭘 잘못했는지 모르겠네요..
: :
: : 소스내용 은 아래와 같습니다.
: :
: : // 메뉴 버튼 클릭시..
: : void __fastcall TMainApp_Frame::rEdit_Speartor_MenuClick(TObject * Sender)
: : {
: :   if( Sender == RichEdit1 ){  // 값이 다름...
: :         //
: :         int var = 100; //<-- 이리루 들어오지 않음..
: :     }
: : }
: :
: : TRichEdit *RichEdit1;
: : TRichEdit *RichEdit2;
: : TListView *ListView1;
: : TMainMenu *MainMenu1;
: : TMenuItem *N1;
: : TMenuItem *N2;
: : TMenuItem *N3;
: : TMenuItem *N4;
: : TPopupMenu *PopupMenu1;  // <-- 여기 하위메뉴...
: : TMenuItem *rEdit_Speartor_Menu; // <-- 여기메뉴...
: :
: : 크레브 님이 쓰신 글 :
: : : 포인터 바로 비교하시면 됩니다.
: : :
: : : if( Sender == RichEdit1 )
: : : {
: : : }
: : : else if( Sender == RichEdit2 )
: : : {
: : : }
: : :
: : : 이렇게 쓰려고 Sender 만들었을테니까요..
: : :
: : :
: : : 빌더초자 님이 쓰신 글 :
: : : : RichEdit 2개 만들고요..
: : : : popup메뉴를 1개 만들고..
: : : : RichEdit2개 모두에 popup메뉴를 걸어두었습니다.
: : : :
: : : : 그런데.. 그만..
: : : :
: : : : popup메뉴의 항목을 클릭하면..
: : : :
: : : : TObject *Sender로 해당메뉴 메소드로 호출하는데....
: : : :
: : : : RichEdit1에서 보내온 건지 RichEdit2에서 보내온건지 확인할수 있는 방법
: : : : 없는지요...
: : : :
: : : : 워낙 허접이라서.. 고수님들께서 한수 지도 하심이...

+ -

관련 글 리스트
42476 어디서 보내온 Sender인지를 확인하는 방법좀 알려주세요.. 빌더초자 709 2005/11/15
42482     Re:어디서 보내온 Sender인지를 확인하는 방법좀 알려주세요.. 크레브 825 2005/11/15
42483         [질문]어디서 보내온 Sender인지를 확인하는 방법좀 알려주세요.. 빌더초자 858 2005/11/15
42489             Re:[질문]어디서 보내온 Sender인지를 확인하는 방법좀 알려주세요.. 크레브 871 2005/11/15
42495                 Re:Re:[질문]어디서 보내온 Sender인지를 확인하는 방법좀 알려주세요.. 소리바람.OJ 920 2005/11/15
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.