有没有办法找出 TDBGrid 中的哪一行是当前行?
BubbaT
问问题
15914 次
3 回答
5
我不确定我是否理解你的问题,但我会尝试回答,也许你可以澄清这是否不是你要问的。
由于 TDBGrid 与 DataSource 相关联,因此当前行与数据源中的当前行相同。您可以通过查看主键值或 RecNo 属性来查询 DataSource,以确定哪条记录是当前记录。
于 2009-03-23T04:55:55.437 回答
5
你可以这样做:
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;
这种技术在其他情况下也很有用,但我不能声称功劳。 我从这里得到的。
于 2009-03-23T16:30:39.197 回答
0
如果您不想依赖数据源来提供记录计数和当前记录(例如,因为您在远程服务器上使用单向游标),那么访问底层网格控件属性的技术可以使用。
请参阅类似 StackOverflow 问题的答案。
于 2009-03-23T05:14:22.367 回答