Skip to main content

TdxSpreadSheetChangeFontColor Class

An action object that implements the ChangeFontColor end-user command in Spreadsheet and Report Designer-based applications.

Declaration

TdxSpreadSheetChangeFontColor = class(
    TdxSpreadSheetValueAction,
    IdxActionColorValue
)

Remarks

This class does not introduce any new public members. The command implemented as the TdxSpreadSheetChangeFontColor action object is designed for use in a Ribbon or Toolbar UI by the TdxRibbonColorGalleryItem and TcxColorComboBox item controls.

VCL SpreadSheet: A Ribbon Color Gallery Item

Executing a TdxSpreadSheetChangeFontColor action object by clicking an item in the linked TdxRibbonColorGalleryItem or TcxColorComboBox UI element changes the font color used to display:

  • The values in all selected cells.
  • The text selection within an in-place cell editor (only if the rich content formatting functionality is enabled in the Spreadsheet/Report Designer control).

VCL SpreadSheet: A Change Font Color Example

Handle the TdxSpreadSheetChangeFontColor action object’s OnExecute event to provide custom implementation of the ChangeFontColor command’s functionality, which is useful if you need to use it with a custom client control instead of TdxRibbonColorGalleryItem or TcxColorComboBox. Refer to the following code example re-implementing the command’s capability to apply a specific font color to the current cell selection:

procedure TSpreadSheetControlForm.dxSpreadSheetChangeFontColor1Execute(Sender: TObject);
var
  ATableView: TdxSpreadSheetTableView;
  ACell: TdxSpreadSheetCell;
  I, J, K: Integer;  // Counters
begin
  ATableView := dxSpreadSheet1.ActiveSheetAsTable;
  if(ATableView.Selection.Count > 0) then
  begin
    ATableView.BeginUpdate;  // Stops worksheet repainting until the new font color is applied to all affected cells
    for I := 0 to ATableView.Selection.Count - 1 do  // Cycles through all selected cell ranges
      for J := ATableView.Selection.Items[I].Left to ATableView.Selection.Items[I].Right do  // Cycles through all columns within one selected cell area
        for K := ATableView.Selection.Items[I].Top to ATableView.Selection.Items[I].Bottom do  // Cycles through all rows within one selected cell area
        begin
          ACell := ATableView.CreateCell(K, J);  // Obtains every cell object within one selected area
          ACell.Style.Font.Color := clBlue;  // Here you can specify any color instead of blue
        end;
    ATableView.EndUpdate;  // Enables worksheet repainting to display the pending changes
  end;
end;

UI elements linked to a TdxSpreadSheetChangeFontColor action object are enabled only if the following conditions are met:

If cell selection is disallowed in the protected worksheet (i.e., its OptionsProtection.ActualAllowSelectUnlockedCells property returns False), executing the TdxSpreadSheetChangeFontColor action object has no effect.

Implements

See Also