|
정말 그렇군요..
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에서 보내온건지 확인할수 있는 방법
: : : 없는지요...
: : :
: : : 워낙 허접이라서.. 고수님들께서 한수 지도 하심이...
|