2015-10-04 55 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等事件。我確信在線幫助包含屏幕截圖和示例的概述。