VirtualTreeView и VCL Стили
Я использую VirtualTreeView (в виде сетки - в Delphi XE7) в своем приложении, и я также решил использовать стиль Carbon VCL. Проблема возникает из-за того, что мне нужно покрасить несколько строк в соответствии с некоторым статусом в каждой строке, а цвет шрифта остается белым, даже когда я использую светлый цвет в строке. Поэтому невозможно прочитать данные. Когда я использую стиль Iceberg Classico, эта проблема не возникает.
Таким образом, я могу изменить цвет набора строк в соответствии с выбранным стилем, это одно из решений. Но я ищу способ изменить цвет шрифта в соответствии с цветом фона строки?
Я делаю код раскрашивания внутри события: BeforeCellPaint, и я попытался изменить цвет шрифта без какого-либо успеха.
Любая идея?
1 ответ
Я нашел библиотеку, которая очень помогает на эту тему:
// unit for the VCL Styles Utils
// github.com/RRUZ/vcl-styles-utils
TargetCanvas.Brush.Color := aColor;
if TStyleManager.ActiveStyle.Name = 'Carbon' then
TCustomStyleExt(TStyleManager.ActiveStyle).SetStyleFontColor(sfTreeItemTextNormal, clBlack)
else
TCustomStyleExt(TStyleManager.ActiveStyle).SetStyleFontColor(sfTreeItemTextNormal, aFontColor);
TargetCanvas.FillRect(CellRect);
С этим я могу изменить цвет шрифта.
Laurent