|
<< Нажмите, чтобы показать Содержание >> 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, если в таблице есть выделение.
См. также:
См. также методы: