代码之家  ›  专栏  ›  技术社区  ›  BubbaT

在delphi的tdbgrid中查找当前行

  •  7
  • BubbaT  · 技术社区  · 15 年前

    有没有办法找出TDBGrid中当前的行?

    3 回复  |  直到 15 年前
        1
  •  5
  •   Kluge    15 年前

    我不确定我是否理解你的问题,但我会尝试回答,也许你可以澄清这是否不是你要问的问题。

    由于TDBGrid绑定到数据源,因此当前行与数据源中的当前行相同。可以通过查看主键值或recno属性来确定哪个记录是当前记录来查询数据源。

        2
  •  4
  •   JosephStyons    15 年前

    你可以这样做:

    1-定义一个本地类,它是TDBGrid的副本(这将允许您访问私有方法):

    type
      THackDBGrid = class(TDBGrid);
    

    2-然后可以强制转换到本地定义的类,并从私有方法中提取,如下所示:

    function TfrmMain.GetFieldValue(colnum : integer): string;
    begin
      Result := THackDBGrid(grdMain).GetFieldValue(colnum);
    end;
    

    或者,为了得到一排:

    function CurrentRowNumber: integer;
      Result := THackDBGrid(grdMain).Row;
    end;
    

    这种技巧在其他情况下也很有用,但我不能说是功劳。 I got it from here .

        3
  •  0
  •   Community Neeleshkumar S    7 年前

    如果不希望依赖数据源提供记录计数和当前记录(例如,因为您在远程服务器上使用单向光标),则可以使用访问底层网格控件属性的技术。

    this answer 类似的stackoverflow问题。

    推荐文章