cxGrid有沒有OnDrawColumnCell事件? |
尚未結案
|
chrislao
初階會員 發表:86 回覆:69 積分:36 註冊:2002-12-28 發送簡訊給我 |
下列的代碼為DBGrid的OnDrawColumnCell,請問cxGrid有沒有類似的事件,
用來把特定的記錄轉變顏色。 procedure TFM_HAVECARD.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
IF DBGRIDQY['CARD_NO']<>NULL THEN
BEGIN
IF LEFTSTR(DBGRIDQY['CARD_NO'],1)='R' THEN DBGRID1.Canvas.Font.Color:=CLRED;
DBGRID1.DefaultDrawColumnCell(RECT,DATACOL,COLUMN,STATE); IF LEFTSTR(DBGRIDQY['CARD_NO'],1)='Y' THEN DBGRID1.Canvas.Font.Color:=CLBLUE;
DBGRID1.DefaultDrawColumnCell(RECT,DATACOL,COLUMN,STATE);
END;
end;
|
fireflybug
一般會員 發表:18 回覆:36 積分:15 註冊:2008-07-17 發送簡訊給我 |
有兩種寫法,只是呼叫不同事件來處理:
出處 http://topic.csdn.net/t/20040720/07/3190492.html 第一種,我是用這種: ========================================================================== 如何使滿足條件的數據顯示不同的顏色? 解決: [code delphi] var AYellowStyle: TcxStyle; procedure TForm1.FormCreate(Sender: TObject); begin //行顏色 AYellowStyle := TcxStyle.Create(Self); AYellowStyle.Color := $0080FFFF; AYellowStyle.TextColor := clMaroon; end; procedure TForm1.cxGrid1DBBandedTableView1StylesGetContentStyle( Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); begin if ARecord.Values[cxGrid1DBBandedTableView1Lengthcm.Index] < 81 then AStyle := AYellowStyle; end; [/code] 這裡cxGrid1DBBandedTableView1Lengthcm.Index小於81時就顯示黃色 if vartostr(ARecord.Values[8]) ='已審' then AStyle := AYellowStyle; ARecord.Values[8] :cxgrid中第8列的值。 ============================================================================ 第二種: 出處 http://www.winu.cn/space-14160-do-blog-id-11932.html [code delphi] procedure TForm1.cxGrid1DBTableView1CustomDrawCell( Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); begin //Item确定列(ID列的索引),RecordViewInfo确定行(Index行的索引) //可以定位到某一行改变颜色 {if (AViewInfo.Item.ID = 0) and (AViewInfo.RecordViewInfo.Index = 0) then ACanvas.Brush.Color := clred;} //可以根据条件值确定改变某行颜色 if (trim(AViewInfo.RecordViewInfo.GridRecord.Values[4]) = 'HTT') and (AViewInfo.Item.ID = 4) //确定到某一列,如果不加确定是某行底色 then ACanvas.Brush.Color := clred; end; [/code] =========================================================================
------
今天的事,留到後天再說....
編輯記錄
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |