有没有办法找出TDBGrid中哪一行是最新的?
答案 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问题。