Как я могу сделать обратный выбор в AdvStringGrid? - PullRequest
1 голос
/ 08 октября 2011

Как мне сделать обратный выбор в AdvStringGrid (TMS)?

1 Ответ

3 голосов
/ 09 октября 2011

Предполагая, что NGLN верен, вам нужно установить правильный Disjunct ... Выберите опцию в Grid.MouseActions, чтобы выбрать тип выбора, который вы разрешите, и затем вы можете вызвать эту процедуру:

PROCEDURE InvertSelection(Grid : TAdvStringGrid);
  VAR
    C,R : Cardinal;

  BEGIN
    IF Grid.MouseActions.DisjunctCellSelect THEN
      FOR R:=Grid.FixedRows TO PRED(Grid.RowCount) DO FOR C:=Grid.FixedCols TO PRED(Grid.ColCount) DO Grid.SelectedCells[C,R]:=NOT Grid.SelectedCells[C,R]
    ELSE IF Grid.MouseActions.DisjunctRowSelect THEN
      FOR R:=Grid.FixedRows TO PRED(Grid.RowCount) DO Grid.RowSelect[R]:=NOT Grid.RowSelect[R]
    ELSE IF Grid.MouseActions.DisjunctColSelect THEN
      FOR C:=Grid.FixedCols TO PRED(Grid.ColCount) DO Grid.ColSelect[C]:=NOT Grid.ColSelect[C]
  END;

Это сделает все невыбранные строки / столбцы / ячейки выделенными и наоборот.

...