2011-10-08 3 views

답변

3

NGLN이 옳다, 당신은 당신이 할 수 있습니다 선택의 종류를 선택 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; 

이렇게하면 선택되지 않은 모든 행/열/셀이 선택되고 그 반대의 경우도 선택됩니다.

+0

죄송 합니다만이 기능은 작동하지 않습니다. 이 코드를 사용하려고합니까? – YoungMaster

+0

@ YoungMaster, 나는 그것을 테스트했으며 작동합니다. 'TAdvStringGrid'에서'MouseActions.DisjunctCellSelect' 또는'MouseActions.DisjunctRowSelect' 또는'MouseActions.DisjunctColSelect' 속성을'True'로 설정하는 방법을 놓친 것 같습니다. 그 중 하나는 사각형이 아닌 다른 것을 선택할 수 있도록 설정되어야합니다. 이것은 완벽하게 수용 가능한 대답입니다;) – TLama

관련 문제