如何使dbgrid中不同的值显示不同颜色
点击次数:47 次 发布日期:2008-11-09 08:38:24 作者:源代码网
|
源代码网推荐 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; 源代码网推荐 源代码网供稿. |
