Delphi TStringGrid множественный выбор, определение выбранных строк - PullRequest
2 голосов
/ 10 мая 2011

В любом случае можно определить, какие строки в настоящий момент выбраны в множественном выборе TStringGrid или TCustomGrid в этом отношении. Собственность была бы идеальной.

Я знаю, что есть свойство gdSelected, которое устанавливается в событии DrawCell,

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

Я могу проверить AState для gdSelected и отследить это где-нибудь в массиве, но это кажется глупым.

Ответы [ 3 ]

3 голосов
/ 10 мая 2011

Полагаю, вы говорите о сетке строк с выбором диапазона, то есть о сетке строк с goRangeSelect в Options.Тогда вы можете использовать свойство Selection.Это (по сути) TRect, в котором вы можете найти верхнюю левую и нижнюю правую ячейку в диапазоне выбора.

1 голос
/ 26 мая 2012

Ооо, я использую StringGrid.Selection.BottomRight.Y для определения строк и StringGrid.Selection.BottomRight.X для столбцов.

0 голосов
/ 22 января 2016

Использовать свойство выбора сетки строк StringGrid.Selection.top даст вам верхнюю выбранную строку, StringGrid.Selection.bottom даст вам конец выбранной строки, где выбор остановится.

Пример:

Есливы выбираете от строки 3 до строки 6 в сетке строк, тогда StringGrid.Selection.top даст вам 3 в качестве выходного значения StringGrid.Selection.bottom даст вам 6 в качестве выходного значения, а остальные значения вы можете получить, перебирая сверху вниз.

...