TRVTableItemInfo.GetNormalizedSelectionBounds

<< Нажмите, чтобы показать Содержание >>

TRVTableItemInfo.GetNormalizedSelectionBounds

Возвращает выделенную область таблицы в удобной форме.

function GetNormalizedSelectionBounds(IncludeEditedCell: Boolean;

         out TopRow, LeftCol, ColSpan, RowSpan: Integer): Boolean;

Входной параметр:

Если IncludeEditedCell = True, функция возвращает позицию редактируемой в данный момент ячейки, если выделения нет.

Выходные параметры:

TopRow, LeftCol получают координаты левого верхнего угла выделенной области (внимание: выделенная область не всегда имеет прямоугольную форму!)

ColSpan, RowSpan – количество столбцов и строк, охватываемых выделенной областью. Оба значения не меньше 1.

Внимание: обходить выделенные ячейки следующим образом неправильно:

for r := TopRow to  TopRow+RowSpan-1 do

  for c := LeftCol to TopCol+ColSpan-1 do

    if table.Cells[r,c]<>nil then ...

Такой цикл может пропустить некоторые выделенные ячейки, поскольку из-за объединения ячеек часть выделенных ячеек может начинаться левее LeftCol или выше TopRow.

Правильный пример приведён в разделе, посвящённом IsCellSelected.

Некоторые операции возможны только для прямоугольного выделения, например объединение ячеек. Проверить это можно с помощью CanMergeSelectedCells.

Метод необходимо вызывать после форматирования документа.

Возвращаемое значение:

True, если в таблице есть выделение.

См. также:

Выделение в таблице

См. также методы:

GetSelectionBounds;

GetEditedCell.