procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); begin with DBGrid1 do with Canvas do begin if 条件 then begin Canvas.Brush.Color := clbackground; canvas.Font.Color:=clYellow; end; DefaultDrawColumnCell(Rect, DataCol, Column, State); end;end;
procedure TBoothlnfoQueryFrm.dxDBGrid1CustomDrawCell(Sender: TObject; ACanvas: TCanvas; ARect: TRect; ANode: TdxTreeListNode; AColumn: TdxTreeListColumn; ASelected, AFocused, ANewItemRow: Boolean; var AText: String; var AColor: TColor; AFont: TFont; var AAlignment: TAlignment; var ADone: Boolean); begin if ClientDataSet1.FieldByName('status').AsString = '0' then begin dxDBGrid1.Canvas.Font.Color := clYellow; end; end;
procedure TBoothlnfoQueryFrm.dxDBGrid1CustomDrawCell(Sender: TObject; ACanvas: TCanvas; ARect: TRect; ANode: TdxTreeListNode; AColumn: TdxTreeListColumn; ASelected, AFocused, ANewItemRow: Boolean; var AText: String; var AColor: TColor; AFont: TFont; var AAlignment: TAlignment; var ADone: Boolean); begin if ClientDataSet1.FieldByName('status').AsString <= '0' then begin dxDBGrid1.Canvas.brush.Color := clred;//背景色为红色 dxDBGrid1.Canvas.Font.Color := clwhite;//字体颜色变为白色 end; end;
procedure Tcw_jiesuanForm.AllJieSuanDBGridCustomDrawCell(Sender: TObject; ACanvas: TCanvas; ARect: TRect; ANode: TdxTreeListNode; AColumn: TdxTreeListColumn; ASelected, AFocused, ANewItemRow: Boolean; var AText: String; var AColor: TColor; AFont: TFont; var AAlignment: TAlignment; var ADone: Boolean); var Value: Variant; begin { clBlack = TColor($000000); clMaroon = TColor($000080); clGreen = TColor($008000); clOlive = TColor($008080); clNavy = TColor($800000); clPurple = TColor($800080); clTeal = TColor($808000); clGray = TColor($808080); clSilver = TColor($C0C0C0); clRed = TColor($0000FF); clLime = TColor($00FF00); clYellow = TColor($00FFFF); clBlue = TColor($FF0000); clFuchsia = TColor($FF00FF); clAqua = TColor($FFFF00); clLtGray = TColor($C0C0C0); clDkGray = TColor($808080); clWhite = TColor($FFFFFF); StandardColorsCount = 16; clMoneyGreen = TColor($C0DCC0); clSkyBlue = TColor($F0CAA6); clCream = TColor($F0FBFF); clMedGray = TColor($A4A0A0); ExtendedColorsCount = 4; clNone = TColor($1FFFFFFF); clDefault = TColor($20000000); } if ANode.HasChildren then Exit; if not ASelected and (AColumn = TYPE) then begin Value := ANode.Values[AColumn.Index]; if (not VarIsNull(Value) ) and Value =1 then AColor := clRed //or AColor := $0000FF end; end;
在DBGRID中一般这么处理:
procedure TFrmMain.DBMXDrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if CDSMX.FieldByName('shbz').AsString='1' then
begin
DBMX.Canvas.Font.Color := clBlue;
DBMX.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
end;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin with DBGrid1 do
with Canvas do begin
if 条件 then
begin
Canvas.Brush.Color := clbackground;
canvas.Font.Color:=clYellow;
end;
DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;end;
ACanvas: TCanvas; ARect: TRect; ANode: TdxTreeListNode;
AColumn: TdxTreeListColumn; ASelected, AFocused, ANewItemRow: Boolean;
var AText: String; var AColor: TColor; AFont: TFont;
var AAlignment: TAlignment; var ADone: Boolean);
begin
if ClientDataSet1.FieldByName('status').AsString = '0' then
begin
dxDBGrid1.Canvas.Font.Color := clYellow;
end;
end;
ACanvas: TCanvas; ARect: TRect; ANode: TdxTreeListNode;
AColumn: TdxTreeListColumn; ASelected, AFocused, ANewItemRow: Boolean;
var AText: String; var AColor: TColor; AFont: TFont;
var AAlignment: TAlignment; var ADone: Boolean);
begin
if ClientDataSet1.FieldByName('status').AsString <= '0' then
begin
dxDBGrid1.Canvas.brush.Color := clred;//背景色为红色
dxDBGrid1.Canvas.Font.Color := clwhite;//字体颜色变为白色
end;
end;
ACanvas: TCanvas; ARect: TRect; ANode: TdxTreeListNode;
AColumn: TdxTreeListColumn; ASelected, AFocused, ANewItemRow: Boolean;
var AText: String; var AColor: TColor; AFont: TFont;
var AAlignment: TAlignment; var ADone: Boolean);
var
Value: Variant;
begin
{
clBlack = TColor($000000);
clMaroon = TColor($000080);
clGreen = TColor($008000);
clOlive = TColor($008080);
clNavy = TColor($800000);
clPurple = TColor($800080);
clTeal = TColor($808000);
clGray = TColor($808080);
clSilver = TColor($C0C0C0);
clRed = TColor($0000FF);
clLime = TColor($00FF00);
clYellow = TColor($00FFFF);
clBlue = TColor($FF0000);
clFuchsia = TColor($FF00FF);
clAqua = TColor($FFFF00);
clLtGray = TColor($C0C0C0);
clDkGray = TColor($808080);
clWhite = TColor($FFFFFF);
StandardColorsCount = 16; clMoneyGreen = TColor($C0DCC0);
clSkyBlue = TColor($F0CAA6);
clCream = TColor($F0FBFF);
clMedGray = TColor($A4A0A0);
ExtendedColorsCount = 4; clNone = TColor($1FFFFFFF);
clDefault = TColor($20000000);
}
if ANode.HasChildren then
Exit;
if not ASelected and (AColumn = TYPE) then
begin
Value := ANode.Values[AColumn.Index];
if (not VarIsNull(Value) ) and Value =1 then
AColor := clRed //or AColor := $0000FF
end;
end;