我想在当前行,选择列下面显示一个panel,但不知道怎样定位.不能取光标函数来定位。 怎样做。
回答正确得满 分。

解决方案 »

  1.   

    procedure TForm1.DBGrid1CellClick(Column: TColumn);
    begin
        showmessage(IntToStr(DBGrid1.SelectedIndex));
        showmessage(inttostr(Table1.RecNo))//行号也就相当于记录号end;
      

  2.   

    取行号是一定不行的。如果有100行,那个panel不就看不见了吗?
    TCustomGrid.MouseCoord
    这个怎么用呀
      

  3.   

    当前行号:DBGrid1.DataSource.DataSet.RecNo当前列:DBGrid1.SelectedIndex
      

  4.   

    type
      THackDBGrid = Class(TDBGrid);
    ..  THackDBGrid(DBGrid1).Row;
      THackDBGrid(DBGrid1).Col;
      

  5.   

    根据行号、列进行计算:i:=DBGrid1.DataSource.DataSet.RecNoj:=DBGrid1.SelectedIndex;hi:=20;//行高DBGrid1.Top+hi*(i+1);//假设title与行高等,自己调整wi:=DBGrid1.Left;//横坐标位置for n:=0 to j do
    begin
      wi:=wi+DBGrid1.Columns[n].Width;
    end;自己调整精确值
      

  6.   

    type
      tdgridex=class(tdbgrid)
    end;
    //获取当前行
    currow:=tdbgridex(dbgrid1).row;
    curcol:=tdbgridex(dbgrid1).col;
    //获取当前单元格坐标
    procedure TForm1.DBGrid1CellClick(Column: TColumn);
    begin
    button1.Height:=tdrawgrid(dbgrid1).cellrect(tdrawgrid(dbgrid1).Col,
                 tdrawgrid(dbgrid1).Row).Bottom-tdrawgrid(dbgrid1).cellrect(tdrawgrid(dbgrid1).Col,
                 tdrawgrid(dbgrid1).Row).Top;
    button1.Width:=button1.Height;
    button1.Top:=tdrawgrid(dbgrid1).cellrect(tdrawgrid(dbgrid1).Col,
                 tdrawgrid(dbgrid1).Row).Top+dbgrid1.Top;button1.Left:=tdrawgrid(dbgrid1).cellrect(tdrawgrid(dbgrid1).Col,
                 tdrawgrid(dbgrid1).Row).Left+column.Width+dbgrid1.left-button1.Height ;end;
      

  7.   

    在DBGrid1DrawColumnCell事件中
    {
         i :=  DBGrid1.SelectedIndex;  当前列  
         i i=  DBGrid1->SelectedRows;  当前行
         其中参数Rect是他的具体位置(width,height,left,top)
    }
      

  8.   

    http://www.delphibbs.com/delphibbs/dispq.asp?lid=1228339什么方法都有!!!!
      

  9.   

    i :=  DBGrid1.SelectedIndex;  //当前列  
    j:=DBGrid1.DataSource.DataSet.RecNo  //当前行