Delphi Grid - 如何通过搜索值取消选择已选择的行

问题描述 投票:0回答:0

我需要通过列中的搜索值取消选择 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;
delphi select grid row unselect
© www.soinside.com 2019 - 2024. All rights reserved.