我需要通过列中的搜索值取消选择 TGrid 中的某些行,但找不到任何示例。我正在使用 Delphi 10.3。下面的代码并没有取消选择行,而是恰恰相反。可以是“...SelectedRows.CurrentRowSelected := False”甚至用于取消选择该行还是我应该使用其他方法?
这是我到目前为止尝试过的:
class procedure TUnitEventHandler.TMenuItem_UnselectRowsWithValue_Click(Sender: TObject);
var
i : integer;
searchValue : string;
Grid : TrDBGrid_MS;
begin
Grid := GetGridFromSender(Sender);
searchValue := Grid.Fields[Grid.SelectedIndex].AsString;
Grid.DataSource.DataSet.DisableControls;
Grid.DataSource.DataSet.First;
for i := 0 to Grid.DataSource.DataSet.RecordCount-1 do
begin
if (searchValue = Grid.Fields[Grid.SelectedIndex].AsString) AND (Grid.SelectedRows.CurrentRowSelected) then
begin
Grid.SelectedRows.CurrentRowSelected := False;
end;
Grid.DataSource.DataSet.Next;
end;
Grid.DataSource.DataSet.EnableControls;
end;