Q&A

  • 오른쪽마우스버튼으로 스트링그리드 셀선택..
음..또 질문합니다..

스트링그리드에서 오른쪽 마우스 버튼을 눌렀을때.

셀이 선택이 되고 팝업메뉴가 뜨게 할려구 하는데..

어떤식으로 해야 하나요?

셀선택말이죠..

3  COMMENTS
  • Profile
    최용일 2000.04.21 01:41
    안녕하세요. 최용일입니다.



    OnMouseDown이벤트에서 작성하시면 되겠네요. 거기에서 Button이 마우스오른쪽



    버튼인가 판단하시고 인자로 들어오는 X, Y좌표를 이용해서 MouseToCell로 셀의 위치를



    얻습니다. 다음 Col, Row속성을 사용하여 셀에 포커스를 주고 팝업메뉴의 Popup메소드를



    이용하여 팝업메뉴를 띄워주면 되죠.



    procedure TForm1.StringGrid1MouseDown(Sender: TObject;

    Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

    var

    ACol, ARow : LongInt;

    P: TPoint;

    begin

    if Button = mbRight then

    begin

    // 마우스위치의 셀 좌표구함.

    StringGrid1.MouseToCell(X, Y, ACol, ARow);



    // 셀선택

    StringGrid1.Col := ACol;

    StringGrid1.Row := ARow;



    P := StringGrid1.ClientToScreen(Point(X, Y));

    PopupMenu1.Popup(P.X, P.Y);

    end;

    end;



    ^^ 항상 즐코하세요.



    어린왕자 wrote:

    > 음..또 질문합니다..

    > 스트링그리드에서 오른쪽 마우스 버튼을 눌렀을때.

    > 셀이 선택이 되고 팝업메뉴가 뜨게 할려구 하는데..

    > 어떤식으로 해야 하나요?

    > 셀선택말이죠..

  • Profile
    어린왕자 2000.04.21 01:17
    어린왕자 wrote:

    > 음..또 질문합니다..

    > 스트링그리드에서 오른쪽 마우스 버튼을 눌렀을때.

    > 셀이 선택이 되고 팝업메뉴가 뜨게 할려구 하는데..

    > 어떤식으로 해야 하나요?

    > 셀선택말이죠..



    또 질문할께요..

    리스트박스에서 선택된 아이템위에 오른쪽 버튼을 눌렸을때..

    아이템삭제라는 팝업메뉴를 만들고 싶은데요..

    마우스 위치를 맞추어서 메뉴를 띠우는 방법 밖엔 없나요?

    가르쳐 주세요...

  • Profile
    최용일 2000.04.21 01:44
    안녕하세요. 최용일입니다.



    OnMouse...이벤트의 좌표는 지역좌표이니까 ClientToScreen메소드를 이용하여 전역좌표로



    바꾼후 팝업메뉴를 띄우세요...



    ^^ 항상 즐코하세요.



    어린왕자 wrote:

    > 어린왕자 wrote:

    > > 음..또 질문합니다..

    > > 스트링그리드에서 오른쪽 마우스 버튼을 눌렀을때.

    > > 셀이 선택이 되고 팝업메뉴가 뜨게 할려구 하는데..

    > > 어떤식으로 해야 하나요?

    > > 셀선택말이죠..

    >

    > 또 질문할께요..

    > 리스트박스에서 선택된 아이템위에 오른쪽 버튼을 눌렸을때..

    > 아이템삭제라는 팝업메뉴를 만들고 싶은데요..

    > 마우스 위치를 맞추어서 메뉴를 띠우는 방법 밖엔 없나요?

    > 가르쳐 주세요...