Skip to main content
Table of Contents

TTMSFNCDataGridColumn.Editor Property

The in-place editor type opened when a data cell in this column is edited.

API unit family: TMSFNCDataGridRenderer Declaring type: TTMSFNCDataGridColumn Type: TTMSFNCDataGridInplaceEditorType

Syntax

FMX.TMSFNCDataGridRenderer.hppPascalC++
property Editor: TTMSFNCDataGridInplaceEditorType;
__property TTMSFNCDataGridInplaceEditorType Editor = {read=FEditor, write=SetEditor, default=1};

Default: getEdit

Usage examples

Configure built-in inplace editors per column

Wire combobox, trackbar, date picker, color picker, spinbox, and HTML editors to specific columns.

Configure built-in inplace editors per columnPascalC++
procedure TForm1.FormCreate(Sender: TObject);
begin
  // Load sample data
  Grid.Options.IO.StartColumn := 1;
  Grid.Options.IO.StartRow := 1;
  Grid.LoadFromCSVData('cars.csv');

  // Allow direct edit on Tab / Arrow / Enter
  Grid.Options.Keyboard.TabKeyDirectEdit := True;
  Grid.Options.Keyboard.ArrowKeyDirectEdit := True;
  Grid.Options.Keyboard.EnterKeyDirectEdit := True;

  // Column 1: combobox with a fixed list of brands
  Grid.Columns[1].AddSetting(gcsEditor);
  Grid.Columns[1].AddSetting(gcsEditorItems);
  Grid.Columns[1].Editor := getComboBox;
  Grid.Columns[1].EditorItems.AddStrings(
    ['Mercedes', 'Audi', 'Bugatti', 'Alfa Romeo', 'Jaguar', 'BMW']);

  // Column 3: trackbar (range customised in OnGetInplaceEditorProperties)
  Grid.Columns[3].AddSetting(gcsEditor);
  Grid.Columns[3].Editor := getTrackBar;

  // Column 4: date picker, displaying values as date/time
  Grid.Columns[4].AddSetting(gcsEditor);
  Grid.Columns[4].Editor := getDatePicker;
  Grid.Columns[4].AddSetting(gcsFormatting);
  Grid.Columns[4].Formatting.&Type := gdftDateTime;

  // Column 5: color picker that targets the cell fill colour
  Grid.Columns[5].AddSetting(gcsEditor);
  Grid.Columns[5].Editor := getColorPicker;
  Grid.Columns[5].AddSetting(gcsEditorTarget);
  Grid.Columns[5].EditorTarget := getFillColor;

  // Column 6: spinbox
  Grid.Columns[6].AddSetting(gcsEditor);
  Grid.Columns[6].Editor := getSpinBox;

  // Column 7: rich HTML editor
  Grid.Columns[7].AddSetting(gcsEditor);
  Grid.Columns[7].Editor := getHTMLEditor;
end;

procedure TForm1.GridGetInplaceEditorProperties(Sender: TObject;
  ACell: TTMSFNCDataGridCellCoord; AInplaceEditor: TTMSFNCDataGridInplaceEditor;
  AInplaceEditorType: TTMSFNCDataGridInplaceEditorType);
begin
  // Customise the trackbar maximum
  if AInplaceEditorType = getTrackBar then
    (AInplaceEditor as TTMSFNCDataGridTrackBar).Max := 3000;
end;
void __fastcall TForm1::FormCreate(TObject *Sender)
{
  // Load sample data
  Grid->Options->IO->StartColumn = 1;
  Grid->Options->IO->StartRow = 1;
  Grid->LoadFromCSVData("cars.csv");

  // Allow direct edit on Tab / Arrow / Enter
  Grid->Options->Keyboard->TabKeyDirectEdit = true;
  Grid->Options->Keyboard->ArrowKeyDirectEdit = true;
  Grid->Options->Keyboard->EnterKeyDirectEdit = true;

  // Column 1: combobox with a fixed list of brands
  Grid->Columns->Items[1]->AddSetting(gcsEditor);
  Grid->Columns->Items[1]->AddSetting(gcsEditorItems);
  Grid->Columns->Items[1]->Editor = getComboBox;
  Grid->Columns->Items[1]->EditorItems->AddStrings(
    OPENARRAY(System::UnicodeString, ("Mercedes", "Audi", "Bugatti", "Alfa Romeo", "Jaguar", "BMW")));

  // Column 3: trackbar (range customised in OnGetInplaceEditorProperties)
  Grid->Columns->Items[3]->AddSetting(gcsEditor);
  Grid->Columns->Items[3]->Editor = getTrackBar;

  // Column 4: date picker, displaying values as date/time
  Grid->Columns->Items[4]->AddSetting(gcsEditor);
  Grid->Columns->Items[4]->Editor = getDatePicker;
  Grid->Columns->Items[4]->AddSetting(gcsFormatting);
  Grid->Columns->Items[4]->Formatting->Type = gdftDateTime;

  // Column 5: color picker that targets the cell fill colour
  Grid->Columns->Items[5]->AddSetting(gcsEditor);
  Grid->Columns->Items[5]->Editor = getColorPicker;
  Grid->Columns->Items[5]->AddSetting(gcsEditorTarget);
  Grid->Columns->Items[5]->EditorTarget = getFillColor;

  // Column 6: spinbox
  Grid->Columns->Items[6]->AddSetting(gcsEditor);
  Grid->Columns->Items[6]->Editor = getSpinBox;

  // Column 7: rich HTML editor
  Grid->Columns->Items[7]->AddSetting(gcsEditor);
  Grid->Columns->Items[7]->Editor = getHTMLEditor;
}

void __fastcall TForm1::GridGetInplaceEditorProperties(TObject *Sender,
  const TTMSFNCDataGridCellCoord &ACell, TTMSFNCDataGridInplaceEditor *AInplaceEditor,
  TTMSFNCDataGridInplaceEditorType AInplaceEditorType)
{
  // Customise the trackbar maximum
  if (AInplaceEditorType == getTrackBar)
    dynamic_cast<TTMSFNCDataGridTrackBar*>(AInplaceEditor)->Max = 3000;
}

Read the related guide