在一个DBGrid里,鼠标点一个cell,如何获取该行的行号?

解决方案 »

  1.   

    用 recno就可以!
    这个可以得到指向记录的指针的记录号。
    对这个属性负值,可以跳向某条记录。
      

  2.   

    那个是连接到dbgrid数据集的属性!
      

  3.   

    同意铁锈,不过只能对paradox有效,对于SQL server 等大型关系数据库无效。
    关注中…………
      

  4.   

    Sql Server 有效,这是用ADO数据集的代码
    procedure TfrmMain.DBGridMainCellClick(Column: TColumn);
    begin
      if ADOTblMain.Active then                     // 行号           // 列号  
        sbMain.Panels[0].Text := Format(' %d:%d ', [ADOTblMain.RecNo, Column.Index + 1]);
    end;
      

  5.   

    sql server可以的!
    我就在做sql 2000的!
      

  6.   

    为什么我在cellclick事件里写了Label1.Caption:=IntToStr(DBGrid1.DataSource.DataSet.RecNo);
    结果一直是-1?
      

  7.   

    -1是表示没有结果吧?
    为什么要用DBGrid1.DataSource.DataSet.RecNo??直接用 dataset.recno就可以了。
    已经测试
      

  8.   

    还是-1嘛
    我是一个查询,然后把数据放到一个TABLE里去
    DBGRID的DATASOURCE的DATASET指向这个TABLE
    然后点DBGRID里的内容,想获得行号
    TABLE已经OPEN了,可是没成功
      

  9.   

    偶比较菜呀~现在捧着午饭还在等……急ing……
      

  10.   

    不用table不行吗?
    直接用 adodataset连接数据元。
    在连接到dbgrid。
    我刚吃完!
    呵呵
    饱饱的
      

  11.   

    如果你用BDE那么Recno是不行的,一直都是-1
    建议使用ado,用ADOQueryRecno有效
      

  12.   

    没用过!
    不过ado可以连接到odbc。
    应该可以吧!
      

  13.   

    你可以用ODBC连啊,具体我没用过INTERBASE,
    只是连接方式而已,更ADO没什么关系的吧
      

  14.   

    刚才有朋友让我用DBGrid.SelectedRows来做,可是突然发现……在dbgrid里怎么选中一行?为什么我选的只是一个cell呢?
      

  15.   

    没明白吗?
    bde要连接到odbc
    而ado可以连接到odbc。这样就能用了!
    晕了!
    吃了午饭还没好!
      

  16.   

    在DBGrid.OnMouseMove事件中
    DBGrid.MouseCoord(X,Y).Y;
    其中Y表示DBGrid所选中的行数,为-1时表示没有选中行~
      

  17.   

    ODBC只是连接的方式,所以可以用ado连接,在控制面板上的ODBC配置里面配一个,或者在ado的Connectstring属性里配一个指向INTERBASE的就可以了.
    至于selectrow,要把DBGRID中option属性里面的rowselect设置为true
      

  18.   

    不是不是……我没有用ODBC,用的是BDE呀
      

  19.   

    那个mousecoord(X,Y)的Y是当前显示的第几行,但是我要总的行号……
      

  20.   

    用bde dbgrid的recno不能取值
    用ado可以
    在bde下可以用cell
      

  21.   

    晕倒。TStringGrid(dbgrid) 之后,就可当StringGrid用。