当双击StringGrid中的一条记录,弹出一窗口。但是选中这一行,在StringGrid的其他地方双击同样能够弹出窗口。
我该怎样做?只在选中的记录上双击能够弹出窗口。

解决方案 »

  1.   

    在OnMouseDown事件中调用MouseToCell(X, Y: Integer; var ACol, ARow: Longint);方法,这个方法告诉你鼠标当前对应的行和列
      

  2.   

    //StringGrid1.Options := StringGrid1.Options + [goRowSelect];procedure TForm1.StringGrid1DblClick(Sender: TObject);
    var
      vPoint: TPoint;
    begin
      GetCursorPos(vPoint);
      vPoint := TStringGrid(Sender).ScreenToClient(vPoint);
      TStringGrid(Sender).MouseToCell(vPoint.X, vPoint.Y, vPoint.X, vPoint.Y);
      if vPoint.X < TStringGrid(Sender).FixedCols then Exit;
      if vPoint.Y < TStringGrid(Sender).FixedRows then Exit;
      { TODO : 双击一行 }
    end;