2013-02-27 2 views
0

Я пытаюсь создать Firemonkey TGrid, который будет отображать значения с меняющимися цветами фона в зависимости от значения, но я не могу получить зависание новой стилей в firemonkey.Изменить фон TTextCell в Firemonkey TGrid

Я пошел за советом и структурой Firemonkey Grid Control - Styling a Cell based on a value (via the OnGetValue function call) и создал пользовательскую производную TTextcel, но я все еще не могу найти, как изменить цвет фона.

Я пробовал FindStyleResource('background') as TRectangle, но это всегда возвращает ноль.

Может ли кто-нибудь завести меня на дорожку с этим?

[Дополнительная информация]
сделал то, что Майк Саттон предложил, и он начал проясняться во мне;) Редактировать окно дал мне макет-структуру, и I'v удалось связать, что с моим контролем TTExtCel. Таким образом, я смог изменить цвет переднего плана через foreground: BrushObject.

Но фон выполнен с помощью TSubImage и TRectAnimation. Если я правильно понимаю, TSubimage принимает часть Windows7 Style.png и отображает это в редакторе. Как я могу заменить TSubImage на TRectangle, чтобы изменить BrushColor? Окна редактора Structure and Properties не позволяют добавлять элементы стиля, кроме TLayout ...

ответ

1

Я полагаю, вы используете XE3. Стили в XE3 используют растровые изображения для фона и т. Д., Поэтому, даже если вы найдете компонент стиля «фона», вероятно, это не будет TRectangle (следовательно, почему вы должны избегать таких слепых слепок).

Поставьте TEdit на форму, щелкните правой кнопкой мыши и выберите «Редактировать пользовательский стиль». Затем вы увидите, что в стиле. Вы можете изменить его на свои нужды или, возможно, вам придется полностью его перепроектировать (возможно, использовать пользовательское растровое изображение, возможно, вернуться к прямоугольникам). Затем вы можете установить для каждого из своих свойств StyleLookup ячейки, или установить стили StyleName в TextCellStyle, чтобы они автоматически подбирались для каждого TTextCell.

[Дополнительная информация] Чтобы добавить объект в редактор стилей, перетащите его из палитры инструментов в панель структуры (вверху слева от экрана). Чтобы запустить новый элемент, поместите его в верхний (корневой) элемент. Затем вы можете установить его StyleName, тогда вам нужно будет применить и закрыть дважды щелкнуть Stylebook, чтобы вернуться в редактор, и чтобы ваши изменения вступили в силу (да, это так плохо).

Вы можете использовать элементы перетаскивания в панели структуры для повторного использования элементов из старого стиля.

+0

Дополнительная информация – Bascy

+0

Проблема в том, что в палитре инструментов присутствует только компонент TLayout. Я даже не могу копировать и вставлять существующие компоненты внутри структуры – Bascy