Мы только что обновились с Delphi 2010 до XE4 и впервые используем FireMonkey, поэтому немного блуждаем в темноте, пытаясь понять, как все это работает.
В соответствии с запросом некоторое время назад я пытаюсь заставить отдельные ячейки в компоненте TGrid отображаться по-разному в зависимости от некоторого правила. Я проработал полезный код, опубликованный Майком Саттоном:
Управление сеткой Firemonkey - Стилизация ячейки на основе значения (через вызов функции OnGetValue)
Мне пришлось внести несколько изменений, чтобы скомпилировать его в XE4; все выглядит нормально при запуске кода, за исключением того, что:
- FontFill не распознается, поэтому пока отключил его.
- Стиль шрифта вообще не меняется, он отображается как стиль по умолчанию, несмотря ни на что.
Соответствующий код (остальное в значительной степени соответствует приведенной выше ссылке):
Procedure TFinancialCell.ApplyStyle;
var
T: TFMXObject;
begin
inherited;
ApplyStyling;
end;
Procedure TFinancialCell.ApplyStyling;
begin
// If IsNegative then
// FontFill.Color:=claRed
// else
// FontFill.Color:=claBlack;
Font.Style:=[TFontStyle.fsItalic];
If IsImportant then
Font.Style:=[TFontStyle.fsBold]
else
Font.Style:=[];
If Assigned(Font.OnChanged) then
Font.OnChanged(Font);
Repaint;
end;
Флаги IsImportant установлены правильно, поэтому проблема не в этом.
Любая помощь в этом будет действительно оценена. Заранее извиняюсь за что-то глупое, что я мог пропустить.