Я также нуждался в редакторе свойств и искал способ размещения разных типов ячеек в одном столбце. Использование разных стилей для каждой строки может быть решением, предложенным выше, но поскольку сетка Firemonkey не резервирует никакого управления ячейкой для определенной строки, каждый раз, когда элемент управления ячейки будет отображаться в строке, к нему будет применен истинный стиль. Это не является большой проблемой для редактора статических свойств, однако для реальной сетки, у которой есть строки и разные типы ячеек в каждой строке, требуется другая стратегия. Поэтому я придумал другое решение, я рассмотрел прокси-серверы типа ячеек между TColumn и элементами управления ячейками, так что каждый прокси-сервер ячейки зарезервирует элементы управления ячейки, за которые отвечает. Прежде всего, у меня есть новый TColumn (TvariantColumn), который отвечает за верхнюю стратегию.
vColumn := TVariantColumn.Create(Self);
vColumn.Header := 'Variant Column';
vColumn.OnGetCellProxyIndex := GetCellProxyIndex;
Grid1.AddObject(vColumn);
Затем создавать прокси как
vColumn.NewCellProxy(TTextProxy);
vColumn.NewCellProxy(TColorComboProxy);
vColumn.NewCellProxy(TComboColorProxy);
Вы также можете обрабатывать прокси конкретные задания после ее создания, как
with TProgressProxy(vColumn.NewCellProxy(TProgressProxy)) do //4
begin
Min := 0;
Max := 100;
end;
with TPopUpProxy(vColumn.NewCellProxy(TPopupProxy)) do //5
begin
Items.Add('Istanbul');
Items.Add('Paris');
Items.Add('NewYork');
end;
Я блоге мой метод в моем веб-сайте и опубликовал подробно article, где вы можете найти более подробную информацию о предмете.
+1 для namecheck. Я такой мелкий. –