在Delphi的TDBGrid中查找当前行

时间:2009-03-23 01:44:58

标签: delphi tdbgrid

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

3 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:4)

你可以这样做:

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

答案 2 :(得分:0)

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

请参阅this answer类似的StackOverflow问题。