2015-10-04 15 views
0

我有两个网格:改变delphi中tcxgrid列的颜色?

在一个表和两张价值
之间比较

我需要改变柱的颜色在网格当两个值不相等

TotalYear:=0 ; 
    while not (mTblDetail.eof) do 
    begin 
     TotalYear:=TotalMonth +mTblDetail.FieldByName('Target_').AsFloat; 
     mTblDetail.Next; 
    end; 
    TotalMonth:=0; 
    while not(DataSet.Eof) do 
    begin 
     TotalMonth:=TotalMonth+DataSet.FieldByName('Target_').AsFloat; 
     DataSet.Next; 
    end; 


我需要比较两个值,并改变颜色

if(TotalYear<>TotalMonth) then 


我试图用这样的:

DataSet.Columns[8].Color:= clRed 

,但显示错误“不接受”。如何更改Tcxgrid列的颜色?

+0

使用'OnDrawColumnCell'事件 'if(Column.Field.FieldName ='MyFieldName')and ... Field Value ...(TotalYear <> TotalMonth)then Column.Color:= clRed;' –

+0

那些while循环你的真实代码?首先,你不需要两个while循环来增加两个变量,你可以在同一个循环中完成它们。另一件事是,每次围绕第一个循环时,都会覆盖TotalValue的值(因为它的新值不是基于它的前一个值)。如果您需要帮助,请发布实际代码。顺便说一句,德尔福不支持在其源代码的HTML标记,这就是为什么“DataSet.Columns [8] .Color:= clRed
”将不会编译 – MartynA

+0

哇真的吗?然后看到这个http://stackoverflow.com/questions/6078715/how-do-i-color-a-cxgrid-based-on-table-value –

回答

2

cxGrids着色最好通过cxStyles完成。在表单上放置一个TcxStyleRepository并添加一些样式。您可以将它们分配给View.Styles。*属性或通过OnGetContentStyle等事件。我确信在线帮助包含屏幕截图和示例的概述。