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
[35256] Re:Re:[질문]StringGrid에서 Popup창 뜰 때 클릭한 셀의 위치 구하기
땅주인 [] 1834 읽음    2004-05-30 14:00
감사합니다. 답변 주셔서...  MouseToCell이라는 함수가 있네요..
한 가지 주의할 점은 인자로 넘어오는 X, Y가 StringGrid내의 상대좌표라서
스크린의 좌표로 변환해서 popup창을 띄워야 하네요..넘겨줘야 하네요..
다음과 같이 수정해서 해결했습니다.

좋은 답변 감사합니다.


void __fastcall TForm_Main::StringGrid_AlarmMouseDown(TObject *Sender,
      TMouseButton Button, TShiftState Shift, int X, int Y)
{
    if ( Button == mbRight ) { // 마우스 오른쪽 버튼 눌렀을 때
        int ACol, ARow;

        TPoint Point, Point2;
        Point.x = X;
        Point.y = Y;
        Point2 = ClientToScreen(Point);
        StringGrid_Alarm->MouseToCell(Point2.x, Point2.y, ACol, ARow);
        PopupMenu2->Popup(Point2.x, Point2.y);
    }
}


김상면 님이 쓰신 글 :
: 제가 영어를 몰라서 해석을 대충 해 보았습니다만 아래와 같이 하니 되네요
:
:
:
: #include <stdio.h>
: void __fastcall TForm1::StringGridMouseDown(TObject *Sender,
:       TMouseButton Button, TShiftState Shift, int X, int Y)
: {
:   int ACol,ARow;
:     char temp[255];
:
:     StringGrid->MouseToCell(X,Y,ACol,ARow);
:     sprintf(temp,"%d  :  %d",ARow,ACol);
:     MessageBox(Handle,temp,"d",MB_OK);
: }
: //---------------------------------------------------------------------------
:
: 에러나도 전 몰라용
: (이거 놀리는 거 아닙니다)
:
: 그럼
:
:
: 땅주인 님이 쓰신 글 :
: : StringGrid에서 popup창을 구현하려 합니다.
: :
: : popup창이 뜨고 나면 그리드에서 마우스 오른쪽을 누른 row를 구해서
: : 해당 row의 각 cell의 값을 읽어 어떤 처리를 하려 합니다.
: :
: : 그런데, 디자인 모드에서 popup 객체 만들어서, 스트링 그리드의 popup
: : 이벤트에 붙여서 셀의 위치를 구하니 마우스 오른쪽을 클릭한 위치의 셀이
: : 아니라 현재 셀이 선택되어 있는 셀의 정보가 들어옵니다.
: :
: : 마우스 오른쪽 버튼을 눌렀을 때 해당 Cell의 위치를 어떻게 파악하는 지요?
: :
: : OnMouseDown() 이벤트에서 X,Y자표로 해보려고 하는데... 어떻게 해야 하는 지..
: :
: : 질문의 요지는 스트링 그리드에서 마우스 오른쪽 버튼을 눌었을 때
: : 그 셀이 어느 셀인 지 알아내는 방법을 알려주시면 ... 감사감사감사..하겠습니다.
: :
: : 감사합니다.
: :
: : void __fastcall TForm_Main::StringGrid_AlarmMouseDown(TObject *Sender,
: :       TMouseButton Button, TShiftState Shift, int X, int Y)
: : {
: :     if ( Button == mbRight ) { // 마우스 오른쪽 버튼 눌렀을 때
: :         // X,Y 자표가 가리키는 셀을 어떻게 파악하는 지요?
: :         PopupMenu2->Popup(X,Y)
: :     }
: : }
: :

+ -

관련 글 리스트
35245 [질문]StringGrid에서 Popup창 뜰 때 클릭한 셀의 위치 구하기 땅주인 1226 2004/05/29
35252     Re:[질문]StringGrid에서 Popup창 뜰 때 클릭한 셀의 위치 구하기 김상면 1015 2004/05/29
35256         Re:Re:[질문]StringGrid에서 Popup창 뜰 때 클릭한 셀의 위치 구하기 땅주인 1834 2004/05/30
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.