Q&A

  • 스트링그리드에서 오른쪽 마우스
제목 그대로
스트링그리드에서
오른쪽 마우스 클릭시
Row 값을 구하는 방법을 알고 싶습니다.

왼쪽 마우스는 자체 이벤트가 있는데
오른쪽 마우스 클릭시는 어떠헤 구할수가 있을까요??
2  COMMENTS
  • Profile
    major 2003.09.08 19:46



    안녕하세요...

    저는 걍 팝업 메뉴를 연결하면 될 것 같은데요..

    그럼 즐프하세염..
  • Profile
    김진용 2003.09.08 22:03


    interface

    uses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      Grids, Menus;

    type
      TForm1 = class(TForm)
        StringGrid1: TStringGrid;
        PopupMenu1: TPopupMenu;
        N1: TMenuItem;
        procedure StringGrid1MouseMove(Sender: TObject; Shift: TShiftState; X,
          Y: Integer);
        procedure StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;
          var CanSelect: Boolean);
        procedure StringGrid1MouseDown(Sender: TObject; Button: TMouseButton;
          Shift: TShiftState; X, Y: Integer);
      private
        { Private declarations }
      public
        { Public declarations }
      end;

    var
      Form1                        : TForm1;
      ci_row,ci_col,MouseX,MouseY  : Integer;

    implementation

    {$R *.DFM}

    procedure TForm1.StringGrid1MouseMove(Sender: TObject; Shift: TShiftState;
      X, Y: Integer);
    begin
         MouseX := X;
         MouseY := Y;
    end;

    procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,
      ARow: Integer; var CanSelect: Boolean);
    begin
         ci_row := Arow;
         ci_col := Acol;
    end;

    procedure TForm1.StringGrid1MouseDown(Sender: TObject;
      Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    var
      Pos   : TPoint;
      iCol,
      iRow  : Integer;
    begin
      StringGrid1.MouseToCell(MouseX,MouseY,iCol,iRow);
      if (Button = mbRight) then   begin  // 마우스 오른쪽버튼이 눌렸다면.popUp ..
          GetCursorPos(Pos);
          PopupMenu1.Popup(Pos.X, Pos.Y);
      end;
    end;

    end.

    예제 올립니다....