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
[42489] Re:[질문]어디서 보내온 Sender인지를 확인하는 방법좀 알려주세요..
크레브 [kkol] 870 읽음    2005-11-15 15:09
정말 그렇군요..

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인지를 확인하는 방법좀 알려주세요.. 크레브 870 2005/11/15
42495                 Re:Re:[질문]어디서 보내온 Sender인지를 확인하는 방법좀 알려주세요.. 소리바람.OJ 920 2005/11/15
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.