去除 DBGridEh SelectedRows里无效的书签

数据集处于过滤状态,然后选中几个记录,再修改了这些记录中的某个字段(和过滤条件有关),导致那几个记录不符合过滤条件,不显示了。但是
SelectedRows里 还保存着。如果不删除SelectedRows里这几个书签,后续的操作可能会报错。
  for I := DBGridEhTrade.SelectedRows.Count - 1 downto 0 do
  begin
    try
    DBGridEhTrade.DataSource.DataSet.Bookmark :=
      DBGridEhTrade.SelectedRows[I];
    except
      on E: EDatabaseError do
//        Log(e.ClassName); //EDatabaseError      
        //ADOTbTrade: Record not found
      DBGridEhTrade.SelectedRows.DeleteItem(I);
    end;

  end;

原文地址:https://www.cnblogs.com/CodeGear/p/4531856.html