procedure TPersonForm.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); begin //change the color mode of this DBGrid //inherited; With DbGrid1 do begin if ADOQuery1.fieldbyname('field').asstring='YES' then begin Canvas.Font.Color := clYellow; Canvas.Brush.Color := clNavy; end else begin Canvas.Font.Color := clred; Canvas.Brush.Color := clNavy;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
//change the color mode of this DBGrid
//inherited;
With DbGrid1 do
begin
if ADOQuery1.fieldbyname('field').asstring='YES' then
begin
Canvas.Font.Color := clYellow;
Canvas.Brush.Color := clNavy;
end
else
begin
Canvas.Font.Color := clred;
Canvas.Brush.Color := clNavy;
end;
DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;
end;
LastColor:TColor; DBGrid的DefaultDrawing设为false procedure TMainForm.MailListDrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if gdSelected in State then LastColor := ClBlue
else if DataCol = 0 then
begin
if Column.Field.AsInteger = 101 then LastColor := clYellow
else if Column.Field.AsInteger = 107 then LastColor := clWhite
else LastColor := clGreen;
end; MailList.Canvas.Brush.Color := LastColor; MailList.canvas.textrect(rect, rect.left + 2, rect.top + 2, Column.Field.AsString);
end; 请注意,maillist是Tdbgrid控件