开发者

Delphi TStringGrid multi select, determining selected rows

Is there anyway to determine which rows are currently selected in a multi-select TStringGrid, or a TCustomGrid for that matter. A property would be ideal.

I know that there is the gdSelected property that gets set in the DrawCell event,

procedure DrawCell(ACol, ARow: Longint; ARect: TRect; AState: TGridDrawState);

I can check AState for gdSelected, and keep track of this in an array somewhere, b开发者_开发技巧ut this seems kludgey.


I guess you are talking about a range-select string grid, that is, a string grid with goRangeSelect in Options. Then you can use the Selection property. This is (essentially) a TRect in which you can find the upper-left and lower-right cell in the range selection.


Oooh, I'm use StringGrid.Selection.BottomRight.Y to determine rows and StringGrid.Selection.BottomRight.X for columns.


Use string grid selection property StringGrid.Selection.top will give you the top selected row, StringGrid.Selection.bottomwill give you the end selected row, where the selection stops.

Example:

If you select from row 3 to row 6 in a string grid thenStringGrid.Selection.top will give you 3 as an output value StringGrid.Selection.bottom will give you 6 as an output value, and remaining values you can get by iterating from the top to bottom.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜