Мне также понадобился редактор свойств, и я искал способ разместить разные типы ячеек в одном столбце. Использование разных стилей для каждой строки может быть решением, как было предложено выше, но поскольку сетка 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;
Я разместил свой метод в блоге на своем веб-сайте и опубликовал подробный статья, где можно найти дополнительную информацию по теме.
person
mehmed.ali
schedule
21.11.2012