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(sfTreeItemTextNorma‌​l, clBlack) 
else
   TCustomStyleExt(TStyleManager.ActiveStyle).SetStyleFontColor(sfTreeItemTextNorma‌​l, aFontColor); 
TargetCanvas.FillRect(CellRect); 

С этим я могу изменить цвет шрифта.

Laurent

Другие вопросы по тегам