Modifies the properties of the currently selected table.
Result is false if there is not a table selected.
Note: ◼RowCount should be specified as -1 to update the properties entire table ◼If ColCount is different from the current count, cells will be added or deleted ◼SetTableProperties() does not support row selection. The cursor should be positioned inside the first cell. If there is a selection, this will occur automatically ◼You should initialize all variables using GetTableProperties
var colCount: Integer; rowCount: Integer; colWidth: Integer; rowHeight: Integer; tableAlign: TAlignment; cellVertAlign: TVerticalAlignment; borderSize: Integer; borderColor: TColor; cellMargin: Integer; bgColor: TColor; indent: Integer; initIndex: Integer; begin // Works best if the cursor is positioned inside the first cell
if IERichEdit1.SelLength = 0 then begin initIndex := IERichEdit1.SelStart;
// GetTableProperties() requires whole row to be selected IERichEdit1.SelectAll( True ); end else initIndex := IERichEdit1.SelStart + 2; // Whole row has been selected, position cursor inside the first cell
// Get existing properties if IERichEdit1.GetTableProperties( colCount, rowCount, colWidth, rowHeight, borderSize, borderColor, tableAlign, cellVertAlign, cellMargin, bgColor, indent ) = False then raise Exception.create( 'You have not selected a table (click inside the first cell of the table)' );
// Update background color to red bgColor := clRed;
// Vertically align the text cellVertAlign := taVerticalCenter;
// Make border color green borderColor := clGreen;
// SettTableProperties() requires cursor to be positioned inside first cell, doesn't support row selection :-/ if IERichEdit1.SelLength > 0 then IERichEdit1.SetSelection( initIndex, initIndex );
// Update the properties if IERichEdit1.SetTableProperties( colCount, -1, // Update whole table colWidth, rowHeight, borderSize, borderColor, tableAlign, cellVertAlign, cellMargin, bgColor, indent ) = False then raise Exception.create( 'Cannot set table properties' ); end;