VirtualTreeView和VCL样式

我在我的应用程序中使用VirtualTreeView(作为网格 - 在Delphi XE7中),我也选择使用Carbon VCL风格。 出现这个问题的原因是我需要根据每行的某种状态对某些行进行着色,即使在一条线上使用浅色时,字体颜色也会保持白色。 所以不可能读取数据。 当我使用冰山古典风格时,这个问题不会发生。

所以基本上,我可以根据所选样式更改我的一组行颜色,这是一个解决方案。 但我正在寻找一种方法来修改字体颜色根据行颜色背景?

我正在做事件内部的着色代码:BeforeCellPaint和我试图修改字体颜色没有任何成功。

任何想法?


我发现了一个图书馆,在这个问题上有很多帮助:

// 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); 

有了这个,我可以改变字体颜色。

洛朗

链接地址: http://www.djcxy.com/p/87037.html

上一篇: VirtualTreeView and VCL Styles

下一篇: JS function to calculate complementary colour?