在Delphi的TDBGrid中查找当前行

Bub*_*baT 7 delphi tdbgrid

有没有办法找出TDBGrid中哪一行是最新的?

Klu*_*uge 5

我不确定我是否理解你的问题,但我会尝试一个答案,也许你可以澄清这是不是你问的问题.

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


Jos*_*ons 5

你可以这样做:

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

type
  THackDBGrid = class(TDBGrid);
Run Code Online (Sandbox Code Playgroud)

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

function TfrmMain.GetFieldValue(colnum : integer): string;
begin
  Result := THackDBGrid(grdMain).GetFieldValue(colnum);
end;
Run Code Online (Sandbox Code Playgroud)

或者,要获取行号:

function CurrentRowNumber: integer;
  Result := THackDBGrid(grdMain).Row;
end;
Run Code Online (Sandbox Code Playgroud)

这种技术在其他情况下也很有用,但我不能声称功劳。 我从这里得到的