d.OnizZz Опубликовано 12 ноября, 2018 Поделиться Опубликовано 12 ноября, 2018 При переходе с 10.0 на 10.2 стал недоступен метод у TColumn CreateCellControl И как теперь сделать реализацию с столбцом combobox ? Цитата Ссылка на комментарий
0 Nick Peterson Опубликовано 8 января, 2019 Поделиться Опубликовано 8 января, 2019 И как сделать теперь колонку с кнопками?:)) Цитата Ссылка на комментарий
0 Morfi Опубликовано 28 января, 2020 Поделиться Опубликовано 28 января, 2020 В 12.11.2018 в 11:39, d.OnizZz сказал: При переходе с 10.0 на 10.2 стал недоступен метод у TColumn CreateCellControl И как теперь сделать реализацию с столбцом combobox ? Для начала реализуем наследника TComboBox (для переопределения методов GetData, SetData): implementation type TComboBoxCell = class(TComboBox) private FOldValue: TValue; FInSetData: boolean; protected constructor Create(AOwner: TComponent); override; function GetData: TValue; override; procedure SetData(const Value: TValue); override; end; { TComboBoxCell } constructor TComboBoxCell.Create(AOwner: TComponent); begin inherited; FInSetData := false; end; function TComboBoxCell.GetData: TValue; begin If ItemIndex = -1 then result := FOldValue else result := Items[ItemIndex]; end; procedure TComboBoxCell.SetData(const Value: TValue); var S: string; LIndex: integer; begin if not FInSetData then try FInSetData := True; FOldValue := Value; if FOldValue.IsEmpty then ItemIndex := -1 else if FOldValue.TryAsType<string>(S) then begin LIndex := Items.IndexOf(Value.ToString); if LIndex >= 0 then ItemIndex := LIndex; end else inherited; finally FInSetData := False; end; end; После чего опишем действие на событие TGrid.OnCreateCustomEditor: procedure TForm.FMXGridCreateCustomEditor(Sender: TObject; const Column: TColumn; var Control: TStyledControl); var tmpCombo: TCombobox; begin //Вызываем кастомный редактор для конкретного столбца if Column.Header.Equals('CategoryName') then begin tmpCombo := TComboBoxCell.Create(nil); tmpCombo.OnChange := DoOnChangeCustomEditor; tmpCombo.TagObject := Column; tmpCombo.Items.Add('Item1'); tmpCombo.Items.Add('Item2'); tmpCombo.Items.Add('Item3'); Control := tmpCombo; end; end; И последнее, опишем событие OnChange нашего редактора: procedure TForm.DoOnChangeCustomEditor(Sender: TObject); var Column: TColumn; begin Column := TColumn(TCombobox(Sender).TagObject); TCombobox(Sender).Data := TCombobox(Sender).Selected.Text; Column.EditorModified; end; Цитата Ссылка на комментарий
0 Morfi Опубликовано 28 января, 2020 Поделиться Опубликовано 28 января, 2020 В 09.01.2019 в 00:54, Nick Peterson сказал: И как сделать теперь колонку с кнопками?:)) А там немного гемор. ) Рекомендую, разобрать код класса TCheckCell (FMX.Grid.Style). как отправную точку. Цитата Ссылка на комментарий
Вопрос
d.OnizZz
При переходе с 10.0 на 10.2 стал недоступен метод у TColumn CreateCellControl
И как теперь сделать реализацию с столбцом combobox ?
Ссылка на комментарий
3 ответа на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.