線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2309
推到 Plurk!
推到 Facebook!

cxGrid有沒有OnDrawColumnCell事件?

尚未結案
chrislao
初階會員


發表:86
回覆:69
積分:36
註冊:2002-12-28

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-09-19 23:05:03 IP:202.175.xxx.xxx 未訂閱
下列的代碼為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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-02-25 18:07:04 IP:220.130.xxx.xxx 訂閱
有兩種寫法,只是呼叫不同事件來處理:
出處 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]

=========================================================================
------
今天的事,留到後天再說....
編輯記錄
fireflybug 重新編輯於 2009-02-25 18:08:36, 註解 無‧
fireflybug 重新編輯於 2009-02-25 18:09:01, 註解 無‧
系統時間:2024-04-27 4:07:26
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!