2

AdvStringGrid(TMS)で逆選択を行うにはどうすればよいですか?

4

1 に答える 1

4

NGLNが正しいと仮定すると、Grid.MouseActionsで適切なDisjunct ... Selectオプションを設定して、許可する選択の種類を選択する必要があります。その後、次の手順を呼び出すことができます。

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;

これにより、選択されていないすべての行/列/セルが選択され、その逆も同様です。

于 2011-10-09T07:32:02.053 に答える