Объединение (слияние) ячеек

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

Объединение (слияние) ячеек

Ячейки имеют свойства ColSpan и RowSpan, доступные только для чтения, аналогичные HTML-аттрибутам <td colspan rowspan>, по умолчанию равные 1.

Если Cells[r,c].ColSpan>1, эта ячейка перекрывает (ColSpan-1) ячеек справа:

Cell[r,c], Cell[r,c+1], ..., Cell[r,c+Cell[r,c].ColSpan-1].

В этом случае все перекрывающиеся ячейки (Cell[r,c+1], ..., Cell[r,c+Cell[r,c].ColSpan-1]) уничтожаются и становятся равными nil.

Количество ячеек в строке по-прежнему равно количеству ячеек во всех остальных строках, даже при слиянии.

То же самое относится и к RowSpan: ячейка с RowSpan>1 перекрывает (RowSpan-1) ячеек ниже.

Пример ColSpan и RowSpan

Пример ColSpan и RowSpan

Пример: проход по всем ячейкам таблицы

Этот пример устанавливает красный цвет для всех ячеек (VCL и Lazarus).

for r := 0 to table.RowCount-1 do

 for c := 0 to table.ColCount-1 do

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

     table.Cells[r,c].Color := clRed;

// Cells[r,c]=nil если ячейка перекрыта левой верхней

Вы можете получить ячейку, которая перекрывает данную, методом table.Rows.GetMainCell:

function GetMainCell(ARow,ACol: Integer;

  out MRow, MCol: Integer): TRVTableCellData;

 

Методы для объединения ячеек:

MergeCells,

MergeSelectedCells

Обратные операции:

UnmergeCells,

UnmergeSelectedCells

Разделение ячеек:

SplitSelectedCellsHorizontally,

SplitSelectedCellsVertically