크레브님 말씀이 맞습니다.
질문과 무관하기 합니다만, 이해하시는 것이 도움이 될 듯해서 사이트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에서 보내온건지 확인할수 있는 방법
: : : : 없는지요...
: : : :
: : : : 워낙 허접이라서.. 고수님들께서 한수 지도 하심이...