Fill Combobox in FNCDatagrid

You can try by using this code, involving OnGetInplaceEditorProperties (TTMSFNCDataGrid) and OnDataToField (TTMSFNCDataGridDatabaseAdapter):

procedure TForm1.FormCreate(Sender: TObject);
begin
  TMSFNCDataGrid1.Columns[3].Editor := getComboEdit;
  TMSFNCDataGrid1.Columns[2].AddSetting(gcsEditor);
end;

procedure TForm1.TMSFNCDataGrid1GetInplaceEditorProperties(Sender: TObject;
  ACell: TTMSFNCDataGridCellCoord; AInplaceEditor: TTMSFNCDataGridInplaceEditor;
  AInplaceEditorType: TTMSFNCDataGridInplaceEditorType);
var
  cbo: TTMSFNCDataGridComboEdit;
  sl: TStringList;
begin
  if (ACell.Column = 3) and (AInplaceEditor is TTMSFNCDataGridComboEdit) then
  begin
    cbo := (AInplaceEditor as TTMSFNCDataGridComboEdit);
    sl := TStringList.Create;
    try
      sl.Duplicates := TDuplicates.dupIgnore;
      sl.Sorted := True;
      TMSFNCDataGridDatabaseAdapter1.LoadValuesFromField(TMSFNCDataGridDatabaseAdapter1.FieldAtColumn[ACell.Column], sl);
      cbo.Items.Assign(sl);
    finally
      sl.Free;
    end;
  end;
end;

procedure TForm1.TMSFNCDataGridDatabaseAdapter1DataToField(Sender: TObject;
  ACell: TTMSFNCDataGridCellCoord; AMasterField, AField: TField;
  AInplaceEditor: TTMSFNCDataGridInplaceEditor;
  ACellValue: TTMSFNCDataGridCellValue; var Handled: Boolean);
var
  cbo: TTMSFNCDataGridComboEdit;
begin
  if (ACell.Column = 3) and (AInplaceEditor is TTMSFNCDataGridComboEdit) then
  begin
    cbo := (AInplaceEditor as TTMSFNCDataGridComboEdit);
    AField.AsString := cbo.Text;
    Handled := True;
  end;
end;