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.
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).
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:
- Spreadsheet document editing is allowed (i.e., the control’s OptionsBehavior.Editing property is set to
True
). - Cell formatting is allowed in the active worksheet (i.e., its OptionsProtection.ActualAllowFormatCells property returns
True
). - An in-place cell editor is inactive (the active worksheet‘s IsEditing property returns
False
). This condition is applicable only if the dxSpreadSheetTextService.IsRTFSupported function returnsFalse
.
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.