|
답변을 반쯤달다 질문의 의도와 맞지 않는 답변을 작성하고 있었군요 ㅡ_ㅡ
TListView의 OnClick에서 전역변수로 해당 아이템의 인덱스를 클릭과 동시에 저장합니다.
popupMenuClick함수에서 그냥 사용합니다.
이런 방법은 어떠신지요~ 이게 젤 속편하긴하죵 ㅋ_ㅋ;;
다시.......... 정상적으로
TObject는 상속 구조상 최상위에 존재하는 놈이지여
TObject를 통하여 사용하시고자 하는 형태의 정보를 갖는 놈의 Type으로 캐스팅해주시면 해당정보를 볼 수 있습니다.
TListView의 아이템은 TListItem으로 구성되어있습니다.
popupMenuClick(Sender); 의 형태로 호출하시고
popupMenuClick함수 내부에서는
((TListItem *)(Sender))->Name
의 형태로 사용하시면 됩니다.
인덱스 뿐만이 아니라 해당 모든 정보를 모두 갖게됩니다.
인덱스가 어디 위치하는지는 숙제로 남겨둡니다~
지리산 왕따. 님이 쓰신 글 :
: 안녕하세요.. 윈도우에서 이런처리는 어떻게...
:
: 지금 리스트뷰에서 오른쪽 버튼이 눌리면 popup menu를 띄워서
: popup메뉴에서 선택된 메뉴에따라서 무언가의 일을 처리합니다.
: 여기서...지금 선택된 리스트 뷰상에서의 item에 대한 index를
: popupMenuClick의 함수의 인자 형식으로 전달할 수 있는 방법이 있는지요? 함수의 인자가
: (TObject *Sender) 하나 뿐이라,,,
:
: popupMenuClick 함수에서... 바로이전의 리스트뷰에서 어떤 항목이 선택되었는지 다시 찾는 중복을
: 피하기 위해 popupMenuClick 가 호출될때..이 함수의 인자로 전달할수 있는 방법이 있는지요?
:
: void __fastcall TForm1::ListView1MouseDown(TObject *Sender,TMouseButton Button, TShiftState Shift, int X, int Y)
: {
: TPoint p1,p2;
: AnsiString QueryString ;
: if ( Button == mbRight )
: {
: // 지금 선택된 항목이 무엇인지 구한다.
: PopMenu1->Popup( p1.x , p1.y ); ==> 여기까지는 문제 없습니다.
: //popup메뉴에서 무언가가 선택되면... 이때의 선택된 item index값을
: //popupMenuClick 함수의 인자값으로 전달하고 싶습니다.
:
: }
: }
:
: void __fastcall TForm1::popupMenuClick(TObject *Sender)
: {
: // 인자가 Sender 하나뿐이 없는데.. 여기에 이전의 리스트뷰에서 선택된 item에 index 값을
: //전달받아서... 그것대로 처리할 수 있는지요?
: }
:
: 수고하세요..
|