使用 TDataSet.FindKey 您可以定位记录。当结果为 True 时,数据集光标将定位在找到的记录上。当结果为 False 时,光标不会移动。这会导致在发出 FindKey 之前的记录数据显示在数据感知组件中。
如何对 FindKey 的结果进行编码以返回空记录?
if Not tblSomeTable.FindKey([SomeSearchData]) then
begin
< code to return empty or move data cursor to neutral position >
end;
更新:(在选择正确答案之前等待了几天,因为我认为这是习惯,并且不想阻止进一步的反馈。)尽管我相信正确的答案来自 Marcelo,但有一些关于解决这种情况的建议,因为它是不可能有游标不在记录上。提出了几种解决方法。我选择了我自己的一个。它是这样的:
If Not tblSomeTable.FindKey([SomeSearchData]) then
begin
tblSomeTable.FindKey([-1,2010]);
end
我所做的是创建一个虚拟的空白记录,其中包含实际数据永远不可能的索引,即:第一个索引值永远不会是-1。如果初始搜索为空,则 FindKey 会将光标定位在此空记录上。这将提供我所追求的视觉效果。