我想根据查询到的记录的某个字段值的不同在DBGrid里把该记录显示不同的颜色。。
好像DBGrid的记录颜色调整都是把整个DBGrid的记录显示为一种颜色。。
请不吝赐教
好像DBGrid的记录颜色调整都是把整个DBGrid的记录显示为一种颜色。。
请不吝赐教
解决方案 »
- Windows XP 常用内核数据结构定义[Delphi/Pascal格式]
- bsSkinButtonsBar的问题
- TADOCommand执行存储过程中遇到的问题!
- 百分求 C/S 初级应用程序
- 请求思路,一个DELPHI程序要调用DLL,而DLL中的函数名,参数个数,参数类型为不定,要调用的DLL中的函数名、参数个数、参数类型要可以在
- 通過元件的組件編輯器設置的元件屬性為何沒有寫入DFM文件
- 怎么通过程序去掉98中的将“将你的计算机转入休息状态”去掉;或点击此项时捕获到他的消息?
- 关于记录类型的问题~~~~~~在线等
- delphi调用C的dll但没有返回值,不知道错在哪里了
- 300分谁要,绝对给!!!
- 怎样获得当前存在的所有窗体的Handle?
- 我想在程序中关闭已经打开的PowePoint,怎么办啊
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if StrToIntDef(EdtAvgDialyAcount.Text,0)<>0 then
begin
if DMRemote.DataModule1.CDSData.FieldByName('diff').AsInteger<>0 then
begin
with (Sender as TDBGrid).Canvas do
Brush.Color:=clRed; (Sender as TDBGrid).DefaultDrawDataCell(Rect,Column.Field,State); end;
end;
end;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
var
oldcolor:tcolor;
oldpm:tpenmode;
p:integer;
begin
p:=length(self.ClientDataSet2.fields[0].asstring);
if p<=6 then {设定变色的行的条件}
begin
oldpm:= self.dbgrid2.Canvas.pen.mode;
oldcolor:= self.dbgrid2.Canvas.Brush.color;
//self.dbgrid2.Canvas.Brush.color:=clwhite;
//self.DBGrid2.Canvas.Pen.Color:=clred;
self.DBGrid2.Font.Color:=clred;
//self.dbgrid2.Canvas.pen.mode:=pmmask;
self.dbgrid2.DefaultDrawColumnCell(Rect,DataCol,Column,State);
self.dbgrid2.Canvas.Brush.color:=oldcolor;
self.dbgrid2.Canvas.pen.mode:=oldpm;
end else
begin
oldpm:= self.dbgrid2.Canvas.pen.mode;
oldcolor:= self.dbgrid2.Canvas.Brush.color;
//self.dbgrid2.Canvas.Brush.color:=clyellow;
self.DBGrid2.Font.Color:=clblue;
//self.DBGrid2.Canvas.Pen.Color:=clblue;
//self.dbgrid2.Canvas.pen.mode:=pmmask;
self.dbgrid2.DefaultDrawColumnCell(Rect,DataCol,Column,State);
self.dbgrid2.Canvas.Brush.color:=oldcolor;
self.dbgrid2.Canvas.pen.mode:=oldpm;
end;end;