当前位置:首页 > 网络编程 > 软件语言 > DELPHI > 如何使dbgrid中不同的值显示不同颜色

如何使dbgrid中不同的值显示不同颜色

点击次数:47 次 发布日期:2008-11-09 08:38:24 作者:源代码网
源代码网推荐
广告载入中
在DBGrid的OnDrawDataCell事件下写:
源代码网推荐 procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;
源代码网推荐 Field: TField; State: TGridDrawState);
源代码网推荐 begin
源代码网推荐 if Table1.FieldByName("partno").AsFloat > 2500 then
源代码网推荐 DBGrid1.Canvas.Brush.Color := clGreen;
源代码网推荐 //DBGrid1.Canvas.Font.Color := clRed;
源代码网推荐 DBGrid1.DefaultDrawDataCell(Rect, Field, State);
源代码网推荐 end;
源代码网推荐
源代码网推荐 或(注意是"或")在OnDrawColumnCell下写:
源代码网推荐
源代码网推荐 二者的区别是OnDrawDataCell必须是Columns属性为csDefault,既为空。而OnDrawColumnCell没这个要求。
源代码网推荐
源代码网推荐 procedure TForm_cost.DBGrid1DrawColumnCell(Sender: TObject;
源代码网推荐 const Rect: TRect; DataCol: Integer; Column: TColumn;
源代码网推荐 State: TGridDrawState);
源代码网推荐 begin
源代码网推荐 with DBGrid1 do
源代码网推荐 begin
源代码网推荐 if ((State = [gdSelected]) or (State=[gdSelected,gdFocused])) then
源代码网推荐 begin
源代码网推荐 Canvas.Font.Color :=clLime;
源代码网推荐 Canvas.Brush.Color :=clMaroon;
源代码网推荐 end
源代码网推荐 else
源代码网推荐 if Table1.FieldByName("Salary").AsFloat < 40000 then

源代码网推荐 begin
源代码网推荐 canvas.Font.Color := clYellow;
源代码网推荐 canvas.Font.Style := [fsItalic];
源代码网推荐 Canvas.brush.Color := clGreen;
源代码网推荐 end
源代码网推荐 else
源代码网推荐 begin
源代码网推荐 canvas.Font.Color := clNavy;
源代码网推荐 Canvas.Font.Style := [fsBold];
源代码网推荐 Canvas.brush.Color := clRed;
源代码网推荐 end;
源代码网推荐 DefaultDrawColumnCell(Rect, DataCol, Column, State);
源代码网推荐 end;
源代码网推荐 //DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
源代码网推荐 end;


源代码网推荐

源代码网供稿.
网友评论 (0)
会员中心
网络编程
本站推荐
网络编程之精华